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


WEB PAGE: www.eecs.uottawa.ca/~lucia/courses/2110-17/
Course resources (classnotes/labs) are shared with students in this password protected area (Students should have received passwords by email from the professor):
www.site.uottawa.ca/~lucia/courses/2110-17/Resources/
Assignment submission will be done at the virtual campus (course currently unavailable).
PROFESSOR: Lucia Moura
tel: 562-5800 ext. 6678
email: lmoura@uottawa.ca
OFFICE HOURS: Office: SITE 5-027 
Wednesdays 10:30-11:30; Thursdays 1:30-2:30
TA CONTACTS: TA names and contact, for each lab and DGD (info currently not available)
CSI2110A: Lecture 1: Tuesday 13:00 - 14:30 SCR 002
Lecture 2: Thursday 11:30 - 13:00 SCR 002
students attend the DGD/tutorial:
Tutorial: Friday 14:30-16:00 TBT 333
students attend one of the labs:
Laboratory A1 Monday 14:30-16:00 STE 2060
Laboratory A2 Tuesday 10:00-11:30 CBY B02
Laboratory A3 Monday 11:30-13:00 STE2060

CSI2110B: Lecture 1: Tuesday 10:00 - 11:30 HNN 013
Lecture 2: Thursday 8:30 - 10:00 HNN 013
students attend one of the DGDs/tutorials:
DGD/Tutorial 1: Wed 14:30-16:00 HNN 013
students attend one of the labs:
Laboratory B1: Monday 14:30 - 16:00 STE 0131
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 SMD 224
Lecture 2: Wednesday 8:30 - 10:00 SMD 224
students attend one of the DGDs/tutorials:
DGD/Tutorial 1: Mon 4:00-5:30 DMS 1150
students attend one of the labs:
Laboratory C1: Monday 14:30 - 16:00 CBY B02
Laboratory C2: Tuesday 10:00 - 11:30 STE 2052

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

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 and review. (Sep 7)
  2. Analysis of algorithms. (Sep 12, 14)
  3. Stacks, queues, deques.(Sep 19)
  4. List and iterator ADT. (Sep 21)
  5. Trees and binary trees. (Sep 26, Sep 28)
  6. Priority queues and sorting. (Oct 3)
  7. Heaps. (Oct 5, Oct 10)
  8. Maps and dictionaries (Oct 12)
  9. Search trees: binary search trees (Oct 12), AVL trees (Oct 17, 19), (2-4) trees (Oct 31).
  10. Hash tables (Nov 2)
  11. Sorting and their analysis: insertion sort , selection sort, bubble sort, merge sort, quick sort and other sorting methods. (Nov 7, Nov 9)
  12. Graphs: data structures for graphs, traversals, minimum spanning trees, shortest paths. (Nov 14, Nov 16, Nov 21, Nov 23)
  13. Strings and pattern matching. (Nov 28, Nov 30)
  14. Review/catchup. (Dec 5-7)

MARKING SCHEME: 30 marks (A) Assignments (3 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) 5%  Sep 24
Assignment 2 (P) 7.5%  Oct 8
Assignment 3 (T) 5%  Oct 22
Midterm Test 30%  Sunday Oct 29, 3:00-5:00PM rooms MNT201,202,203,204 and 207.
Assignment 4 (P) 7.5%  Nov 12, 9:30am
Assignment 5 (T) 5%  Dec 26

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