Date | Description |
---|---|
September 29 | Motivation and Logistics (slides); Hoare logic (slides) (video) |
October 1 |
Forward & Backward Reasoning; Reasoning about if statements (slides) (video) PP 38 |
October 4 | Reasoning About Loops: invariants and examples (slides) (video) |
October 6 | Writing Loops: concepts and an important example (slides) (video) |
October 8 | More Writing Loops: interview question and wrap-up (slides) (worksheet) (solution) (video) |
October 11 |
Specifications: overview, javadoc, comparison, and correctness (slides) (video) PP 23 |
October 13 | Data Abstraction (ADTs): overview and Java examples (slides) (video) |
October 15 |
Abstraction Functions (AFs): overview and an example (slides) (video) Code Example |
October 18 |
Representation Invariants (RIs): overview and defensive programming (slides) (video) EJ 49, 50, 17, 52 |
October 20 |
Testing: concepts and heuristics (slides) PP 41 |
October 22 | More Testing: examples, coverage, and tips (slides) |
October 25 | Module Design & Style: concepts, Java advice, and readability (slides) |
October 27 |
Identity, Equality, & Hashing: overview and Java details (slides) EJ 10, 11 |
October 29 | More Identity, Equality, & Hashing: review, mutability, and hashing (slides, demo) |
November 1 |
Exceptions & Assertions: concepts, assertions, mechanics, design, and alternatives (slides) PP 25 |
November 3 |
Subtypes: concepts and (non-)examples (slides) EJ 40, 18, 19 |
November 5 | More Subtypes: Java details, equals redux, and alternatives (slides) |
November 8 | Debugging: concepts and tips (slides) |
November 10 |
Generics: overview, methods, and subtyping (slides) More Generics: bounds, wildcards, arrays, type erasure, and advice (slides) EJ 28, 30 |
November 12 |
"Section 7": HW7, Dijkstra's algorithm, and MVC (slides) Worksheet (Solution) |
November 15 |
Callbacks, Events, & Event-Driven Programs: callbacks & events and event-driven programs (slides) Code Examples |
November 17 |
User Interfaces & Javascript: user interfaces, Javascript, and JS classes (slides) Code Examples |
November 19 |
Modern Web UIs: original, ES6, and TypeScript (slides) Code Examples |
November 22 |
Javascript & React: overview and state (slides) Code Examples |
November 29 |
Basic Servers & Clients: overview and http (slides) Code Examples |
December 1 |
HTTP Servers & Web Clients: Spark and Web Requests (slides) Code Examples |
December 3 | Design Patterns: overview, factories, and builders (slides) |
December 6 | More Design Patterns: sharing, structural, and behavioral (slides) |
December 8 | System Integration and Software Processes (slides) |
December 10 | Course Victory Lap (slides) |