Course Syllabus

CP164: Data Structures I

Physics & Computer Science, Waterloo Campus

Winter 2020

Instructor Information

David Brown | Science Building, N2091
519-884-1970 x2711 |
By Appointment

Lab Instructor Information

David Brown
Sukhjit Sehra | Science Building, N2091
519-884-1970 x? |
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 Information
Section Days Times Room Instructor
Lecture B MWF - BA201 Mr. David Brown
Lecture C MWF - BA111 Mr. David Brown
Lab L1 M - BA113 Mr. Sukhjit Sehra
Lab L2 T - BA113 Mr. David Brown
Lab L3 W - BA113 Mr. David Brown
Lab L4 W - BA113 Mr. David Brown
Lab L5 R - BA113 Mr. Sukhjit Sehra
Lab L6 M - BA113 Mr. Sukhjit Sehra
Lab L7 T - BA113 Mr. David Brown
Lab L8 R - BA113 Mr. Sukhjit Sehra
Lab L9 R - BA113 Mr. David Brown

Course Overview and Approach

Course Tools and Learning Materials

The PCs in the public labs can be used by you for your assignments. We use the Python programming language and the Eclipse / PyDev IDE (Integrated Development Environment). We will provide you with more information about the computing facilities in your first lab.

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, or other media. We strongly suggest that you keep at least two copies of your work at all times, for memory sticks can fail, or be lost.

MyLearningSpace / Brightspace

Laurier Library

Study Skills and Course Support (writing centre, math centre, academic advising, study skills/supplemental instruction, accessible learning)

Student Evaluation

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

Students must pass the final exam in order to pass the course.


Note: this schedule is subject to change.

Schedule Information
Week Starting Labs Assignments
Friday, 8:30 am
2 1: Classes 1:
3 2: Stacks 2:
4 3: Queues 3:
5 4: Lists 4:
6 5: Recursion Midterm, Wednesday,
7 Reading Week
8 6: Lists (Cont'd) 5:
9 7: Recursion (Cont'd) 6:
10 8: BSTs 7:
11 9: Hashing 8:
12 10: Sorting 9:
13 10:

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. Special Needs: Students with disabilities or special needs are advised to contact Laurier’s Accessible Learning Centre for information regarding its services and resources.

  3. 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 the instructor, students are required to submit their written work in electronic form and have it checked for plagiarism. (Approved by Senate May 14, 2002) .

  4. Academic Integrity: Laurier is committed to a culture of integrity within and beyond the classroom. This culture values trustworthiness (i.e., 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.

  5. Final Examinations: Students are strongly urged not to make any commitments (i.e., vacation) during the examination period. Students are required to be available for examinations during the examination periods of all terms in which they register.

  6. Foot Patrol, the Wellness Centre, and the Student Food Bank:


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

© 2020 David Brown. All Rights Reserved.

Last updated: