Keith J. O'Hara

teaching

CMSC 201

Data Structures (S2017)

overview | logistics | schedule | labs | presentations | resources

Tentative Schedule (changes frequently)

week date topics readings labs
1 1/30/2017 course introduction syllabus; pg. 3 -- 7
2/1/2017 java programming model 1.1 (pg. 8 -- 38)
2/3/2017 stats; CLI 1.1 (pg. 39 -- 50); javac/java tutorial lab 1
2 2/6/2017 data abstraction; interfaces 1.2 (pg. 64 -- 95)
2/8/2017 implementations 1.2 (pg. 96 -- 109)
2/10/2017 fraction ADT; testing lab 2
3 2/13/2017 bags, queues, and stacks 1.3 (pg. 121 -- 131)
2/15/2017 array implementations 1.3 (pg. 132 -- 141)
2/17/2017 ring buffers; array-based queues lab 3
4 2/20/2017 linked lists 1.3 (pg. 142 -- 157)
2/22/2017 linked stacks & queues
2/24/2017 tsp; debugging debugging lab 4
5 2/27/2017 analysis 1.4 (pg. 172 -- 188)
3/1/2017 1.4 (pg. 189 -- 205)
3/3/2017 empirical evaluation lab 5
6 3/6/2017 EXAM 1
3/8/2017 sorting 2.1 (pg. 243 -- 262)
3/10/2017 word games; recursion lab 6
7 3/13/2017 mergesort 2.2 (pg. 270 -- 282)
3/15/2017
3/17/2017 no class
8 3/20/2017 SPRING BREAK
3/22/2017
3/24/2017
9 3/27/2017 quicksort 2.3 (pg. 288 -- 302)
3/29/2017 heaps; priority queues 2.4 (pg. 309 -- 327)
3/31/2017 convex hulls; multiway heaps comparators: pg. 338--340 lab 7
10 4/3/2017 symbol tables 3.1 (pg. 361 --386)
4/5/2017 binary search trees 3.2 (pg. 396 -- 414)
4/7/2017 zipf's law; self-organizing symbol tables lab 8
11 4/10/2017 huffman codes
4/12/2017 java collections oracle tutorial
4/14/2017 EXAM 2
12 4/17/2017 balanced search trees 3.3 (pg. 424--431)
4/19/2017
4/21/2017 lab 9
13 4/24/2017 red/black trees 3.3 (pg. 432 -- 447)
4/26/2017 hash tables 3.4
4/28/2017 evaluating hash functions lab 10
14 5/01/2017 ADVISING DAY
5/3/2017 sets 3.5 (pg. 486 -- 501)
5/5/2017 symbol graphs 4.1 (pg. 518--521; 548 -- 556) lab 11
15 5/8/2017 undirected graphs 4.1 (pg. 515 -- 533)
5/10/2017 graph search (BFS/DFS) 4.1 (pg. 534 -- 547)
5/12/2017
16 5/15/2017 presentations
5/17/2017
5/19/2017 EXAM 3
17 5/22/2017