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


WEB PAGE: http://www.eecs.uottawa.ca/~lucia/courses/2110-14/
Virtual campus web site is where most material is available
PROFESSOR: Lucia Moura
tel: 562-5800 ext. 6678
email: lucia@eecs.uottawa.ca
OFFICE HOURS: Office: SITE 5-027 
Tuesdays 11:45-12:45 and Thursdays 10:15-11:15
CSI2110A: Lecture 1: Tuesday 13:00 - 14:30 SCS E217
Lecture 2: Thursday 11:30 - 13:00 SCS E217
DGD/Tutorial: Tuesday 17:30 - 19:00 SCS E217
students attend one of the labs:
Laboratory 1: Monday 14:30 - 16:00 STE 0131
Laboratory 2: Tuesday 16:00 - 17:30 STE 0131
Laboratory 3: Tuesday 10:00 - 11:30 STE 2052
CSI2110B: Lecture 1: Tuesday 10:00 - 11:30 LPR 155
Lecture 2: Thursday 8:30 - 10:00 LPR 155
DGD/Tutorial: Monday 17:30 - 19:00 SCS E217
students attend one of the labs:
Laboratory 1: Monday 14:30 - 16:00 STE 2052
Laboratory 2: Tuesday 16:00 - 17:30 STE 2060
Laboratory 3: Tuesday 13:00 - 14:30 STE 0131

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

MARKING SCHEME: 30 marks (A) Assignments (3 theoretical, 2 programming)
30 marks (M) Midterm test
40 marks (F) Final Exam
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
Assignment 2 (P) 7.5%  Oct 20
Midterm Test 30%  Sunday October 19, 3:00PM room: STE G0103 (A) STE H0104 (B)
Assignment 3 (T) 5%  Nov 3
Assignment 4 (P) 7.5%  Nov 17
Assignment 5 (T) 5%  Dec 1

Dates from the University of Ottawa Academic Calendar:
First lecture: September 4
Study break: October 12-18
Last date to drop: November 14
Last lecture: December 2