teaching
CMSC 201
Data Structures (F2020)
overview | logistics | schedule | labs | presentations | resourcesTentative Schedule (changes frequently)
| week | date | topics | readings | labs |
| 1 | 8/31/2020 | course introduction | syllabus; pg. 3–7; "Programming as Theory Building" by Naur | |
| 9/02/2020 | benford's law; histograms; CLI | 1.1 (pg. 36–41); javac/java tutorial | lab 1 | |
| 9/04/2020 | java programming model; python/java tutor; jshell | 1.1 (pg. 8–35 & 42–50) | ||
| 2 | 9/07/2020 | data abstraction; interfaces | 1.2 (pg. 64–89) | |
| 9/09/2020 | fraction ADT; testing | JUnit: Getting Started | lab 2 | |
| 9/11/2020 | implementations; assertions | 1.2 (pg. 90–109) | ||
| 3 | 9/14/2020 | bags, queues, and stacks; infix & postfix | 1.3 (pg. 121–131) | |
| 9/16/2020 | infix & postfix expressions | lab 2.5 | ||
| 9/18/2020 | array implementations & generics | 1.3 (pg. 132–135) | ||
| 4 | 9/21/2020 | debugging & resizing | debugging; 1.3 (pg. 136–137) | |
| 9/23/2020 | ring buffers; array-based queues | pg. 147–151 of Intro to Programming in Java by S&W | lab 3 | |
| 9/25/2020 | iterators | 1.3 (pg. 138–140) | ||
| 5 | 9/28/2020 | linked lists | 1.3 (pg. 142–157) | |
| 9/30/2020 | TSP | lab 4 | ||
| 10/02/2020 | traversals | |||
| 6 | 10/05/2020 | analysis | 1.4 (pg. 172–188) | |
| 10/07/2020 | empirical evaluation; log-log plots | 1.4 (pg. 189–205) | lab 5 | |
| 10/09/2020 | EXAM 1 (1.1–1.3) | |||
| 7 | 10/12/2020 | selection and insertion sort | 2.1 (pg. 243–257) | |
| 10/14/2020 | sorting comparison / word games | lab 6 | ||
| 10/16/2020 | recursion; | 2.2 (pg. 270–282) | ||
| 8 | 10/19/2020 | mergesort | 2.2 (pg. 270–282) | |
| 10/21/2020 | revision day | |||
| 10/23/2020 | quicksort | 2.3 (pg. 288–301) | ||
| 9 | 10/26/2020 | symbol tables; binary search | 3.1 (pg. 378–386) | |
| 10/28/2020 | zipf's law & self-organizing symbol tables | 3.1 (pg. 361–377); 3.2 (pg. 407–414) | lab 7 | |
| 10/30/2020 | binary search trees I | 3.2 (pg. 396–405) | ||
| 10 | 11/02/2020 | balanced search trees | 3.3 (pg. 424–431) | |
| 11/04/2020 | BST traversal | 3.2 (pg. 406–414) | ||
| 11/06/2020 | red/black trees | 3.3 (pg. 432–447) | ||
| 11 | 11/09/2020 | hash tables | 3.4 (pg. 458–463) | |
| 11/11/2020 | hash functions & sets | 3.5 (pg. 486–505) | lab 8 | |
| 11/13/2020 | separate chaining & linear probing | 3.4 (pg. 464–477) | ||
| 12 | 11/16/2020 | heaps; priority queues | 2.4 (pg. 309–327) | |
| 11/18/2020 | d-heaps; convex hulls | comparators: pg. 338–340 | lab 9 | |
| 11/20/2020 | EXAM 2 (1.4–3.5) | |||
| 13 | 11/23/2020 | THANKSGIVING | ||
| 11/25/2020 | ||||
| 11/27/2020 | ||||
| 14 | 11/30/2020 | undirected graphs | 4.1 (pg. 518–534) | |
| 12/02/2020 | symbol graphs | 4.1 (pg. 548–556) | lab 10 | |
| 12/04/2020 | paths; dfs; bfs | 4.1 (pg. 535–547) | ||
| 15 | 12/07/2020 | |||
| 12/09/2020 | ADVISING DAY | |||
| 12/11/2020 | presentations | |||
| 16 | 12/14/2020 | |||
| 12/16/2020 | COMPLETION WEEK | |||
| 12/18/2020 | ||||