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

WEB PAGE: www.eecs.uottawa.ca/~lucia/courses/2110-21/
Virtual Campus: LMS Brightspace/Zoom
Virtual campus area :q will be activated a couple of days before the course starts.
All contact lectures/tutorials/labs are online and synchronous unless otherwise specified in virtual campus.
PROFESSOR: Lucia Moura
email: lmoura@uottawa.ca
OFFICE HOURS: Location: online;
Time: Mondays 11:30-12:30; 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 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

  • Policy on plagiarism (please consult in brightspace)
  • Online Tests: Whenever a midterm test or exam is taken remotely, you must be present during the Zoom meeting for the test with your camera on and ability to share screen and speak using microphone if asked; this requires a good internet connection, a computer with webcam and microphone.

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
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)/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: Due Nov 9 ; P2: Due late November ; dates to be confirmed)
Midterm Test (M) 15%  Sunday Oct 31 11:00-13: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 8 (C) or September 9 (D)
First tutorial: Sep 10 (D03), Sep 13(C03).
First lab: Sep 13 (C02), Sep 14 (D01, D02), Sep 17 (C01)
Study break: October 24-30
Last date to drop: November 19
Last lecture: Dec 6 (C) or Dec 7 (D)
Exam period: Dec 9-22