Syllabus calendar

Click on a day to see full information for that day, including topic list, suggested readings, questions, and other information. This page will be updated throughout the term.

Wk M T W F
1 21 Aug
Introductions, Policies
Lab 1 preview
22 Aug
Lab 1: Review and mastery
Lab 1
23 Aug
What is a data structure?, Design and specification
25 Aug
Object-oriented design, Classes and methods
2 28 Aug
.h files, Templates, UML
Lab 1 due
29 Aug
Lab 2: Classes
Lab 2
30 Aug
1 Sep
ADTs, Lists
3 [no class] 5 Sep
Lab 3: Function design, Unit testing
Lab 3
6 Sep
Implementing an ADT
Lab 2 due
8 Sep
append, remove, Pointers, "Smart" pointers
4 11 Sep

Lab 3 draft due
12 Sep
Lab 4: Pointers
Lab 4
13 Sep
Dynamic allocation
Hwk 1 out
15 Sep
Recursion, Fibonacci, Linked nodes
Hwk 1 due
5 18 Sep
Linked list
Lab 3 due
19 Sep
Lab 5: Linked node methods
Lab 5
20 Sep
Linked list implementation (continued)
Hwk 2 out
22 Sep
Recursive algorithms, Tower of Hanoi
Hwk 2 due
Hwk 1 revision due
6 25 Sep
Binary search, The call stack
26 Sep
Lab 6: Reading code, make, gdb, Backtracking
Lab 6
27 Sep
Recursive backtracking, Other uses of stacks
Exam 1 out
Hwk 2 revision due
29 Sep

Exam 1
7 2 Oct
Stacks and recursion, Array-based stack implementation, Exceptions
3 Oct
Lab 7: Using STL stacks
Lab 7
4 Oct
Review of allocation, references, and memory models
[no class]
8 9 Oct
Classic ADTs, The "big picture"
Lab 7 draft due
10 Oct
Lab 8: Empirical efficiency
Lab 8
11 Oct
Algorithmic efficiency, Big-O notation
Hwk 3 out
[no class]
9 16 Oct
Comparing implementations, Linked stacks, Array List, Linked List revisited
Lab 7 due
Hwk 3 due
17 Oct
Lab 9: Interfaces and multiple implementations
Lab 9
18 Oct
Inheritance part 1: type inheritance, is-a vs has-a, Quadratic sorts
20 Oct
Comparing algorithms, Faster sorts: mergesort
10 23 Oct
Mergesort cont'd
Lab 9 due
24 Oct
Lab 10: Overloading operators
Lab 10
25 Oct
Faster sorts: quicksort
27 Oct
Queues, Linked Queue
11 30 Oct
Trees, Tree implementation
Lab 10 due
Hwk 3 revision due
31 Oct
Lab 11: Linked trees
Lab 11
1 Nov
Traversals
3 Nov
Binary search trees
12 6 Nov
BST analysis, Balance, rotation
Lab 11 due
7 Nov
Lab 12: BST implementation
Lab 12
8 Nov
BST remove
10 Nov
BST remove, cont'd
13 13 Nov
Maps/Dictionaries, Hash tables
Lab 12 draft due
[no class] 15 Nov
Heaps
17 Nov
Inheritance, is-a / has-a, Hierarchies
14 20 Nov
Model presentation and debrief
Project work day
Lab 12 due
21 Nov
Lab: DT/Alg implementation
[no class] [no class]
15 27 Nov
Presentation work day
28 Nov
Lab: DT/Alg implementation
29 Nov
Presentations
1 Dec
Presentations
Exam 2 out
Exam 2 7 Dec