Draft CS/SWE 332 Course Schedule

Syllabus Home page

   OO Software Design and Implementation
Fall 2018

 Week  Date Topic Readings and Presentations Quiz Guides (Mondays)
Assignments (Wednesdays)
In-Class Exercises ShowMe Link
1 Monday, Aug-27
Wednesday, Aug-29
Class Overview
Contracts; Liskov 1
332 Overview Slides
Contract Slides
Assignment 0 Due
In-Class 1
In-Class 2
2 Monday, Sep-3
Wednesday, Sep-5
No Class - Labor Day
Procedural Abstraction, Exceptions
Liskov 2-4, Java Slides, Bloch 10
Assignment 1 Due
In-Class 3
3 Monday, Sep-10
Wednesday, Sep-12
Basic JUnit
Contract Model for Testing
Liskov 4, Basic JUnit
Advanced JUnit
Guide 1
Assignment 2 Due
In-Class 4
In-Class 5
JUnit Theories
Monday, Sep-17
Wednesday, Sep-19
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-24
Wednesday, Sep-26
Abstraction Functions/Rep-Invariants
More AF/RI
Liskov 5.5-5.10, AF/RI Overview
Guide 3
Assignment 4 Due
In-Class 8
In-Class 9
Map Poly
6 Monday, Oct-1
Wednesday, Oct-3
Method Verification
More Method Verification
Method Verification
Guide 4
Assignment 5 Due
In-Class 10
In-Class 11
Method Verification
Verification Example
7 Tuesday, Oct-9
Wednesday, Oct-10
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-15
Wednesday, Oct-17
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-22
Wednesday, Oct-24
Lambdas and Streams
Liskov 8
Bloch Chapter 7
Guide 7
Assignment 8 Due
In-Class 16
In-Class 17
Polymorphic Abstraction
10 Monday, Oct-29
Wednesday, Oct-31
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
Broken hashCode
11 Monday, Nov-5
Wednesday, Nov-7
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-12
Wednesday, Nov-14
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-19
Wednesday, Nov-21
Recap 2: Putting concepts together
No Class - Thanksgiving Break
Guide 11
In-Class 24
14 Monday, Nov-26
Wednesday, Nov-28
Enums and Annotations
Object Creation
Bloch Chapter 6
Bloch Chapter 2
Guide 12
Assignment 12 Due
In-Class 25
In-Class 26
Operation Enum Example
15 Monday, Dec-3
Wednesday, Dec-5
Usable Security
Course Wrap Up
Usable Security
Course Review Slides
Guide 13
Assignment 13 Due
In-Class 27
16 Monday, Dec-17
Final Exam   7:30AM!!!!!    

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.