Physics & Computer Science

CP164: Data Structures I - Spring 2025

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
A Waterloo MW 08:30 AM - 09:50 AM LH3094 Mr. Haytham Qushtom
IC1 Int College, Brantford -
ICA Int College, Brantford -
L1 Waterloo W 11:30 AM - 12:50 PM BA113 Dr. Heider Ali
OC1 Online Learning - Dr. Zia Ud Din
OCL Online Learning R 02:00 PM - 03:20 PM Zoom Ms Xuyang Ma

Course Overview and Approach

Mode of Delivery

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

Section OC2 is delivered online. You are, however, expected to write the exam in person. A student living more than 100 km from Waterloo 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

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.

There are Discussion boards available in MLS for discussing various course topics. The discussion boards are moderated - the instructor must approve all postings before they are made public on a board. You may post anonymously. Do not post answers of any kind.

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 Sunday
Other
1
2 1: Data Classes
Due:
1: CP104 Background
Due:
3 2: Array-Based Stacks
Due:
2: Data Classes
Due:
4 3: Array-Based Queues
Due:
3: Array-Based Stacks
Due:
5 4: Array-Based Lists
Due:
4: Array-Based Queues
Due:
6 5: Simple Recursion
Due:
5: Array-Based Lists
Due:
7 6: Linked Lists
Due:
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:

Academic Integrity

Laurier is committed to a culture of integrity within and beyond the classroom. This culture values honesty, integrity, reliability, fairness, caring, respect, accountability, responsibility and citizenship. Together, we have a shared responsibility to uphold this culture in our academic and nonacademic behaviour. It is expected that all students will follow assignment instructions and will adhere to Laurier’s regulations with respect to Academic Integrity. 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.

Ignorance of Laurier’s academic misconduct policy is not a defense

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.

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

We have recently experienced an increase in the volume of people gaining unauthorized access to digital resource by using another’s computer. It is your responsibility to keep your digital documents secure and maintain confidentiality. Do not leave your computer unattended, especially during group activities, and be diligent to log out of pages where you store digital files.

Unauthorized Collaboration/Academic Integrity Statement

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.

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.

Late Assignment Policy

Late submissions are neither accepted nor graded.

Missed Midterms

Missed midterm grades are normally moved to the final exam.

Accommodations for religious observances: must be submitted within two weeks of the start of term using the Student Request for Accommodation for Religious Observances form. These grades will not be moved to the final exam.

Speak to your instructor ahead of assessments to identify what legitimate potential conflicts will be recognized and accommodated and what are unacceptable reasons for missing an assessment.

If the student is unable to provide a valid reason for not participating in the midterm test with supporting documentation (to be decided upon by course instructor, in line with University and Course Policies stated in the Course Syllabus), a grade of zero will be assigned to the midterm test. Students are advised to consult the Academic Calendars and Governance resources for expanded details of their rights and regulations.

University and Course Policies

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

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.

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 (library.wlu.ca/services/accessibility-hub) or email libaccessibility@wlu.ca.

Plagiarism: The University has approved the following wording for inclusion on all course syllabi about the use of the institutionally supported plagiarism software tool:

"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.” (Approved by Senate May 14, 2002).

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.”

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.”

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.

Gender Inclusivity: “This course will be conducted in an affirming and mutually respectful atmosphere for people of all gender expressions and identities. I was provided with a class roster with your name as it appears on the official enrollment information. If you use a name different from the roster, please let me know at your earliest convenience. You can also share your gender pronouns with me if you like. Members of the class are expected to refer to one another by the name and pronouns identified by each student. If you are comfortable, you can also let your classmates know about your name and pronouns. The Centre for Student Diversity, Equity and Inclusion (CSEDI) has developed a website outlining how to request a different name to appear on some university records and systems such as Zoom, MyLS and email. The website also provides information about Laurier’s Inclusive Washroom Initiative, support resources at Laurier, and more.”

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. For these course activities, students are permitted to turn off their cameras or use an alternative name to maintain their privacy after they have confirmed this with their course instructors. Student personal information is collected and used in the course in accordance with University policies and the Notice of Collection, Use or Disclosure of Personal Information. All exams and mid-terms in the course that are conducted online will be proctored using only technologies approved for assessment at Laurier as outlined on this page.”

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.

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:

Kitchener/Waterloo Resources:

Brantford Resources:

Milton Resources:

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.

© 2025 David Brown. All Rights Reserved.