CSE 331 Spring 2014
Lecture Topics

Subscribe to this calendar (google, iCal, etc.)

Tentative schedule for the quarter. Links will not work until shortly before each lecture or section.

Readings are section/item (not page) numbers: PP = Pragmatic Programmer, EJ = Effective Java, 2nd ed.
Readings may be changed as we get closer to the associated lectures.

DateDescription
March 31 Introduction
PP preface, 1-2, 5, 31, 35
April 2 Reasoning about code I
notes
April 4 Reasoning about code II - loops
notes
April 7 Proof rules for if (details); loop development
April 9 Loops (concl.)
April 11 Specifications
related notes
PP 21, 44
April 14 Data abstractions (ADTs)
related notes (same as previous lecture)
EJ 15, 39, 44
April 16 Representation invariants (RI)
related notes
April 18 Abstraction Functions (AF)
related notes (same as previous lecture)
April 21 Testing
PP 34, 43
April 23 Testing (concl.)
April 25 Module design and general style
EJ 10, 13-15, 40-41, 45, 56; PP 4, 7-8, 26, 33
April 28 Identity and equality, hashCode
EJ 8-9, 11-12
April 30 hashCode (concl.); Exceptions and assertions
EJ 38, 57-62, 65; PP 22-24
May 2 Exceptions & assertions (cont.)
May 5 Exceptions (concl.); Subtypes and subclasses
EJ 16-20, 36, 52
May 7 Subtypes and subclasses
May 12 Generics and polymorphism
EJ 23-28
May 14 Generics (cont.);
May 16 Generics (wrapup)
Debugging
PP 18
May 19 Debugging (concl.)
Events, listeners, and callbacks
PP 27, 29
May 21 Listeners & callbacks (concl.)
Graphics and GUIs (sample code)
May 23 Graphics (concl.)
May 28 Event-driven GUI programming (sample code)
May 30 Design patterns 1
EJ 1-6
June 2 Design patterns 2
June 4 System integration
June 6 Demos, wrapup