Lecture Topics

DateDescription
September 25 Introduction
slides
September 27 Reasoning about code I
slides, lecture notes
September 30 Reasoning about code II - Loops
slides, lecture notes
October 2 Program logic (concl.); Specifications (start)
slides, related notes
October 4 Specifications (concl)
October 7 Data Abstractions (ADTs)
ADT slides
October 9 Rep Invariants (RI) & Abstraction Functions (AF) (start)
RI slides, AF slides, related notes
October 11 RI/AF (concl.), (barely) start Testing
October 14 Testing (start)
slides
October 16 Testing (concl.), possibly start next topic
October 18 Module design and general style notes, possibly start next topic
slides
October 21 Identity & equality, hashCode
slides
October 23 hashCode (concl.); Exceptions & assertions
slides
October 25 Exceptions (concl.); Subtypes and subclasses (start)
slides
October 30 Subtypes and subclasses (concl.)
November 1 Generics (start)
slides, TypeErasure.java
November 4 Generics (concl.)
November 6 Callbacks, Events, and Listeners/Observers
slides, code
November 8 Javascript intro
slides, code
November 13 Web pages, user interfaces, and React
UI/react slides, code.zip, Panopto video 1; Wednesday (does not have screeen capture) Panopto video 2; Friday
November 15 Finish JS/React, Debugging (start)
slides
November 18 Debugging
November 20 HW9, Spark Java, Fetch
slides, code.zip, Panopto video
November 22 Design patterns 1 (start)
slides
November 25 Finish Design pattern 1; Start Design patterns 2
slides
November 27 Finish Design patterns 2
December 2 System integration (start)
slides
December 4 Systems integration (cont'd); Inclusive Software
slides
December 6 Course wrapup
slides