THE SCHEDULE IS LIKELY TO CHANGE!

 

Date

Topic

Reading

Lecture Notes

Homework

Sep 1

Introduction, Tools, C++ vs. Java

Syllabus, Setup

Lecture1 [ppt, pdf]

 

 

 

Sep 5

Java, Reasoning about code

Lecture2 [ppt, pdf]

HW0

Sep 8

Hoare logic

Hoare Logic (from UW)

Pages 1-8

Dafny tutorial

Lecture3 [ppt, pdf]

 

Sep 12

Hoare logic, Loops and loop invariants

Hoare Logic (from UW)

Pages 8-

Lecture4 [ppt, pdf]

HW0 due, HW1

Sep 15

Loops and loop invariants, conclusion.

Dafny tutorial

Lecture5 [ppt, pdf]

 

Sep 19

Specifications

Lecture6 [ppt, pdf]

HW1 due, HW2

Sep 22

Specifications, conclusion.

ADTs

Lecture7 [ppt, pdf]

 

Sep 26

ADTs, Representation invariants, Abstraction functions

Specification Fields (from UW)

Rep Invariants

(from UW)

Abstraction Functions
(from UW)

Lecture8 [ppt, pdf]

HW2 due, HW3

Sep 29

Representation invariants, Abstraction functions, cont.

Reading: Specification fields, Rep Invariants and Abstraction Functions handouts above

Lecture9 [ppt, pdf]

Oct 3

Reasoning about ADTs

Lecture10 [ppt, pdf]

HW3 due

Oct 6

Exam 1

Oct 13

Testing

Lecture11 [ppt, pdf]

HW4

Oct 17

Identity and Equality

Lecture12 [ppt, pdf]

 

Oct 20

Catch-up: Equality, Testing and Exceptions

Lecture13 [ppt, pdf]

HW4 due, HW5

Oct 24

Subtype polymorphism, Liskov Substitution Principle (LSP), Java subclassing

Lecture14 [ppt, pdf]

 

Oct 27

Subtype polymorphism, cont.

Lecture15 [ppt, pdf]

Resubmit HW4, auto-graded part, due

Oct 31

Parametric polymorphism and Java generics

 

Lecture16 [ppt, pdf]

HW5 due, HW6

Nov 3

Exam 2

 

Nov 7

Design patterns

Lecture17 [ppt, pdf]

Nov 10

Design patterns, cont.

Lecture18 [ppt, pdf]

Resubmit HW5 due,

HW6 due, HW7

Nov 14

Design patterns, cont.,

Dependences and coupling

 

Lecture19 [ppt, pdf]

Nov 17

Design patterns, cont.

Lecture20 [ppt, pdf]

Nov 21

Refactoring

Lecture21 [ppt, pdf]

Resubmit HW6 due,

HW7 due, HW8

Nov 28

Refactoring, cont.

Lecture22 [ppt, pdf]

Dec 1

GUI Programming and Event-driven programming

SimpleFrameMain.java

SimpleLayoutMain.java

SimplePaintMain.java

ButtonDemo1.java

ButtonDemo2.java

(from UW)

Lecture23 [ppt, pdf]

HW8 due, HW9

Dec 5

Usability

Lecture24 [ppt, pdf]

Dec 8

Software process and Requirements Analysis

Lecture25 [ppt, pdf]

Dec 12

Review

Lecture26 [ppt, pdf]

Resubmit HW7 due,

HW9 due

Final Exam

 

A