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


WEB PAGE: http://www.eecs.uottawa.ca/~lucia/courses/2110-16/
Virtual campus web site is where most material will be available
PROFESSOR: Lucia Moura
tel: 562-5800 ext. 6678
email: lucia@eecs.uottawa.ca
OFFICE HOURS: Office: SITE 5-027 
Thursdays 2:00-3:00 (other time TBA)
TA CONTACTS: TA names and contact, office hours and TA namse for each lab and DGD
CSI2110A: Lecture 1: Tuesday 13:00 - 14:30 LEE A131
Lecture 2: Thursday 11:30 - 13:00 LEE A131
students attend the DGD/tutorial:
Tutorial: Friday 14:30-16:00 FSS4007 (new!)
students attend one of the labs:
Laboratory A1 Monday 14:30-16:00 CBY B02
Laboratory A2 Tuesday 10:00-11:30 CBY B02
Laboratory A3 join A2 for weeks Sep 19-20 (Monday 11:30-13:00 STE2052 split from A2 effective week Sep 26)
Laboratory A4 join A1 for weeks Sep 19-20 (Monday 14:30-16:00 STE2060 split from A1 effective week Sep 26)
CSI2110B: Lecture 1: Tuesday 10:00 - 11:30 TBT 070
Lecture 2: Thursday 8:30 - 10:00 TBT 070
students attend one of the DGDs/tutorials:
DGD/Tutorial 1: Friday 14:30-16:00 FTX 351
students attend one of the labs:
Laboratory B1: Monday 14:30 - 16:00 STE 0131
Laboratory B2: Tuesday 13:00 - 14:30 STE 2060
Laboratory B3: join B2 for week Sep 19-20 (Tuesday 13:00 - 14:30 STE 0130 split from B2 effective week Sep 26)

TEXTBOOK: Data Structures and Algorithms in Java (6th ed.), Michael Goodrich, Roberto Tamassia, Wiley, 2014.
Textbook is available at Agora bookstore
(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. (Sept 8)
  2. Analysis of algorithms. (Sep 13, 15)
  3. Stacks, queues, deques.(Sep 20)
  4. List and iterator ADT. (Sep 22)
  5. Trees and binary trees. (Sep 27, Sep 29)
  6. Priority queues and sorting. (Oct 4)
  7. Heaps. (Oct 6, Oct 11)
  8. Maps and dictionaries (Oct 13)
  9. Search trees: binary search trees (Oct 13), AVL trees (Oct 18, 20), (2-4) trees (Nov 1).
  10. Hash tables (Nov 3)
  11. Sorting and their analysis: insertion sort , selection sort, bubble sort, merge sort, quick sort and other sorting methods. (Nov 8, Nov 10)
  12. Graphs: data structures for graphs, traversals, minimum spanning trees, shortest paths. (Nov 15, Nov 17, Nov 22, Nov 24)
  13. Strings and pattern matching. (Nov 29, Dec 1)
  14. Review. (Dec 6)

MARKING SCHEME: 30 marks (A) Assignments (3 theoretical, 2 programming)
30 marks (M) Midterm test
40 marks (F) Final Exam
(NOTE NEW:) LAB & DGD participation (2% bonus) towards final grade
100 marks (G) Grade

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


IMPORTANT
DATES:


weight: due date: (tentative)
Assignment 1 (T) 5%  Sep 26, 9:30am
Assignment 2 (P) 7.5%  Oct 10, 9:30am
Assignment 3 (T) 5%  Oct 22, 9:30am
Midterm Test 30%  Sunday Oct 30, 3:00PM-5:00PM room: MNT202 (sect A), MNT203 (sect B)
Assignment 4 (P) 7.5%  Nov 14, 9:30am
Assignment 5 (T) 5%  Dec 5, 9:30am

Dates from the University of Ottawa Academic Calendar:
First lecture: September 8 (Thursday)
First lab: September 12 or 13.
First tutorial/DGD: September 16.
Study break: October 23-29
Last date to drop: November 18
Last lecture: December 6 (Tuesday)