Week 1: 1/21 - 1/23

Lectures: Course introduction; abstract data types (ADTs) [ slides ]
Reading: Chapter 4 in Walls and Mirrors.
Recitation: No recitations this week
Assignments: First programming assignment is available

Week 2: 1/26 - 1/30

Lectures: Measuring the efficiency of algorithms [ slides ]
Reading: Sections 3.2,3.3 in Rosen, Section 10.1 in Walls and Mirrors.
Recitation: Using checkin, review of linked lists, help on programming assignment

Week 3: 2/2 - 2/6

Lectures: Stacks and Queues [ slides ]
Reading: chapters 7 and 8 in Walls and Mirrors
Recitation: Review of big-O analysis, generics, stacks
Assignments: Second programming assignment is available

Week 4: 2/9 - 2/13

Lectures: Queues (cont). Advanced sorting algorithms using divide and conquer strategies; evaluating complexity of recursive algorithms [ slides ]
Reading: Walls and Mirrors 10.2, Rosen 7.1, 7.3
Recitation: Programming a queue; work on programming assignment

Week 5: 2/16 - 2/20

Lectures: Sorting algorithms using divide and conquer strategies (cont)
Reading: Walls and Mirrors 10.2, Rosen 7.1, 7.3
Recitation: recursion
Assignments: Second written assignment is available

Week 6: 2/23 - 2/27

Lectures: Wednesday: Midterm. Mon, Fri: Trees, binary search trees
[ slides ]
Reading: Walls and Mirrors ch. 11
Recitation: Review for midterm, recursion

Week 7: 3/2 - 3/6

Lectures: Trees, binary search trees (cont)
Reading: Walls and Mirrors ch. 11
Recitation: Iterators, recursion

Week 8: 3/9 - 3/13

Lectures: Priority queues and heaps [ slides ]
Reading: Walls and Mirrors ch. 12.2
Recitation: More iterators

Week 9: 3/23 - 3/27

Lectures: Monday: grammars [ slides ] Wednesday: Working in teams - a talk by Debbie Bartlett. Friday: Balanced search trees [ slides ]
Reading: Walls and Mirrors ch. 6.2, ch. 12,13
Recitation: implementing a heap

Week 10: 3/30 - 4/3

Lectures: Balanced search trees (cont). Friday: graphs [ slides ]
Reading: Walls and Mirrors ch. 13; ch. 14.1-14.2
Recitation: programming quiz. You will use the binary tree and tree node classes.

Week 11: 4/6 - 4/10

Lectures: Monday: graphs (cont). Wednesday: midterm. Friday: more graphs [ slides ]
Reading: Walls and Mirrors ch. 14
Recitation: help with programming assignment, go over written hw, command-line arguments, review for midterm

Week 12: 4/13 - 4/17

Lectures: graphs - directed acyclic graphs and topological sorting of graphs; graph algorithms [ slides ], relations [ slides ]
Reading: Walls and Mirrors ch. 14, Rosen 8.1-8.5 (relations)
Recitation: Implementing graphs.

Week 14: 4/27 - 5/1

Lectures: Dijkstra's algorithm (slides in the graph algorithms set), more problems on graphs [ slides ]
hash tables [ slides ]
Reading: Walls and Mirrors ch. 14 (graphs), 13 (hash tables)
Recitation: Review of relations and grammars.

Week 15: 5/4 - 5/8

Lectures: hash tables (cont); discussion of final [ slides ]
Reading: Walls and Mirrors ch. 13
Recitation: Programming part of final.

Week 16:

Wed -- special review session 1-3pm at CSB130. Thu -- final exam at 7am.