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 |