Draft CS/SWE 332 Course Schedule

Syllabus Home page

   OO Software Design and Implementation
Fall 2017

 Week  Date Topic Readings and Presentations Quiz Guides (Mondays)
Assignments (Wednesdays)
In-Class Exercises ShowMe Link
1 Monday, Aug-28
Wednesday, Aug-30
Class Overview
Contracts; Liskov 1
332 Overview Slides
Contract Slides
Assignment 0 Due
In-Class 1
In-Class 2
2 Monday, Sep-4
Wednesday, Sep-6
No Class - Labor Day
Procedural Abstraction, Exceptions
Liskov 2-4, Java Slides, Bloch 9
Assignment 1 Due
In-Class 3
3 Monday, Sep-11
Wednesday, Sep-13
Basic JUnit
Contract Model for Testing
Liskov 4, Basic JUnit
Advanced JUnit
Guide 1
Assignment 2 Due
In-Class 4
In-Class 5
Monday, Sep-18
Wednesday, Sep-20
Basic Data Abstraction
Data Abstraction: Mutability
Liskov 5.1-5.4 IntSet.java, Poly.java
Liskov 5.1-5.4, Mutability Slides
Guide 2
Assignment 3 Due
In-Class 6
In-Class 7
Basic Immutability
5 Monday, Sep-25
Wednesday, Sep-27
Data Abstraction: AF/RI Invariants
Method Verification
Liskov 5.5-5.10, AF/RI Overview
Method Verification  
Guide 3
Assignment 4 Due
In-Class 8
In-Class 9
Method Verification
6 Monday, Oct-2
Wednesday, Oct-4
More Method Verification
Yet More Method Verification
Guide 4
Assignment 5 Due
In-Class 10
In-Class 11
Verification Example
7 Tuesday, Oct-10
Wednesday, Oct-11
Iteration Abstraction
Recap 1: Putting concepts together.
Liskov 6
Guide 5
Assignment 6 Due
In-Class 12
In-Class 13
Broken Iterator
8 Monday, Oct-16
Wednesday, Oct-18
Type Abstraction
More Type Abstraction
Liskov 7
More Liskov 7
Guide 6
Assignment 7 Due
In-Class 14
In-Class 15
Method Rule
9 Monday, Oct-23
Wednesday, Oct-25
Polymorphic Abstraction
More Polymorphic Abstraction
Liskov 8
More Liskov 8
Guide 7
Assignment 8 Due
In-Class 16
In-Class 17 In-Class 17B
Polymorphic Abstraction
10 Monday, Oct-30
Wednesday, Nov-1
Object Class Methods
More Object Class Methods
Bloch Chapter 3
More Bloch 3
Guide 8
Assignment 9 Due
In-Class 18
In-Class 19
Equals Contract
Broken Clone
11 Monday, Nov-6
Wednesday, Nov-8
Classes and Interfaces
More Classes and Interfaces
Bloch Chapter 4
More Bloch 4
Guide 9
Assignment 10 Due
In-Class 20
In-Class 21
Composition vs. Inheritance
12 Monday, Nov-13
Wednesday, Nov-15
Java Generics
More Java Generics
Bloch Chapter 5
More Bloch 5
Guide 10
Assignment 11 Due
In-Class 22
In-Class 23
Dynamic Dispatching
Generic vs. Not
13 Monday, Nov-20
Wednesday, Nov-22
Recap 2: Putting concepts together
No Class - Thanksgiving Break
Guide 11
In-Class 24
14 Monday, Nov-27
Wednesday, Nov-29
Enums and Annotations
Agile Methods
Bloch Chapter 6
The Agile Heresy
Guide 12
Assignment 12 Due
In-Class 25
In-Class 26
15 Monday, Dec-4
Wednesday, Dec-6
Usable Security
Course Wrap Up
Usable Security
Course Review Slides
Guide 13
Assignment 13 Due
In-Class 27
16 Monday, Dec-18
Final Exam        

Schedule Notes

The schedule is approximate. It is certain that changes will happen over the course of the semester.

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.