Physics & Computer Science

CP164: Data Structures I - Winter 2026

Laurier's Waterloo and Brantford campuses are located on the shared traditional territory of the Neutral, Anishnaabe and Haudenosaunee peoples. Laurier's Milton campus is located on the traditional territory of the Mississaugas of the Credit, and part of the Nanfan Treaty of 1701 between the British Crown and the Haudenosaunee Confederacy.

Instructor Information

Dr. Saiqa Aleem MAC-114C, Milton Campus saleem at wlu.ca 548.889.4345 By appointment
Dr. Samuel Okegbile MAC-142, Milton Campus sokegbile at wlu.ca 548 889 5311 By appointment
Mr. David Brown N2095, Waterloo Campus dbrown at wlu.ca 548-889-3696 By appointment

Course Information

Introduction to the study of data structures and their applications. Recursion, searching, sorting. Queues, stacks, heaps. Introduction to the analysis of algorithms, big “O” notation.

3 lecture hours, 2.5 lab hours
Credit: 0.50
Prerequisite: CP104
Exclusion: CP114

Section Campus Days Times Room Instructor
B Waterloo MWF 08:30 AM - 09:20 AM LH1001 Mr. David Brown
C Waterloo MWF 10:30 AM - 11:20 AM LH1001 Mr. David Brown
L2 Waterloo R 10:00 AM - 11:20 AM BA113 Dr. Heider Ali
L3 Waterloo R 11:30 AM - 12:50 PM BA113 Dr. Heider Ali
MC1 Milton MW 11:30 AM - 12:50 PM MAC128 Dr. Saiqa Aleem
ML1 Milton M 04:00 PM - 06:50 PM MAC117 Mr. David Brown
VA2 Virtual - Dr. Samuel Okegbile

Course Overview and Approach

Mode of Delivery

Sections B, C, and MC1 are delivered in person and you are expected to write the midterm and exam in person.

Section VA2 is delivered online. You are, however, expected to write the exam in person. A student living more than 100 km from Waterloo, Milton, or Brantford may have arrange for an in-person proctored examination near their location. It is the responsibility of the student to coordinate remote proctored and pay any associated fees.

Course Tools and Learning Materials

There is no textbook for this course. All course materials are provided on the course website, CP164

You are required to have a personal computer capable of running the Python programming language and the Eclipse / PyDev IDE (Integrated Development Environment). Windows, Mac, and Linux are all appropriate operating systems for this on desktop or laptop machines. Chromebooks are not appropriate.

Python is a programming language used extensively on the World Wide Web. Eclipse is an Integrated Development Environment (IDE) program. Together with the PyDev plug-in it eases the task of writing and executing programs written in Python. Python, Eclipse, and PyDev are all freely available from the Internet, and we provide instructions for downloading and installing them in the Resources section of this page.

You are responsible for storing all your assignment and lab work on your own memory sticks, Laurier network storage, the cloud, or other media. We strongly suggest that you keep at least two copies of your work at all times.

Student Evaluation

The Department of Physics & Computer Science requires for all first and second year courses that students must pass the final exam in order to pass the course.

The Department of Physics & Computer Science requires that students must write the final exam in person on the Waterloo campus, or, for online courses, at a proctored location in Canada.

If you pass the final exam, the following evaluation is applied:

Evaluation
Assessment Weighting
Assignments 25%
Labs 10%
Midterm 20%
Final Exam 45%

No labs or assignments are dropped from the course evaluation.

Online Section Teaching Methodology

For the online version of this course, all activities are conducted asynchronously. There are due dates for labs and assignment which you must meet, but you are not required to 'attend' any scheduled events other than the midterm and exam.

Schedule

Note: this schedule is subject to change. All times are based upon Eastern Standard Time - i.e. Waterloo, ON time.

Week Starting Labs
Due: 23:59 Friday
Assignments
Due: 23:59 Saturday
Other
1 1: Data Classes
Due:
1: CP104 Background
Due:
2 2: Array-Based Stacks
Due:
2: Data Classes
Due:
3 3: Array-Based Queues
Due:
3: Array-Based Stacks
Due:
4 4: Array-Based Lists
Due:
4: Array-Based Queues
Due:
5 5: Simple Recursion
Due:
5: Array-Based Lists
Due:
6 6: Linked Lists
Due:
7 Reading Week
8 7: Linked Recursion
Due:
6: Linked Queues
Due:
9 8: Binary Search Trees
Due:
7: Linked Lists
Due:
10 9: Hash Sets
Due:
8: Binary Search Trees
Due:
11 10: Sorting
Due:
9: Hashing and Hash Sets
Due:
12 10: Sorting
Due:

University and Course Policies

  1. Academic Calendars: Students are encouraged to review the Academic Calendar for information regarding all important dates, deadlines, and services available on campus.

  2. Accessibility: Contact Accessible Learning if you require academic accommodations because of a disability. Review the Registration page for information about intake and documentation requirements. Deadlines: Students are responsible for meeting posted deadlines for registering with Accessible Learning and booking accommodated exams. Accessible Learning cannot guarantee accommodations for requests received after posted deadlines.

  3. Library Accessibility Services: The Library offers accessibility services for people with disabilities, including alternate formats or remediation of Library collections and help accessing materials. For information please visit the Library Accessibility Hub or email libaccessibility@wlu.ca.

  4. Plagiarism: Wilfrid Laurier University uses software that can check for plagiarism. If requested to do so by course instructors, students are required to submit their written work in electronic form and have it checked for plagiarism.

  5. Academic Integrity: Laurier is committed to a culture of integrity within and beyond the classroom. This culture values trustworthiness (e.g., honesty, integrity, reliability), fairness, caring, respect, responsibility and citizenship. Together, we have a shared responsibility to uphold this culture in our academic and nonacademic behaviour. The University has a defined policy with respect to academic misconduct. As a Laurier student you are responsible for familiarizing yourself with this policy and the accompanying penalty guidelines, some of which may appear on your transcript if there is a finding of misconduct. The relevant policy can be found at Laurier's academic integrity website along with resources to educate and support you in upholding a culture of integrity. Ignorance is not a defense.

    The following, but not limited to, are violations of Laurier’s Academic Code of Conduct:

    • Accessing unauthorized resources (Google, chat rooms, Chegg, Reddit, etc.) for assessments.
    • Using technological aids beyond what is listed as permitted in an assessment.
    • Posting test, assignment, lab or exam questions to message boards, social media, or other unauthorized websites (ex. Chegg or CourseHero). While these third parties claim to be tutoring resources, for a fee they take your work and share it with other students; an act that constitutes an action of academic misconduct.
    • Copying the work of others by way of file or image sharing.
    • Posting test, assignment, lab or exam questions and answers in virtual "course groups" (ex. Facebook, Discord or WhatsApp).
    • Copying the work that is shared or posted in virtual "course groups" (ex. Facebook, Discord or WhatsApp).
    • Working collaboratively with others on assessments that are expected to be completed individually.
    • Copying the work of others by writing down answers that they tell you, but that you did not independently determine.
    • Backdating emails to gain more time to complete assessments.

    Assessments in this course are to be completed individually unless otherwise stated. Failure to follow the expectations for assessment completion may result in an allegation of academic misconduct.

  6. Late Assignment Policy: Late submissions are neither accepted nor graded.

    Missed midterm grades are normally moved to the final exam.

  7. Final Examinations: Students are strongly urged not to make any commitments (e.g., vacation) during the examination period. Students are required to be available for examinations during the examination periods of all terms in which they register. Refer to the Handbook on Undergraduate Course Management for more information.

  8. Religious and Spiritual Accommodation: The University welcomes students, staff and faculty from a wide range of backgrounds, beliefs and traditions and has a duty to provide accommodation based on creed (religion and spirituality) under the Ontario Human Rights Code. This obligation requires the University to work with students to provide reasonable accommodation when a student's religious observances or spiritual beliefs creates a conflict with their academic schedule. In order for instructors to provide proper accommodations, students have obligations to request accommodations in a timely manner. All policies, procedures, timelines, and request forms are found on Laurier’s Religious and Spiritual Accommodations and Supports webpage.

  9. Gender Inclusivity: This course will be held in a respectful and supportive environment for people of all gender identities and expressions. I’ve received a class roster based on official enrollment information. If you go by a different name, please feel free to let me know. You're also welcome to share your pronouns, if you’d like.

    Everyone is encouraged to refer to classmates using the names and pronouns they share. If you're comfortable, you’re welcome to let the class know how you'd like to be addressed.

    The Centre for Student Equity, Diversity and Inclusion (CSEDI) shares information on updating your name in systems like Zoom, MyLS, and email, along with details on other supports available.

  10. Using Zoom for Instructional Purposes: Wilfrid Laurier University uses a range of technologies to facilitate in-person and remote instruction. Zoom is currently used for remote course delivery, including lectures, seminars, and group office hours, which may be recorded, stored and shared through MyLearningSpace for access by students in the course. Instructors may require that cameras remain on during class sessions to support engagement and participation. Students who wish to use an alternative display name for privacy reasons may do so, provided they have received prior approval from the instructor. If a Zoom session is being recorded, students have the option to turn off their cameras at any time.

  11. Classroom Use of Electronic Devices: We expect, though do not require, you to work with a laptop or other personal computer for labs, assignments, midterm, and exam. There are on-campus computer labs available for your use. Phones may not be used during midterms or exams for other than authentication.

  12. Generative AI/Academic Integrity Statement: The use of generative AI is not permitted in this course. Using generative AI to aid in or fully complete your coursework will be considered academic misconduct and Senate Policy 12.2 Student Code of Conduct: Academic Misconduct will be applied.

  13. Intellectual Property: The educational materials developed for this course, including, but not limited to, lecture notes and slides, handout materials, examinations and assignments, and any materials posted to MyLearningSpace, are the intellectual property of the course instructors. These materials have been developed for student use only and they are not intended for wider dissemination and/or communication outside of a given course. Posting or providing unauthorized audio, video, or textual material of course content to third-party websites violates instructors’ intellectual property rights, and the Canadian Copyright Act. Recording lectures in any way is prohibited in this course unless specific permission has been granted by instructors. Failure to follow these instructions may be in contravention of the university’s Student Non-Academic Code of Conduct and/or Code of Academic Conduct, and will result in appropriate penalties. Participation in this course constitutes an agreement by all parties to abide by the relevant University Policies, and to respect the intellectual property of others during and after their association with Wilfrid Laurier University.

Multi-campus Resources (Provided by the Student Union):

Multi-campus Resources (Provided by the University):

Kitchener/Waterloo Resources:

Brantford Resources:

Milton Resources:

Course Resources

MyLearningSpace / Brightspace
Laurier Library
Study Skills and Course Support
writing centre, math centre, academic advising, study skills/supplemental instruction, accessible learning
Software Installation
Instructions for installing CP164 course software at home.
Using Eclipse / PyDev
An introduction to creating projects in Eclipse / PyDev.
PyDev Problems
Some typical problems when using PyDev.
A Free Textbook
How to Think Like a Computer Scientist: Learning with Python: a free textbook available for downloading.
Python Library Reference
This library reference manual documents Python's standard library, as well as many optional library modules.
Style Guide for Python Code
A style guide for Python from the creator of Python.
http://wiki.python.org/moin/
The Python wiki.

The educational materials developed for this course, including, but not limited to, lecture notes and slides, handout materials, examinations and assignments, and any materials posted to MyLearningSpace, are the intellectual property of the course instructor. These materials have been developed for student use only and they are not intended for wider dissemination and/or communication outside of a given course. Posting or providing unauthorized audio, video, or textual material of lecture content to third-party websites violates an instructor's intellectual property rights, and the Canadian Copyright Act. Recording lectures in any way is prohibited in this course unless specific permission has been granted by the instructor. Failure to follow these instructions may be in contravention of the university's Code of Student Conduct and/or Code of Academic Conduct, and will result in appropriate penalties. Participation in this course constitutes an agreement by all parties to abide by the relevant University Policies, and to respect the intellectual property of others during and after their association with Wilfrid Laurier University.

© 2026 David Brown. All Rights Reserved.