Syllabus  Home page 
Week  Date  Topic  Readings and Presentations  Quiz Guides (Mondays) Assignments (Wednesdays) 
InClass Exercises  ShowMe Link 

1  Monday, Aug28 Wednesday, Aug30 
Class Overview Contracts; Liskov 1 
332 Overview Slides
Contract Slides 
Assignment 0 Due 
InClass 1
InClass 2 

2  Monday, Sep4 Wednesday, Sep6 
No Class  Labor Day Procedural Abstraction, Exceptions 
Liskov 24, Java Slides, Bloch 9 
Assignment 1 Due 
InClass 3 

3  Monday, Sep11 Wednesday, Sep13 
Basic JUnit
Contract Model for Testing 
Liskov 4,
Basic JUnit
Advanced JUnit 
Guide 1
Assignment 2 Due 
InClass 4
InClass 5 

4  Monday, Sep18 Wednesday, Sep20 
Basic Data Abstraction
Data Abstraction: Mutability 
Liskov 5.15.4
IntSet.java,
Poly.java
Liskov 5.15.4, Mutability Slides 
Guide 2
Assignment 3 Due 
InClass 6
InClass 7 
Basic Immutability 
5  Monday, Sep25 Wednesday, Sep27 
Data Abstraction: AF/RI Invariants
Method Verification 
Liskov 5.55.10,
AF/RI Overview
Method Verification 
Guide 3
Assignment 4 Due 
InClass 8
InClass 9 
Method Verification 
6  Monday, Oct2 Wednesday, Oct4 
More Method Verification
Yet More Method Verification 

Guide 4
Assignment 5 Due 
InClass 10
InClass 11 
Verification Example

7  Tuesday, Oct10 Wednesday, Oct11 
Iteration Abstraction
Recap 1: Putting concepts together. 
Liskov 6

Guide 5
Assignment 6 Due 
InClass 12
InClass 13 
Broken Iterator

8  Monday, Oct16 Wednesday, Oct18 
Type Abstraction
More Type Abstraction 
Liskov 7
More Liskov 7 
Guide 6
Assignment 7 Due 
InClass 14
InClass 15 
Method Rule 
9  Monday, Oct23 Wednesday, Oct25 
Polymorphic Abstraction
More Polymorphic Abstraction 
Liskov 8
More Liskov 8 
Guide 7
Assignment 8 Due 
InClass 16
InClass 17 InClass 17B 
Polymorphic Abstraction

10  Monday, Oct30 Wednesday, Nov1 
Object Class Methods More Object Class Methods 
Bloch Chapter 3
More Bloch 3 
Guide 8
Assignment 9 Due 
InClass 18
InClass 19 
Equals Contract
Broken Clone 
11  Monday, Nov6 Wednesday, Nov8 
Classes and Interfaces More Classes and Interfaces 
Bloch Chapter 4
More Bloch 4 
Guide 9
Assignment 10 Due 
InClass 20
InClass 21 
Composition vs. Inheritance 
12  Monday, Nov13 Wednesday, Nov15 
Java Generics
More Java Generics 
Bloch Chapter 5
More Bloch 5 
Guide 10
Assignment 11 Due 
InClass 22
InClass 23 
Dynamic Dispatching
Generic vs. Not 
13  Monday, Nov20 Wednesday, Nov22 
Recap 2: Putting concepts together
No Class  Thanksgiving Break 

Guide 11

InClass 24


14  Monday, Nov27 Wednesday, Nov29 
Enums and Annotations
Agile Methods 
Bloch Chapter 6
The Agile Heresy 
Guide 12
Assignment 12 Due 
InClass 25
InClass 26 

15  Monday, Dec4 Wednesday, Dec6 
Usable Security
Course Wrap Up 
Usable Security
Course Review Slides 
Guide 13
Assignment 13 Due 
InClass 27


16 
Monday, Dec18 7:30AM10:15AM 
Final Exam 
Lecture slides are prone to modification up to their presentation.
Except for the first class, I expect students to have completed the reading prior to class on the date listed. Quizzes may occasionally take advantage of this expectation.
Homework assignments are due on the date listed. Quizzes are posted, with solutions, on Blackboard following the class in which the quiz is given.