WEEK | TOPICS
|
READINGS |
1 1/8 1/11 |
Introduction to the course; levels of software design Astraction-based design OO Principles and the interface as a contract |
Sec. 2.1-2.8 |
2 1/15 1/18 |
Java review + packages; protection; static variables and methods; factory methods; exception handling |
Chapter 1, Clinger java review 1 |
3 1/22 1/25 |
The java type system I 30 minute Java Quiz; Software Testing |
Sec 7.1.1-7.1.3 Sec. 5.1 |
4 1/29 2/1 |
Software Testing (cont.) Software Design Principles: UML Review; Dates and Calendars |
Sec. 3.7; Wikipedia: "Unit Testing" Wikipedia: "Black Box Testing" Sec. 2.3-2.8, Sec. 3.1, 3.2, 3.4, 3.5 |
5 2/5 2/8 |
Designing reusable software I: enum types; Interfaces; polymorphism Class Design; Inheritance; Dynamic Dispatch |
Sec. 4.1-4.4, Sec. 7.1.4 Sec 6.1, 7.3 |
6 2/12 2/15 |
Recipe for Implementation of Immutable Classes Refactoring; Design patterns; Singleton Pattern |
Handout Clinger Java Review II, Sec. 10.5 |
7 2/19 2/22 |
Refactoring (cont.) Reusable software II: Aggregates and the iterator design pattern; Generic types; java Collections framework |
Sec. 5.1, 5.2 Sec. 7.7, 8.3; Java Tutorial: Collections |
8 2/26 2/29 |
Java Collections framework (cont.); review for midterm MIDTERM EXAM |
|
9 3/11 3/14 |
Other language features: Object class; Reflection Deep and Shallow Copy |
Sec 7.3, 7.6 Sec. 7.4 |
10 3/18 3/21 |
Begin Java GUI programming: Listeners, Timers The Swing class hierarchy: The Composite Pattern |
Sec. 4.5-4.8 Sec. 5.5, 6.6 |
11 3/25 3/28 |
Drawing and Animation in Swing Layout Managers; The Strategy Pattern |
Sec. 4.9-4.10, 6.7 Sec. 5.2-5.4 |
12 4/1 4/4 |
Other Design Patterns The Visitor Pattern |
Sec. 5.3, 5.6-5.8, 6.2-6.4 Sec. 10.6; Handout |
13 4/8 4/11 |
Invariants and assertions Proving programs correct |
Sec. 3.6; Handout |
14 4/15 |
Last class: review for final exam |
Approximately half of the final grade will be determined by assignments, and the other half by the midterm and final exams. In order to get a passing grade in the course, you must get a passing grade on both the assignments and the two exams. (For example, an A on the exams and an F on the assignments will result in an F in the course, and vice versa.) There will also be one or more quizzes, which may count as either assignments or exams at the discretion of the instructor. Some assignments may require students to work in teams, but most assignments and all quizzes and exams will be individual in nature.
Homework turned in late may be subject to a deduction from your
grade; homework turned in very late may result in no credit.
Habitual absence from class meetings may result in a lower final grade,
and will probably affect the treatment of any late homework.
Academic (Dis)Honesty: The individual assignments must be each
student's
own
work. Any group projects assigned must be the work of the
students in
the group. Plagiarism or copying, or giving your program to other
student, will result in official
University
disciplinary review.
Directories containing your java source files MUST be protected from
unauthorized access. The unix command: chmod go-rw <file
or directory name> restricts read and write permission to the owner
for the file or directory.