CSI 2110: Data Structures and Algorithms (Fall 2026)

Professor
Bo Sun
Sections
CSI 2110-B & C
Office
STE 4021
Office hours
Tue 3:00–4:00 PM
Thu 2:00–3:00 PM

Course overview

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.
BrightspaceAnnouncements, Course materials (lecture notes, labs, tutorials), Assignment submissions

Tentative course schedule

Week / datesTopicLecturesLabsTutorialsReadings
Introduction
  • 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.

For more information, please see: