CSI2110 C&D Data Structures and Algorithms (Fall 2022): course description

WEB PAGE: www.eecs.uottawa.ca/~lucia/courses/2110-22/
Virtual Campus: LMS Brightspace
Virtual campus area will be activated the week the course starts.
All contact lectures/tutorials/labs are in-person unless otherwise specified in virtual campus.
PROFESSOR: Lucia Moura
email: lmoura@uottawa.ca
PLEASE START THE SUBJECT LINE WITH: "CSI2110" and continue the subject line with a 2-5 word descriptive subject.
Proceed with: greeting; get to the point with all relevant info; closing; name & student number.
OFFICE HOURS: Location: STE5027
Time: Mondays 11:40-12:40; Thursdays 2:00-3:00
TA CONTACTS: TA names and contact, for each lab and DGD (see brightspace)
SCHEDULE: MASTER SCHEDULE (what is covered in lectures, labs, tutorials): see brightspace
CSI2110C: Lecture C00: Monday 10:00AM - 11:30AM CBY B205
Lecture C00: Wednesday 8:30AM - 10:00AM CBY B205
students attend one tutorial:
Tutorial C03&C04: Monday 4:00PM-5:30PM room CBY B012 (note room change!):
students attend one of the labs:
Laboratory C01 Friday 2:30PM-4:00PM CBY B02
Laboratory C02 Monday 2:30PM-4:00PM STE 0131

CSI2110D: Lecture D00: Tuesday 1:00PM - 2:30PM DMS 1140
Lecture D00: Thursday 11:30AM - 1:00PM DMS 1140
students attend the tutorial:
Tutorial D03: Friday 2:30PM-4:00PM STM 224
students attend one of the labs:
Laboratory D02: Tuesday 10:00AM - 11:30AM STE 2060
Laboratory D01: Tuesday 11:30AM - 1:00AM STE 2060

  • Policy on plagiarism (please consult in brightspace)

TEXTBOOK: Data Structures and Algorithms in Java (6th ed.), Michael Goodrich, Roberto Tamassia, Wiley, 2014.

  • Students will learn in a systematic way the most commonly used data structures with emphasis on their abstract properties.
  • Understand the typical algorithms that operate on each kind of data structure and learn how to analise their performance.
  • Be able to compare different data structures and algorithms for solving the same problem, and choose the best.

  1. Introduction, review of arrays and linked lists.
  2. Analysis of algorithms.
  3. Stacks, queues, deques.
  4. Lists
  5. Trees and binary trees.
  6. Priority queues and sorting.
  7. Heaps.
  8. Maps and binary search trees
  9. AVL trees; 2-4 trees
  10. Hash tables
  11. Graphs, graph traversals, shortest path algorithms, minimum spanning trees
  12. Merge sort, quick sort and comparing sorting methods.
  13. Linear time sorting: bucket sorting, radix sorting

25 marks (A) Written Assignments
20 marks (P) Programming Assignments
20 marks (M) Midterm test
35 marks (F) Final Exam
2 marks (B) Bonus: Participation (LABs, and possibly other bonus activities TBA)
100 marks (G) Grade

A minimum of 50% in the weighted grades of Midterm test and Final Exam are required to pass the course according to formula:
if (M+F)/55 >= 50% then G= A+P+M+F+B
else G=(M+F)*100/55


weight: due date: (note dates are tentative; correct date in virtual campus)
Written Assignments (A) 25%  11 assignments approx, released Weekly (best 10 out of 11)
Programming Assignments (P) 20%  2 programs (P1: October; P2: November; dates to be confirmed)
Midterm Test (M) 20%  Saturday Nov 5 2:00-3:50PM (confirmed: MRT212(C), MRT218 (D))
Final Exam (E) 35%  To be schedule by uottawa in exam period Dec 9-22

Dates from the University of Ottawa Academic Calendar:
First lecture: September 7 (C) or September 8 (D)
First tutorial: Sep 16 (D03), Sep 19(C03,C04).
First lab: Sep 12 (C02), Sep 13 (D01, D02), Sep 16 (C01)
Study break: October 23-29
Last date to drop: November 18
Last lecture: Dec 5 (C) or Dec 6 (D)
Exam period: Dec 9-22