Meeting 
Date 
Topic 
Reading 
Quiz Guide Assignment Due 
InClass Exercise 
ShowMe Link 
1 
Tuesday Aug29 
Class Overview 
619 Review Slides
Basic JUnit(slides 822)


InClass 0A
InClass 0B


2 
Tuesday Sep5 
Procedural Abstraction; Exceptions 
Liskov 1
Liskov 23
Liskov 4
Bloch 9

Assignment 1 Due
Guide 1

InClass 1A
InClass 1B


3 
Tuesday Sep10 
Data Abstraction 
Liskov 5.15.4,
LiskovSet.java,
Poly.java

Assignment 2 Due
Guide 2

InClass 2A
InClass 2B

Basic Immutability

4 
Tuesday Sep19 
Reasoning About Data Abstraction 
Liskov 5.55.10

Assignment 3 Due
Guide 3

InClass 3

Method Verification
Verification Example

5 
Tuesday Sept26 
Iteration Abstraction; Method Guidelines

Liskov 6
Bloch 7

Assignment 4 Due
Guide 4

InClass 4

Broken Iterator

6 
Tuesday Oct3 
Type Abstraction 
Liskov 7

Assignment 5 Due
Guide 5

InClass 5A
InClass 5B
InClass 5C

Method Rule


Tuesday Oct10 

No Class  Columbus Day 



7 
Tuesday Oct17 
Polymorphic Abstraction 
Liskov 8

Assignment 6 Due
Guide 6

InClass 6

Polymorphic Abstraction

8 
Tuesday Oct24 
Generics, Enums, Annotations 
Bloch 5
Bloch 6

Assignment 7 Due
Guide 7

InClass 7

Generic vs. Not

9 
Tuesday Oct31 
Specification Checking; Temporal Logic 
KSU Slides:
Foundations
Temporal Logic

Assignment 8 Due
Guide 8

InClass 8


10 
Tuesday Nov7 
Common Java Contracts 
Bloch 3

Assignment 9 Due
Guide 9

InClass 9A
InClass 9B

Equals Contract
Broken Clone

11 
Tuesday Nov14 
Classes and Inheritance

Bloch 4

Assignment 10 Due
Guide 10

InClass 10A
InClass 10B

Composition vs. Inheritance
Dynamic Dispatching

12 
Tuesday Nov21 
JUnit Theories
Understanding the Agile Heresy

Advanced JUnit(slides 2325)
Agile Development

Assignment 11 Due
Guide 11

InClass 11


13 
Tuesday Nov28 
Enums and Annotations,
General Programming

Bloch 6,
Bloch 8

Assignment 12 Due
Guide 12

InClass 12


14 
Tuesday Dec5 
Course Wrap Up 
619 Review Slides

Assignment 13 Due
Guide 13



15 
Tuesday Dec19 4:307:00 
Final Exam 



