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

WEB PAGE: www.eecs.uottawa.ca/~lucia/courses/2110-20/
Virtual Campus: LMS Brightspace/Zoom
Virtual campus area is currently unavailable and will be activated a couple of days before the course starts.
All contact lectures/tutorials/labs are synchronous unless otherwise specified in virtual campus.
PROFESSOR: Lucia Moura
email: lmoura@uottawa.ca
OFFICE HOURS: Location: online/Zoom link in brightspace;
Time: Mondays 1:00-2:00PM; Fridays 1:00-2:00PM.
TA CONTACTS: TA names and contact, for each lab and DGD)
  • Johan Fernandes, jfern090@uottawa.ca, LABC02 MON2:30PM.
  • Daniela Santos Munoz, dsant041@uottawa.ca, LABD02 TUES10:00AM.
  • Nick Sault, nsalt009@uottawa.ca, LABD01 TUES11:30AM.
  • Nicholas Fleece, nflee092@uottawa.ca, alternates teaching LABC01 FRI2:30PM and TUTORIALis D03FRI and C03MON.
  • Zhijun Hou, zhou046@uottawa.ca, alternates teaching LABC01 FRI2:30PM a nd TUTORIALis D03FRI and C03MON.
SCHEDULE: MASTER SCHEDULE TBA(what is covered in lectures, labs, tutorials)
CSI2110C: Lecture C00: Monday 10:00AM - 11:30AM online
Lecture C00: Wednesday 8:30AM - 10:00AM online
students attend the tutorial:
Tutorial C03: Monday 4:00PM-5:30PM online
students attend one of the labs:
Laboratory C01 Friday 2:30PM-4:00PM online
Laboratory C02 Monday 2:30PM-4:00PM online

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

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

30 marks (A) Written Assignments
30 marks (P) Programming Assignments
15 marks (M) Midterm test
25 marks (F) Final Exam
0-2 marks (B) Bonus: Participation (Lectures, LAB, Tutorial); criteria to be announced by each instructor
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)/40 >= 50% then G= A+P+M+F+B
else G=(M+F)*10/4


weight: due date: (note dates are tentative; correct date in virtual campus)
Written Assignments (A) 30%  11 assignments approx, released Weekly (best 9 out of 11)
Programming Assignments (P) 30%  2 programs (P1: Oct 2-21; P2: Nov 5-26)
Midterm Test (M) 15%  Sunday, Nov 1, 9:00-11:00
Final Exam (E) 25%  To be schedule by uottawa in exam period Dec 10-22

Dates from the University of Ottawa Academic Calendar:
First lecture: September 9 (C) or September 10 (D)
First tutorial: Sep 11 (D03), Sep 14(C03).
First lab: Sep 14 (C02), Sep 15 (D01, D02), Sep 18 (C01)
Study break: October 25-31
Last date to drop: November 20
Last lecture: Dec 7 (C) or Dec 8 (D)
Exam period: Dec 10-22