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

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

2  Monday, Sep3 Wednesday, Sep5 
No Class  Labor Day Procedural Abstraction, Exceptions 
Liskov 24, Java Slides, Bloch 10 
Assignment 1 Due 
InClass 3 

3  Monday, Sep10 Wednesday, Sep12 
Basic JUnit
Contract Model for Testing 
Liskov 4,
Basic JUnit
Advanced JUnit 
Guide 1
Assignment 2 Due 
InClass 4
InClass 5 
JUnit Theories 
4  Monday, Sep17 Wednesday, Sep19 
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, Sep24 Wednesday, Sep26 
Abstraction Functions/RepInvariants
More AF/RI 
Liskov 5.55.10,
AF/RI Overview

Guide 3
Assignment 4 Due 
InClass 8
InClass 9 
Map Poly 
6  Monday, Oct1 Wednesday, Oct3 
Method Verification
More Method Verification 
Method Verification

Guide 4
Assignment 5 Due 
InClass 10
InClass 11 
Method Verification
Verification Example 
7  Tuesday, Oct9 Wednesday, Oct10 
Iteration Abstraction
Recap 1: Putting concepts together. 
Liskov 6

Guide 5
Assignment 6 Due 
InClass 12
InClass 13 
Broken Iterator

8  Monday, Oct15 Wednesday, Oct17 
Type Abstraction
More Type Abstraction 
Liskov 7
More Liskov 7 
Guide 6
Assignment 7 Due 
InClass 14
InClass 15 
Method Rule 
9  Monday, Oct22 Wednesday, Oct24 
Polymorphism
Lambdas and Streams 
Liskov 8
Bloch Chapter 7 
Guide 7
Assignment 8 Due 
InClass 16
InClass 17 
Polymorphic Abstraction

10  Monday, Oct29 Wednesday, Oct31 
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 Broken hashCode 
11  Monday, Nov5 Wednesday, Nov7 
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, Nov12 Wednesday, Nov14 
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, Nov19 Wednesday, Nov21 
Recap 2: Putting concepts together
No Class  Thanksgiving Break 

Guide 11

InClass 24


14  Monday, Nov26 Wednesday, Nov28 
Enums and Annotations
Object Creation 
Bloch Chapter 6
Bloch Chapter 2 
Guide 12
Assignment 12 Due 
InClass 25
InClass 26 
Operation Enum Example 
15  Monday, Dec3 Wednesday, Dec5 
Usable Security
Course Wrap Up 
Usable Security
Course Review Slides 
Guide 13
Assignment 13 Due 
InClass 27


16 
Monday, Dec17 
Final Exam  7:30AM!!!!! 
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.