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 W R F
1 [no class]
A
13 Jan
Introductions, Policies
14 Jan
Lab 1: Review and mastery
Lab 1
B
15 Jan
What is a data structure?, Design and specification
2 [no class]
A
20 Jan
Object-oriented design, Classes and methods
Lab 1 due
21 Jan
Lab 2: Classes
Lab 2
B
22 Jan
.h files, Templates, UML
3
A
25 Jan
ADTs, Lists
B
27 Jan
Implementing an ADT
Lab 2 due
28 Jan
Lab 3: Function design, Unit testing
Lab 3
A
29 Jan
More implementation, append, remove
4
B
1 Feb
Pointers, "Smart" pointers
A
3 Feb

Lab 3 draft due
4 Feb
Lab 4: Pointers
Lab 4
B
5 Feb
Dynamic allocation
Hwk 1 out
5
A
8 Feb
Recursion, Linked nodes, Fibonacci
Hwk 1 due
B
10 Feb
Linked list
Lab 3 due
11 Feb
Lab 5: Linked node methods
Lab 5
A
12 Feb
Linked list implementation (continued)
Hwk 2 out
6
B
15 Feb
Tower of Hanoi, Recursive algorithms
Hwk 2 due
Hwk 1 revision due
A
17 Feb
The call stack
18 Feb
Lab 6: Reading code, make, gdb, Backtracking
Lab 6
B
19 Feb
Recursive backtracking, Other uses of stacks
7
A
22 Feb
Review of allocation, references, and memory models
Exam 1 out
Hwk 2 revision due
[no class] 25 Feb
Lab 7: Using STL stacks
Exam 1 due
Lab 7
B
26 Feb
Stacks and recursion, Array-based stack implementation, Exceptions
8 [no class]
A
3 Mar
Classic ADTs, The "big picture"
Lab 7 draft due
4 Mar
Lab 8: Empirical efficiency
Lab 8
B
5 Mar
Algorithmic efficiency, Big-O notation
Hwk 3 out
9
A
8 Mar
Comparing implementations, Linked stacks, Array List, Linked List revisited
Hwk 3 due
B
10 Mar
Inheritance, is-a / has-a, Hierarchies
Lab 7 due
11 Mar
Lab 9: Interfaces and multiple implementations
Lab 9
A
12 Mar
Quadratic sorts
10
B
15 Mar
Faster sorts, Comparing algorithms
A
17 Mar

Lab 9 due
18 Mar
Lab 10: Overloading operators
Lab 10
B
19 Mar
Queues, Linked Queue
11
A
22 Mar
Trees, Traversals
B
24 Mar
Tree implementation
Lab 10 due
25 Mar
Lab 11: Linked trees
Lab 11
A
26 Mar
12
B
29 Mar
Binary search trees
A
31 Mar
BST remove
Lab 11 due
[no class] [no class]
13
B
5 Apr
Maps/Dictionaries
A
7 Apr
BST analysis, Balance, rotation
8 Apr
Lab 12: BST implementation
Lab 12
B
9 Apr
Heaps
14
A
12 Apr
Hash tables
[no class] 15 Apr
Lab: DT/Alg implementation
Project work day
B
16 Apr
Model presentation and debrief
15
A
19 Apr
Presentation work day
B
21 Apr
Presentations
22 Apr
Lab: DT/Alg implementation
A
23 Apr
Presentations
16
B
26 Apr
Presentations
Exam 2 out
Exam 2 due 5 May