| Lecture No. |
Date |
Topic |
Comments |
| 1 | 1/31 | Introduction, Administration, C++ revision: pointers, dynamic memory allocation | notes |
| 2 | 2/2 | Dynamic Array I: A motivating problem | |
| 3 | 2/7 | Dynamic Array II: Designing a data structure | Code (try to see why the usearray_bad.cpp program does not work) |
| 4 | 2/9 | Dynamic Array III: Overloading [] and <<, copy constructor and destructor | Code |
| 5 | 2/14 | Dynamic Array IV: 2-Dimensional arrays | Code |
| 6 | 2/16 | Stacks and Queues I: Definitions and ADT view | Code |
| 7 | 2/28 | Stacks II: Implementation using an array, performance issues | Code |
| 8 | 3/1 | Linked Lists I: Overview, constructing lists | Code |
| 9 | 3/6 | Linked Lists II: More operations on lists | Code |
| 10 | 3/8 | Linked Lists III: Other kinds of lists, doubly-linked lists, circular lists | Code |
| 11 | 3/13 | Revision | |
| 12 | 3/15 | Midterm I (Classes 1-10) | |
| 13 | 3/20 | Sorting I: Bubblesort, Selection sort | Code |
| 14 | 3/22 | Sorting II: Insertion sort, Mergesort, algorithm analysis and engineering | Code |
| 15 | 3/27 | Sorting III: Mergesort analysis, recursive algorithms, binary search | |
| 16 | 3/29 | Sorting IV: Quicksort | Code |
| 17 | 4/3 | Sorting V: Quicksort analysis, review | |
| 18 | 4/5 | Binary Trees I: Heapsort, priority queues | Code |
| 19 | 4/10 | Binary Trees II: Definitions, tree traversals | |
| 20 | 4/12 | Binary Trees III: Balanced search trees | |
| 21 | 4/17 | Binary Trees IV: More BSTs | |
| 22 | 4/19 | Graphs I: Definition and applications | |
| 23 | 4/24 | Graphs II: Implementation(s), Graph traversal | |
| 24 | 4/26 | Revision | |
| 25 | 5/1 | Midterm II ( Noncumulative, Classes 13-23) | |
| 26 | 5/3 | Templates, STL classes | Code |
| 27 | 5/8 | More STL classes, hashing | |
| 28 | 5/10 | Final Revision | |
| 29 | 5/15 | Final (Cumulative) | |