Number |
Lecture Date |
Title |
Fullsize |
L0 |
1/3/2011 |
Introduction |
(PDF) |
L1 |
1/3/2011 |
Specifications |
(PDF) |
L2 |
1/5/2011 |
Testing |
(PDF) |
L3 |
1/7/2011 |
Procedural specifications |
(PDF) |
L4 |
1/10/2011 |
Abstract data types |
(PDF) |
L5 |
1/12/2011 |
Abstraction functions and representation invariants |
(PDF) |
L6 |
1/14/2011 |
Subclasses and subtypes |
(PDF) |
L7 |
1/19/2011 |
Preventing null pointer errors |
(PDF) |
L8 |
1/21/2011 |
Polymorphism (generics) |
(PDF) |
L9 |
1/24/2011 |
Design patterns (1) |
(PDF) |
L10 |
1/26/2011 |
Identity and equality |
(PDF) |
L11 |
2/2/2011 |
Debugging |
(PDF) |
L12 |
2/4/2011 |
Exceptions |
(PDF) |
L13 |
2/7/2011 |
Reasoning about ADTs |
(PDF) |
L14 |
2/9/2011 |
Reasoning about code |
(PDF) |
L15 |
2/11/2011 |
Design patterns (2) |
(PDF) |
L16 |
2/14/2011 |
Module dependences |
(PDF) |
L17 |
2/16/2011 |
Design patterns (3) |
(PDF) |
L18 |
2/18/2011 |
System integration |
(PDF) |
L19 |
2/23/2011 |
Usability |
(PDF) |
L20 |
3/2/2011 |
Automated verification |
(PDF) |
L21 |
3/11/2011 |
Wrapup |
(PDF) |