This schedule should be regarded as a plan that will certainly change during the course of the semester. Topics listed for dates in the future are what I expect to happen. As the semester progresses, I will update the topics so that dates in the past reflect what actually occurred.
The schedule shows dates when homeworks could be assigned and be due. The schedule is set up so that no homework is due on the same day that a project installment is due, and I expect to keep it that way. Depending on how things go, some of the homeworks shown may not actually be given.
Homework due dates are shown on Mondays. The homework is actually due at 12:00AM (i.e. right when Monday starts). The reason is so as not to provide motivation for you to stay up all night and either skip or sleep through the lab session Monday morning. Homeworks are numbered to correspond with the lab session at which they are assigned. On days when a project installment is due, there will not be a homework due or a new homework assigned. This is why some homework numbers are skipped.
Work on the course programming project will be due in several installments:
Class | Lab | Date | Day | Topic | HW Out | HW Due | Project | BlueJ | Horstmann | Budd |
L1 | Aug 29 | M | Eclipse | HW1 Out | ||||||
1 | Aug 30 | T | Administrative, Software Lifecycle | 13 | 1 | |||||
2 | Sep 1 | Th | Object-oriented design, UML | 2 | ||||||
Sep 5 | M | LABOR DAY -- NO CLASS | ||||||||
Sep 6 | T | NO CLASS | ||||||||
3 | Sep 8 | Th | Guidelines for class design | 3 | ||||||
L2 | Sep 12 | M | Version Control and GIT | HW2 out | HW1 due | |||||
4 | Sep 13 | T | Quality of Class Interface, Prgmg. by Contract | |||||||
Sep 13 | T | Add/drop deadline | ||||||||
5 | Sep 15 | Th | Preconditions, Postconditions, Invariants | |||||||
L3 | Sep 19 | M | Refactoring in Eclipse | HW3 out | HW2 due | |||||
6 | Sep 20 | T | Program Correctness | 5 | ||||||
7 | Sep 22 | Th | Model/View/Controller Architecture | 5 | ||||||
L4 | Sep 26 | M | Model/View/Controller Exercise | HW4 out | HW3 due | 8 | Sep 27 | T | Java Object Model | |
9 | Sep 29 | Th | Java Object Model | |||||||
L5 | Oct 3 | M | Project: Preliminary Explorations | HW5 out | HW4 due | PRJ out | ||||
10 | Oct 4 | T | Graph editor, Frameworks | 8 | ||||||
11 | Oct 6 | Th | Design patterns | 5,10 | ||||||
L6 | Oct 10 | M | Frameworks exercise | HW5 due | ||||||
12 | Oct 11 | T | Threads | 9 | ||||||
13 | Oct 13 | Th | Threads | |||||||
L7 | Oct 17 | M | Threads exercise | PRJ1 due | ||||||
14 | Oct 18 | T | Abstract Data Types | 2 | ||||||
15 | Oct 20 | Th | Running Time of Algorithms | |||||||
L8 | Oct 24 | M | Midterm Exam | |||||||
16 | Oct 25 | T | Running Time, "Big O" Notation | 3,4 | ||||||
17 | Oct 27 | Th | Vectors | |||||||
Oct 24 | F | Last day to withdraw | ||||||||
L9 | Oct 31 | M | Project Design Presentations | HW9 out | PRJ2 due | |||||
18 | Nov 1 | T | Sorting | 6 | ||||||
19 | Nov 3 | Th | Sorting, Heaps | 7,15 | ||||||
L10 | Nov 7 | M | Running time experiments | HW10 out | HW9 due | |||||
20 | Nov 8 | T | Lists | 8 | ||||||
21 | Nov 10 | Th | Stacks, Depth-first search | 10 | ||||||
L11 | Nov 14 | M | Performance Optimization | HW10 due | ||||||
22 | Nov 15 | T | Linked lists, Skip lists | 9.3 | ||||||
23 | Nov 17 | Th | Queues, Breadth-first search | 12 | ||||||
L12 | Nov 21 | M | Implementing Skip Lists | HW12 out | PRJ3 due | |||||
24 | Nov 22 | T | Dijkstra's algorithm | 20.3 | ||||||
Nov 24 | Th | THANKSGIVING -- NO CLASS | ||||||||
L13 | Nov 28 | M | Recursion exercise | HW12 due | ||||||
25 | Nov 29 | T | Maps,Hashing | 16,17 | ||||||
26 | Dec 1 | Th | Hashing, Trees | 13,14 | ||||||
L14 | Dec 5 | M | Project Demos | PRJ4 due | ||||||
27 | Dec 6 | T | Trees | 13 | ||||||
28 | Dec 8 | Th | Trees | 14 | ||||||
F | Dec 14 | W | FINAL EXAM 5:30PM-8:00PM |