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