Topics
| Topics | textbook |
Web links | ||
|---|---|---|---|---|
| 13 Jan | W/1 | Introductions, Policies | ||
| 14 Jan | R/1 | Lab 1: Review and mastery | ||
| 15 Jan | F/1 | What is a data structure?, Design and specification | 1.1 | |
| 20 Jan | W/2 | Object-oriented design, Classes and methods | 2.1-2.1.1.1 | |
| 21 Jan | R/2 | Lab 2: Classes | ||
| 22 Jan | F/2 | .h files, Templates, UML | 2.2 | |
| 25 Jan | M/3 | ADTs, Lists | 1.2, 3.1 | |
| 27 Jan | W/3 | Implementing an ADT | 3.2-3.2.1 | |
| 28 Jan | R/3 | Lab 3: Function design, Unit testing | ||
| 29 Jan | F/3 | More implementation, append, remove | 3.2.2 | |
| 01 Feb | M/4 | Pointers, "Smart" pointers | Module 4 up through "Heap memory" | |
| 03 Feb | W/4 | |||
| 04 Feb | R/4 | Lab 4: Pointers | ||
| 05 Feb | F/4 | Dynamic allocation | "Unique pointers" and "Dynamically allocated arrays" | |
| 08 Feb | M/5 | Recursion, Linked nodes, Fibonacci | 7.1-7.2 | |
| 10 Feb | W/5 | Linked list | 10.1 | |
| 11 Feb | R/5 | Lab 5: Linked node methods | ||
| 12 Feb | F/5 | Linked list implementation (continued) | ||
| 15 Feb | M/6 | Tower of Hanoi, Recursive algorithms | 7.7 | |
| 17 Feb | W/6 | The call stack | ||
| 18 Feb | R/6 | Lab 6: Reading code, make, gdb, Backtracking | ||
| 19 Feb | F/6 | Recursive backtracking, Other uses of stacks | ||
| 22 Feb | M/7 | Review of allocation, references, and memory models | ||
| 25 Feb | R/7 | Lab 7: Using STL stacks | ||
| 26 Feb | F/7 | Stacks and recursion, Array-based stack implementation, Exceptions | 6.1 | |
| 03 Mar | W/8 | Classic ADTs, The "big picture" | ||
| 04 Mar | R/8 | Lab 8: Empirical efficiency | ||
| 05 Mar | F/8 | Algorithmic efficiency, Big-O notation | 4.2, 4.5 | |
| 08 Mar | M/9 | Comparing implementations, Linked stacks, Array List, Linked List revisited | 6.2, 10.2 | |
| 10 Mar | W/9 | Inheritance, is-a / has-a, Hierarchies | 2.1 | |
| 11 Mar | R/9 | Lab 9: Interfaces and multiple implementations | ||
| 12 Mar | F/9 | Quadratic sorts | Ch. 8 | |
| 15 Mar | M/10 | Faster sorts, Comparing algorithms | ||
| 17 Mar | W/10 | |||
| 18 Mar | R/10 | Lab 10: Overloading operators | ||
| 19 Mar | F/10 | Queues, Linked Queue | 9.1.1, 9.2 | |
| 22 Mar | M/11 | Trees, Traversals | 11.1-11.3 | |
| 24 Mar | W/11 | Tree implementation | ||
| 25 Mar | R/11 | Lab 11: Linked trees | 16.1-16.2 | |
| 26 Mar | F/11 | |||
| 29 Mar | M/12 | Binary search trees | 11.4-11.4.2 | |
| 31 Mar | W/12 | BST remove | 11.4.3 | |
| 05 Apr | M/13 | Maps/Dictionaries | ||
| 07 Apr | W/13 | BST analysis, Balance, rotation | ||
| 08 Apr | R/13 | Lab 12: BST implementation | ||
| 09 Apr | F/13 | Heaps | ||
| 12 Apr | M/14 | Hash tables | ||
| 15 Apr | R/14 | Lab: DT/Alg implementation | ||
| 16 Apr | F/14 | Model presentation and debrief | ||
| 19 Apr | M/15 | Presentation work day | ||
| 21 Apr | W/15 | Presentations | ||
| 22 Apr | R/15 | Lab: DT/Alg implementation | ||
| 23 Apr | F/15 | Presentations | ||
| 26 Apr | M/16 | Presentations |