CSI2110A Data Structures and Algorithms (Fall 2013): course description


WEB PAGE: http://www.eecs.uottawa.ca/~lucia/courses/2110-13/
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 
Wednesdays 1:30-2:30
LECTURES: Lecture 1: Tuesday 13:00 - 14:30 MNT 207
Lecture 2: Thursday 11:30 - 13:00 MNT 207
DGD/Tutorial: Tutorial: Tuesday 17:30 - 19:00 FSS 1030
LABs: students attend one of the labs:
Laboratory 1: Monday 14:30 - 16:00 STE 0130
Laboratory 2: Tuesday 16:00 - 17:30 STE 0130
Laboratory 3: Tuesday 10:00 - 11:30 STE 0130

TEXTBOOK: Data Structures and Algorithms in Java (5th ed.), Michael Goodrich, Roberto Tamassia, Wiley, 2010.
Textbook will be 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 5)
  2. Analysis of algorithms. (Sep 10, 12)
  3. Stacks, queues, deques.(Sep 17)
  4. Vectors, lists and sequences. (Sep 19)
  5. Priority queues. (Sep 19, Sep 24)
  6. Trees and binary trees. (Sep 24, 26, Oct 1)
  7. Heaps. (Oct 3, Oct 8)
  8. Maps and dictionaries (Oct 8)
  9. Search trees: binary search trees (Oct 8), AVL trees (Oct 22, 24), (2-4) trees (Oct 24).
  10. Hash tables (Oct 29)
  11. Sorting and their analysis: insertion sort , selection sort, bubble sort, merge sort, quick sort and other sorting methods. (Oct 31, Nov 5, Nov 7)
  12. Graphs: data structures for graphs, traversals, minimum spanning trees, shortest paths. (Nov 12, Nov 14, Nov 19, Nov 21)
  13. Strings and pattern matching. (Nov 26, Nov 28)
  14. Review. (Dec 3)

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%  October 2, 13:00
Assignment 2 (P) 7.5%  (by Oct 21)
Midterm Test 30%  Sunday October 27 10:00 room: STE B0138
Assignment 3 (T) 5%  (week of Nov 7)
Assignment 4 (P) 7.5%  TBA
Assignment 5 (T) 5%  TBA

Dates from the University of Ottawa Academic Calendar:
First lecture: September 5
Study break: October 13-19
Last date to drop: November 15
Last lecture: December 3