COMP2402: Data Structures

Note: This is the webpage for the Fall 2020 offering of this course. It's only left here in case someone finds it useful as a reference.

Instructor: Pat Morin, 5177 HP,

Jump to Lecture Topics

Jump to the current lecture

Final Exam Information

The final exam will have the same format as the midterm exam, but will be 120 minutes long. It will be available on CULearn at the scheduled time. To find the scheduled time, consult the Final Exam Schedule but note that the final exam will be 120 minutes, not 180 minutes.

Learning Modality

Content for this course is delivered online, as a YouTube Live Stream on Wednesdays and Fridays at 14:30 (2:30pm). I give lectures from a classroom in my basement that students can tune into at the scheduled time (see the lecture schedule below). During the lecture students are encouraged to ask questions using the YouTube chat feature. In addition to being available as a live stream, these lectures are left on YouTube, so they can be watched later.

Course Objectives

This course is about storing data so that it can be efficient queried and (in some cases) updated. A detailed breakdown of topics is given below and here are some introductory slides.

Important Dates

Sunday Oct 4 23:55 Assignment 1 due
Sunday Oct 18 23:55 Assignment 2 due
Wednesday Oct 14 14:35 Mid-term evaluation/exam
Sunday Nov 15 23:55 Assignment 3 due
Friday Dec 11 23:55 Assignment 4 due


Academic Integrity (New—Please Read)

As of 2020, there are new penalties in place for academic integrity violations. These will be issued by the Associate Dean (Undergraduate Affairs) of Science to students who copy, in whole or in part, work they submit for assignments.

These are standard penalties. More-severe penalties will be applied in cases of egregious offences. Failure to inform yourself of the expectations regarding academic integrity is not a valid excuse for violations of the policy. When in doubt, ASK your instructor or TA.

For more information check the ODS website

Grading Scheme

Assignments 75%
Mid-term exam 10%
Final exam 15%


We will be using the following free (libre and gratis) textbook.

For some background material on some of the math used in this course, this book is excellent:

Accommodation Statement

Carleton University is committed to providing access to the educational experience in order to promote academic accessibility for all individuals. Here is information on how to apply for academic accommodation.

Lecture topics

You should already be familiar with programming in Java and hopefully have had some introduction to discrete math, including Sigma-notation for sums, and big-Oh notation. We will review most of these concepts as we use them and you can use the relevant parts of Lehman et al if you find yourself struggling.

The following is a tentative schedule of topics that follows the schedule from a previous edition of the course. It will be updated as the course progresses.