The following schedule is tentative and is subject to change as
the semester proceeds. After each class, I'll link each title
to a brief set notes for that class in PDF format. For the
homeworks, check out the submission instructions.
Solutions for a given homework may be browsed by clicking on the
corresponding homework's "due" link.
| # | Date | Topic | Reading
Due | HW |
| 1 |
9/2 |
Introduction, motivation, abstraction |
|
HW#0 out |
| 2 |
9/4 |
Java refresher, OO |
Ch. 1 |
|
| 3 |
9/9 |
Java refresher, OO II |
|
|
| 4 |
9/11 |
Lists I (arrays) |
Ch. 2 (p. 33-52) |
HW#1 out |
| 5 |
9/16 |
Lists II (ordered arrays, binary search) |
Ch. 2 (p. 52-76) |
|
| 6 |
9/18 |
Big-Oh notation, Sorting I (bubble, selection, insertion sorts) |
Ch. 3 |
|
| 7 |
9/23 |
Sorting I cont'd., Stacks |
Ch. 4 (p. 115-132, 149-173) |
|
| 8 |
9/25 |
Postfix processing, Queues |
Ch. 4 (p. 132-149) |
HW#1 due; HW#2 out |
| 9 |
9/30 |
Stacks, Linked Lists I (intro) |
Ch. 5 |
|
| 10 |
10/2 |
Linked Lists II (operations, doubly-linked, double-ended, comparison to arrays) |
|
|
| 11 |
10/7 |
Linked Lists III (iterators), Recursion I (introduction) |
Ch. 6 (p. 251-279) |
|
| 12 |
10/9 |
Recursion I, cont'd. |
|
HW#2 due; HW#3 out |
| 13 |
10/14 |
Recursion II (mergesort, rewriting algorithms) |
Ch. 6 (p. 279-312) |
|
| * |
10/16 |
Midterm (covering #1-12) |
| 14 |
10/21 |
Sorting II (radix sort, quicksort) |
Ch. 7 (p. 333-359) |
|
| 15 |
10/23 |
Midterms returned, Trees I (terminology) |
Ch. 8 (p. 365-388) |
|
| 16 |
10/28 |
Trees II (BST find, insert, traversal, deletion) |
Ch. 8 (p. 388-415) |
HW#3 due; HW#4 out |
| 17 |
10/30 |
Trees III (Huffman codes, expression trees) |
Ch. 8 (p. 415-425) |
|
| * |
11/4 |
Election day holiday |
| 18 |
11/6 |
Hashing I (intro, collision handling) |
Ch. 11 (p. 519-560) |
|
| 19 |
11/11 |
Hashing II (efficient hashing) |
Ch. 11 (p. 561-577) |
HW#4 due; HW#5 out |
| 20 |
11/13 |
Heaps, heapsort |
Ch. 12 |
|
| 21 |
11/18 |
Graphs I (intro, searches, spanning trees) |
Ch. 13 (p. 615-649) |
|
| 22 |
11/20 |
Graphs II (topological sort, connectivity) |
Ch. 13 (p. 649-667) |
|
| 23 |
11/25 |
Graphs III (weighted graphs, MST) |
Ch. 14 (p. 669-687) |
HW#5 due; HW#6 out |
| * |
11/27 |
Thanksgiving |
| 24 |
12/2 |
Graphs IV (Dijkstra, Floyd shortest-path algorithms) |
Ch. 14 (p. 687-715) |
|
| 25 |
12/4 |
Graphs V (Floyd, NP-complete problems), Putting it together, Java Collections |
Ch. 15 |
|
| * |
12/8 |
No class |
HW#6 due |
| * |
12/9 |
Final exam review, 2pm-4pm |
| * |
12/11 |
Final exam time 1, 11am-2pm |
| * |
12/16 |
Final exam time 2, 9am-12pm |