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) | |