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 |