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


WEB PAGE: www.eecs.uottawa.ca/~lucia/courses/2110-23/
ONLINE
PLATFORM:
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
TO ENSURE YOUR EMAIL IS READ AND PROCESSED,
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: Public area in from of MHN 257 (my office is STE5027 in case I schedule other office hours).
Time: Thursdays 10:00-11:00ish; Location: public area in front of MHN 257.
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
CSI2110A: Lecture A00: Tuesday 1:00PM - 2:30PM MHN 257
Lecture A00: Thursday 11:30AM - 1:00PM MHN 257
students attend the tutorial:
Tutorial A03: Friday 2:30PM-4:00PM SCR 002
students attend one of the labs:
Laboratory A01: Tuesday 10:00AM - 11:30AM CBY B02
Laboratory A02: Monday 11:30AM - 1:00PM CBY B02

CSI2110B: Lecture B00: Tuesday 10:00AM - 11:30AM DMS 1140
Lecture B00: Thursday 8:30AM - 10:00AM DMS 1140
students attend one tutorial:
Tutorial B03: Monday 4:00PM-5:30PM room VNR 2095
Tutorial B04: Wednesday 2:30PM-4:00PM room VNR 2075
students attend one of the labs:
Laboratory B01 Monday 2:30PM-4:00PM STE2060
Laboratory B02 Tuesday 1:00PM-2:30PM STE 2060

Policies
  • Policy on plagiarism and Policy on missed midterm (please consult content section GENERAL INFO in brightspace to familiarize yourself with these policies)

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

COURSE
OBJECTIVES:
  • 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.
COURSE
TOPICS:

  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. Graphs, graph traversals, shortest path algorithms, minimum spanning trees
  11. Hash tables
  12. Merge sort, quick sort and comparing sorting methods.
  13. Linear time sorting: bucket sorting, radix sorting

MARKING
SCHEME:
20 marks (A) Written Assignments
20 marks (P) Programming Assignments
25 marks (M) Midterm test
35 marks (F) Final Exam
2 marks (B) Bonus: Lab Participation
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)/60 >= 50% then G= A+P+M+F+B
else G=(M+F)*100/60


IMPORTANT
DATES:


weight: due date: (note dates are tentative; correct date in virtual campus)
Written Assignments (A) 20%  5 assignments (released and due approx every 2 weeks)
Programming Assignments (P) 20%  2 programs (P1: due October; P2: due November; dates to be confirmed)
Midterm Test (M) 25%  Sunday - Nov 5 - 4:00-6:00PM (room: MNT202(last name A-L) and MNT203(last name M-Z))
Final Exam (E) 35%  To be schedule by uottawa in exam period Dec 8-21

Dates from the University of Ottawa Academic Calendar:
First lecture: Thursday September 7
First in-person tutorial: Friday Sep 15 (A03), Monday Sep 18 (B03), Wednesday Sep 20 (B04).
First in-person lab: Monday Sep 18 (A02, B01), Tuesday Sep 19 (A01, B02)
Study break: October 22-28
Last date to drop: November 17
Last lecture: Tuesday Dec 5
Exam period: Dec 8-21