Keith J. O'Hara

teaching

CMSC 201

Data Structures (F2018)

overview | logistics | schedule | labs | presentations | resources

Tentative Schedule (changes frequently)

week date topics readings labs
1 9/3/2018 course introduction syllabus; pg. 3 -- 7; "Programming as Theory Building" by Naur
9/5/2018 java programming model 1.1 (pg. 8 -- 38)
9/7/2018 benford's law; histograms; CLI 1.1 (pg. 39 -- 50); javac/java tutorial lab 1
2 9/10/2018 canceled
9/12/2018 data abstraction; interfaces 1.2 (pg. 64 -- 95)
9/14/2018 fractions; testing 1.2 (pg. 102--103) lab 2
3 9/17/2018 implementations; assertions 1.2 (pg. 96 -- 109)
9/19/2018 bags, queues, and stacks; infix & postfix 1.3 (pg. 121 -- 131)
9/21/2018 expressions lab 2.5
4 9/24/2018 array implementations 1.3 (pg. 132 -- 141)
9/26/2018 resizing; iterators
9/28/2018 ring buffers; array-based queues pg. 147--151 of Intro to Programming in Java by S&W lab 3
5 10/1/2018 linked lists 1.3 (pg. 142 -- 157)
10/3/2018 traverals
10/5/2018 TSP; debugging debugging lab 4
6 10/8/2018 FALL BREAK
10/10/2018 analysis 1.4 (pg. 172 -- 188)
10/12/2018 empirical evaluation; log-log plots 1.4 (pg. 189 -- 205) lab 4.5
7 10/15/2018 EXAM 1 (1.1--1.3)
10/17/2018 selection and insertion sort 2.1 (pg. 243 -- 257)
10/19/2018 sorting comparison lab 5 or lab 5b
8 10/22/2018 recursion; mergesort 2.2 (pg. 270 -- 282)
10/24/2018 quicksort 2.3 (pg. 288 -- 301)
10/26/2018 zipf's law 3.1 (pg. 361--377) lab 6
9 10/29/2018 symbol tables; binary search 3.1 (pg. 378 -- 386)
10/31/2018 binary search trees I 3.2 (pg. 396 -- 406)
11/2/2018 self-organizing symbol tables 3.2 (pg. 407 -- 414) lab 6.5
10 11/5/2018 balanced search trees 3.3 (pg. 424--431)
11/7/2018 red/black trees 3.3 (pg. 432 -- 447)
11/9/2018 tree traversals lab 7
11 11/12/2018 EXAM 2 (1.4--3.3)
11/14/2018 heaps; priority queues 2.4 (pg. 309 -- 327)
11/16/2018 d-heaps; convex hulls comparators: pg. 338--340 lab 8
12 11/19/2018 java collections; huffman codes oracle's tutorial
11/21/2018
11/23/2018 THANKSGIVING
13 11/26/2018 hash tables 3.4 (pg. 458 -- 463)
11/28/2018 separate chaining & linear probing 3.4 (pg. 464 -- 477)
11/30/2018 sets 3.5 (pg. 486 -- 505) lab 9
14 12/3/2018 undirected graphs 4.1 (pg. 518--534)
12/5/2018 ADVISING DAY
12/7/2018 symbol graphs 4.1 (pg. 548 -- 556) lab 10
15 12/10/2018 paths; dfs; bfs 4.1 (pg. 535--547)
12/12/2018
12/14/2018 presentations
16 12/17/2018 EXAM 3
12/19/2018 COMPLETION WEEK
12/21/2018