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 23 Aug
Introductions, Policies
24 Aug
Lab 1: Review and mastery
Lab 1
A
25 Aug
What is a data structure?, Design and specification
B
27 Aug
Object-oriented design, Classes and methods
2 30 Aug
.h files, Templates, UML
Lab 1 due
31 Aug
Lab 2: Classes
Lab 2
A
1 Sep
B
3 Sep
ADTs
3 [no class] 7 Sep
Lab 3: Function design, Unit testing
Lab 3
B
8 Sep
Lists, Implementing an ADT, More implementation
Lab 2 due
A
10 Sep
append, remove, Pointers, "Smart" pointers
4
B
13 Sep

Lab 3 draft due
14 Sep
Lab 4: Pointers
Lab 4
A
15 Sep
Dynamic allocation
Hwk 1 out
17 Sep
Recursion, Linked nodes, Fibonacci
Hwk 1 due
5 20 Sep
Linked list
Lab 3 due
21 Sep
Lab 5: Linked node methods
Lab 5
22 Sep
Linked list implementation (continued)
24 Sep
Recursive algorithms, Tower of Hanoi
Hwk 2 out
6 27 Sep
Binary search, The call stack
Hwk 2 due
Hwk 1 revision due
28 Sep
Lab 6: Reading code, make, gdb, Backtracking
Lab 6
29 Sep
Recursive backtracking, Other uses of stacks
1 Oct
Review of allocation, references, and memory models
Exam 1 out
Hwk 2 revision due
7 4 Oct

Exam 1
5 Oct
Lab 7: Using STL stacks
Lab 7
6 Oct
Stacks and recursion, Array-based stack implementation, Exceptions
[no class]
8 11 Oct
Classic ADTs, The "big picture"
Lab 7 draft due
12 Oct
Lab 8: Empirical efficiency
Lab 8
A
13 Oct
Algorithmic efficiency, Big-O notation
15 Oct
Comparing implementations, Linked stacks, Array List, Linked List revisited
Hwk 3 out
9 18 Oct
Inheritance, is-a / has-a, Hierarchies
Lab 7 due
19 Oct
Lab 9: Interfaces and multiple implementations
Lab 9
20 Oct
Quadratic sorts
Hwk 3 due
22 Oct
Faster sorts, Comparing algorithms
10
B
25 Oct

Lab 9 due
26 Oct
Lab 10: Overloading operators
Lab 10
A
27 Oct
Queues, Linked Queue
B
29 Oct
Trees, Traversals
11
A
1 Nov
Tree implementation
Lab 10 due
2 Nov
Lab 11: Linked trees
Lab 11
B
3 Nov
A
5 Nov
Binary search trees
12
B
8 Nov
BST remove
Lab 11 due
9 Nov
Lab 12: BST implementation
Lab 12
A
10 Nov
Maps/Dictionaries
12 Nov
BST analysis, Balance, rotation
13
B
15 Nov
Heaps
Lab 12 due
[no class]
A
17 Nov
Hash tables
B
19 Nov
Model presentation and debrief
14
A
22 Nov
Presentation work day
Project work day
23 Nov
Lab: DT/Alg implementation
[no class] [no class]
15
A
29 Nov
Presentations
30 Nov
Lab: DT/Alg implementation
B
1 Dec
Presentations
A
3 Dec
Presentations
Exam 2 out
Exam 2 9 Dec