Keith J. O'Hara

teaching

CMSC 201

Data Structures (S2022)

overview | logistics | schedule | labs | presentations | resources

Tentative 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