This course introduces fundamental data structures (lists, maps, trees, and graphs), and the algorithms that operate on them (graph traversal, shortest paths, minimum spanning trees, and sorting algorithms). The objectives are as follows:
Learn commonly used data structures in a systematic way, with emphasis on their abstract properties.
Understand typical algorithms that operate on each type of data structure and learn how to analyze their performance.
Be able to compare data structures and algorithms for solving the same problem, and choose the best one.
Class times and locations
Section B
Lecture B00
Tuesday
10:00–11:20 AM
STE A0150
Lecture B00
Thursday
8:30–9:50 AM
STE A0150
Lab B01
Monday
2:30–3:50 PM
STE 2060
Lab B02
Tuesday
1:00–2:20 PM
CBY B02
Tutorial B03
Monday
4:00–5:20 PM
MRT 218 (updated)
Tutorial B04
Monday
4:00–5:20 PM
MRT 218 (updated)
Section C
Lecture C00
Tuesday
1:00–2:20 PM
MHN 257
Lecture C00
Thursday
11:30 AM–12:50 PM
MHN 257
Lab C01
Friday
2:30–3:50 PM
CBY B02
Lab C02
Monday
2:30–3:50 PM
STE 0131
Lab C04
Friday
2:30–3:50 PM
STE 0131
Tutorial C03
Monday
7:00–8:20 PM
STM 224
Course materials and resources
TextbookData Structures and Algorithms in Java (6th edition), Michael Goodrich, Roberto Tamassia, and Michael Goldwasser, Wiley, 2014.
Thu, Sep 10Course logistics; introduction to data structures
—
—
Ch. 3–4
Analysis of algorithms
Tue, Sep 15Introduction to algorithms; Big-O notation
Thu, Sep 17Analysis of algorithms
Lab 1: linked lists and generics
—
Ch. 3–4
Lists
Tue, Sep 22Stacks, queues, and deques
Thu, Sep 24Lists and sequences
Lab 2: analysis of algorithms
Tutorial 1: analysis of algorithms
Ch. 6–7
Trees
Tue, Sep 29Trees and binary trees
Thu, Oct 1Binary trees, continued
Lab 3: stack
Tutorial 2: lists and SQD
Ch. 8
Heaps
Tue, Oct 6Priority queues
Thu, Oct 8Heaps and heapsort
Lab 4: lists and sequences
Tutorial 3: trees and binary trees
Ch. 9
Maps
Tue, Oct 13Maps and binary search trees
Thu, Oct 15Binary search trees, continued
Lab 5: binary tree traversal
No Lab B01 or Lab C02 on Oct 12 (Thanksgiving). Recorded lab instructions will be available on Brightspace.
Tutorial 4: priority queues and heaps
No tutorials on Oct 12 (Thanksgiving). A recorded tutorial will be available on Brightspace.
Ch. 10.1, 10.3, 11.1–11.2
Maps
Tue, Oct 20AVL trees
Thu, Oct 22AVL trees, continued
Lab 6: programming assignment 1
Tutorial 5: BST
Ch. 11.3
Week 7Oct 25–31Reading week
Maps / graphs
Tue, Nov 3(2,4) trees
Thu, Nov 5Graph representation
Lab 7: priority queues
Tutorial 6: AVL trees
Ch. 11.5, 14
Midterm: 9:30AM-11:30AM on Saturday, November 7
Graphs
Tue, Nov 10Graph traversals: DFS and BFS
Thu, Nov 12Shortest paths
Lab 8: AVL trees
Tutorial 7: (2,4) trees
Ch. 14
Graphs / hashing
Tue, Nov 17Minimum spanning trees
Thu, Nov 19Hashing
Lab 9: graphs and DFS
Tutorial 8: DFS and BFS
Ch. 10.2
Hashing / sorting
Tue, Nov 24Hashing, continued
Thu, Nov 26Insertion, selection, and bubble sort; mergesort
Lab 10: shortest paths
Tutorial 9: shortest paths and MST
Ch. 12
Sorting
Tue, Dec 1Quicksort
Thu, Dec 3Bucket sort and radix sort
Lab 11: hashing
Tutorial 10: hashing
Ch. 12
Wrap-up
Tue, Dec 8Course wrap-up and review
—
Tutorial 11: sorting algorithms
—
Assessment
15%Written assignments (A)4 assignments
15%Programming assignments (P)2 assignments
30%Midterm (M)9:30AM-11:30AM on November 7
40%Final exam (F)Date TBD
+2%Lab participation (B)Bonus term
Final Grade Calculation
A minimum of 50% in the weighted midterm and final exam grades is required to pass: (M + F) / 70 ≥ 50%. If the threshold is met, the final grade G = A + P + M + F + B; otherwise, G = (M + F) × 100 / 70.
Midterm and final exams
The midterm and final exam must be passed in the aggregate: (M + F) / 70 must be at least 50%.
If you miss the midterm due to justifiable reasons (e.g., sickness with a doctor’s note), the weight of midterm will be shifted to the final exam.
In that case, the final exam counts for 70% of the course grade and you must earn F/70 ≥ 50% on the final to pass the course.
Written assignments and programming assignments
Specifications for assignments will be posted on Brightspace.
All assignments must be completed individually and submitted to the appropriate folder on Brightspace. Submissions by email are not accepted.
Late submissions within 1 min - 24 hours are accepted with a 30% penalty. Submissions that are more than 24 hours late will not be accepted.
Labs
Release: Lab specifications will be posted on Brightspace at 4:00 PM each Thursday.
Submission deadline: Lab work is due at 11:59PM on the following Thursday. Late submissions within 1 min - 24 hours are accepted with a 30% penalty. No submissions will be accpeted more than 24 hours after the deadline.
In-person grading: In addition to submitting the lab on Brightspace, each student must have the lab graded in person by a TA during one of their scheduled lab sessions within the two weeks following the submission deadline. It is the student's responsibility to ask the TA to grade the submitted lab. During the grading, the TA may ask questions about the code and implementation before assigning the lab mark.
You may complete a lab individually or in a group of two members. If you work in a group, both students must belong to the same LAB Section, i.e., the same time/room/TA. Each student must submit the lab separately on Brightspace and must be graded individually in person. Even if two students submit the same group solution, each student is expected to understand the submitted code and be able to answer the TA's questions.
The lab participation bonus is proportional to the total lab marks you earn over the semester, up to a maximum bonus of 2 percentage points.
Course policies
Communication
Students are encouraged to attend the weekly office hours held by the professor and TAs. TA information and office hours are posted on Brightspace under General Information.
When sending an email, please begin the subject line with CSI2110, followed by a few words describing the topic, to help ensure that your email is properly identified and read. We will respond as soon as possible, but please allow up to two business days for a response.
Attendance
Attendance is not mandatory, but students are strongly encouraged to attend lectures. Slides are primarily teaching aids rather than complete lecture notes and may not contain every detail discussed in class.
Academic integrity and use of AI tools
Plagiarism (copying and submitting someone else's work for credit) and other forms of academic fraud are serious academic offenses that will not be tolerated. Note that students providing copy solutions also commit an offense because they are active participants in plagiarism. The person copying and the person providing the material for the copying will be reprimanded in a similar manner, according to regulations established by the University of Ottawa.
For this course, using generative AI tools (e.g., ChatGPT) in any submission is considered academic fraud.