teaching
CMSC 201
Data Structures (S2020)
overview | logistics | schedule | labs | presentations | resourcesTentative Schedule (changes frequently)
week | date | topics | readings | labs |
1 | 1/27/2020 | course introduction | syllabus; pg. 3–7; "Programming as Theory Building" by Naur | |
1/29/2020 | java programming model | 1.1 (pg. 8–38) | ||
2/1/2020 | benford's law; histograms; CLI | 1.1 (pg. 39–50); javac/java tutorial | lab 1 | |
2 | 2/3/2020 | data abstraction; interfaces | 1.2 (pg. 64–89) | |
2/5/2020 | implementations; assertions | 1.2 (pg. 90–109) | ||
2/7/2020 | fraction ADT; testing | JUnit: Getting Started | lab 2 | |
3 | 2/10/2020 | bags, queues, and stacks; infix & postfix | 1.3 (pg. 121–131) | |
2/12/2020 | array implementations | 1.3 (pg. 132–141) | ||
2/14/2020 | ring buffers; debugging | pg. 147--151 of Intro to Programming in Java by S&W | lab 3 | |
4 | 2/17/2020 | linked lists | 1.3 (pg. 142–157) | |
2/19/2020 | traversals | |||
2/21/2020 | tsp | lab 4 | ||
5 | 2/24/2020 | analysis | 1.4 (pg. 172–188) | |
2/26/2020 | empirical evaluation; log-log plots | 1.4 (pg. 189–205) | ||
2/28/2020 | EXAM 1 | |||
6 | 3/2/2020 | selection and insertion sort | 2.1 (pg. 243–257) | |
3/4/2020 | recursion; mergesort | 2.2 (pg. 270–282) | ||
3/6/2020 | word games | lab 5 | ||
7 | 3/9/2020 | |||
3/11/2020 | quicksort | 2.3 (pg. 288–302) | ||
3/13/2020 | lab revision | |||
8 | 3/16/2020 | priority queues | 2.4 (pg. 309–312) | |
3/18/2020 | binary heaps | 2.4 (pg. 313–327) | ||
3/20/2020 | convex hulls; multiway heaps | comparators: pg. 338–340 | lab 6&7 | |
9 | 3/23/2020 | SPRING BREAK | ||
3/25/2020 | ||||
3/27/2020 | ||||
10 | 3/30/2020 | symbol tables; binary search | 3.1 (pg. 361 –386) | |
4/1/2020 | EXAM 2 | |||
4/3/2020 | zipf's law; self-organizing symbol tables | lab 8&9 | ||
11 | 4/6/2020 | binary search trees I | 3.2 (pg. 396–406) | |
4/8/2020 | binary search trees II | 3.2 (pg. 407–414) | ||
4/10/2020 | ||||
12 | 4/13/2020 | balanced search trees | 3.3 (pg. 424–431) | |
4/15/2020 | red/black trees | 3.3 (pg. 432–447) | ||
4/17/2020 | hash functions | 3.4 (pg. 458–463) | lab 10 | |
13 | 4/20/2020 | hash tables & separate chaining | 3.4 (pg. 458–468) | |
4/22/2020 | linear probing | 3.4 (pg. 469–477) | ||
4/24/2020 | dictionary applications | 3.5 (pg. 486–505) | ||
14 | 4/27/2020 | ADVISING DAY | ||
4/29/2020 | undirected graphs | 4.1 (pg. 515–529) | ||
5/1/2020 | symbol graphs | 4.1 (pg. 548–556) | lab 11 | |
15 | 5/4/2020 | graph search (BFS/DFS) | 4.1 (pg. 530–547) | |
5/6/2020 | presentations | |||
5/8/2020 | java collections | oracle tutorial | ||
16 | 5/11/2020 | EXAM 3 | ||
5/13/2020 | COMPLETION WEEK | |||
5/15/2020 | ||||
17 | 5/18/2020 |