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 | Miscellaneous |
1 |
9/7 |
Introduction, motivation, abstraction |
|
HW#0 out |
|
2 |
9/9 |
Java refresher, OO |
Ch. 1 |
|
William's recitation |
3 |
9/14 |
Java refresher, OO II |
|
|
|
4 |
9/16 |
Lists I (arrays) |
Ch. 2 (p. 33-52) |
HW#1 out |
Lecture code |
5 |
9/21 |
Lists II (arrays, ordered arrays, binary search) |
Ch. 2 (p. 52-76) |
|
Lecture code |
6 |
9/23 |
Ordered lists |
|
|
Lecture code |
7 |
9/28 |
Ordered lists II, Big-Oh notation, Sorting I (bubble, selection, insertion sorts) |
Ch. 3 |
|
Lecture code |
8 |
9/30 |
Sorting II, Stacks, Queues |
Ch. 4 |
HW#1 due; HW#2 out |
Lecture code |
9 |
10/5 |
Stacks, Queues cont'd. |
|
|
Lecture code |
10 |
10/7 |
Stack, queue examples; Linked Lists I (basics) |
Ch. 5 |
|
|
11 |
10/12 |
Linked Lists II (operations, double-ended) |
|
|
Lecture code |
12 |
10/14 |
Linked Lists III (doubly-linked, comparison to arrays, iterators) |
|
HW#2 due; HW#3 out |
|
13 |
10/19 |
Recursion |
Ch. 6 |
|
|
* |
10/21 |
Midterm (covering #1-12) |
14 |
10/26 |
Midterm returned, Recursion, Sorting (mergesort) |
Ch. 7 (p. 333-359) |
|
|
15 |
10/28 |
Sorting (mergesort, radix sort) |
|
HW#3 due; HW#4 out |
|
* |
11/2 |
Election day holiday |
16 |
11/4 |
Sorting (quicksort) |
|
|
|
17 |
11/9 |
Sorting (quicksort cont'd); Trees I (basics) |
Ch. 8 (p. 365-415) |
|
|
18 |
11/11 |
Trees II (representation, examples) |
Ch. 8 (p. 415-425) |
HW#4 due; HW#5 out |
|
19 |
11/16 |
Hashing |
Ch. 11 |
|
|
20 |
11/18 |
Heaps, heapsort |
Ch. 12 |
|
|
21 |
11/23 |
Graphs I (intro, searches, spanning trees) |
Ch. 13 (p. 615-649) |
|
|
* |
11/25 |
Thanksgiving |
22 |
11/30 |
Graphs II (topological sort, connectivity) |
Ch. 13 (p. 649-667) |
HW#5 due; HW#6 out |
|
23 |
12/2 |
Graphs III (weighted graphs, MST) |
Ch. 14 (p. 669-687) |
|
|
24 |
12/7 |
Graphs IV (Dijkstra, Floyd shortest-path algorithms) |
Ch. 14 (p. 687-715) |
|
|
25 |
12/9 |
Putting it together, Java Collections, Final review |
Ch. 15 |
|
|
* |
12/13 |
No class |
HW#6 due |
|
* |
TBD |
Final exam review |
* |
12/21 |
Final exam, 9am-12pm |