CSI2110 Data Structures and Algorithms (Fall 2018): course description


WEB PAGE: www.eecs.uottawa.ca/~lucia/courses/2110-18/
Assignment submission will be done at the virtual campus (virtual campus area is currently unavailable).
PROFESSOR: Lucia Moura
tel: 562-5800 ext. 6678
email: lmoura@uottawa.ca
TO ENSURE YOUR EMAIL IS READ,
PLEASE START THE SUBJECT LINE WITH: "CSI2110 student"
OFFICE HOURS: Office: SITE 5-027 
Mondays 3:00-4:00; Thursdays 1:30-2:30; check office hour weekly schedule for deviations from these times and added office hours
TA CONTACTS: TA and Prof Office Hour Schedule
TA names and contact, for each lab and DGD: see brightspace
SCHEDULE: MASTER SCHEDULE (what is covered in lectures, labs, tutorials)
CSI2110A: Lecture 1: Tuesday 13:00 - 14:30 STE G0103
Lecture 2: Thursday 11:30 - 13:00 STE G0103
students attend the tutorial:
Tutorial: Friday 14:30-16:00 MNT202
students attend one of the labs:
Laboratory A1 Tuesday 10:00-11:30 CBYB02
Laboratory A2 Monday 11:30-1:00 CBYB02

CSI2110B: Lecture 1: Tuesday 10:00 - 11:30 STE A0150
Lecture 2: Thursday 8:30 - 10:00 STE A0150
students attend the tutorial:
Tutorial: Wed 14:30-16:00 MRN 150
students attend one of the labs:
Laboratory B1: Monday 14:30 - 16:00 STE 2060
Laboratory B2: Tuesday 13:00 - 14:30 STE 2052
Laboratory B3: Tuesday 13:00 - 14:30 CBY B02

CSI2110C: Lecture 1: Monday 10:00 - 11:30 STE G0103
Lecture 2: Wednesday 8:30 - 10:00 STE G0103
students attend the tutorial:
DGD/Tutorial 1: Mon 4:00-5:30 MNT 203
students attend one of the labs:
Laboratory C1: Friday 14:30 - 16:00 CBY B02
Laboratory C2: Tuesday 10:00 - 11:30 (please merge with A1 in room CBY B02!)
Laboratory C3: Monday 2:30 - 4:00 STE 0131

TEXTBOOK: Data Structures and Algorithms in Java (6th ed.), Michael Goodrich, Roberto Tamassia, Wiley, 2014.
(The textbook is required; some copies available at the Uottawa bookstore)

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 for solving the same problem, and choose the best.
COURSE OUTLINE:
  1. Introduction, review of arrays and linked lists. (Sep 6)
  2. Analysis of algorithms. (Sep 11, 13)
  3. Stacks, queues, deques.(Sep 18, 20)
  4. Lists (Sep 20, 25)
  5. Trees and binary trees. (Sep 27, Oct 2)
  6. Priority queues and sorting. (Oct 4)
  7. Heaps. (Oct 9, Oct 11)
  8. Maps and binary search trees (Oct 16, 18)
  9. AVL trees (Oct 30, Nov 1)
  10. Hash tables(Nov 6, 8)
  11. Merge sort, quick sort and comparing sorting methods. (Nov 13, Nov 15)
  12. Graphs, graph traversals, shortest path algorithms(Nov 20, 22, 27)
  13. Linear time sorting: bucket sorting, radix sorting(Nov 29)
  14. Review/catchup. (Dec 4)

MARKING SCHEME: 30 marks (A) Assignments (2 theoretical, 2 programming)
30 marks (M) Midterm test
40 marks (F) Final Exam
(2 marks (B) Bonus: LAB & DGD participation)
100 marks (G) Grade

if (M+F)/70 >= 50% then G= A+M+F+B
else G=(M+F)*10/7


IMPORTANT
DATES:


weight: due date: (tentative)
Assignment 1 (T) 6%  Oct 1 (extended Oct 3 11:55PM)
Assignment 2 (P) 9%  Oct 15
Midterm Test 30%  Sunday Nov 4, 10:00am-12:00 rooms: STE A,B,C,F,G,H,J (floor 0)
Assignment 3 (T) 6%  Nov 19
Assignment 4 (P) 9%  Nov 26

Dates from the University of Ottawa Academic Calendar:
First lecture: September 6 or 7
First lab: week of September 10.
First tutorial/DGD: week of September 10.
Study break: October 21-27
Last date to drop: November 16
Last lecture: Dec 4 or Dec 5 (Dec 5 follows Monday schedule)