teaching
CMSC 201
Data Structures (F2018)
overview | logistics | schedule | labs | presentations | resourcesTentative 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 |