CSE 331 Winter 2018
Lecture Topics

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

Readings correspond to sections, not chapters, in Pragmatic Programmer and Effective Java.
PP = Pragmatic Programmer; EJ2 = Effective Java 2nd ed.; EJ3 = Effective Java 3rd ed. You can use either edition.

DateDescription
January 3 Introduction; read PP: preface, 1-2, 5, 31, 35
slides
January 5 Reasoning about code I (cont. from section); intro to loops
January 8 Reasoning about code II - loops
slides, notes
January 10 loop development (concl.)
January 12 Specifications (start), PP: 21, 44
slides, related notes
January 17 Specifications (concl.); Data Abstractions (ADTs); EJ2: 15, 39, 44 / EJ3: 17, 50, 56
ADT slides, related notes
January 19 ADTs (concl.); Rep Invariants (RI) (start)
RI slides, related notes
January 22 RIs (concl.); Abstraction Functions (AF)
AF slides, related notes (same as last time)
January 24 Testing (start) PP: 34, 43
slides
January 26 Testing (concl.); Module design and general style notes; EJ2: 10, 13-15, 40-41, 45-46, 50, 56 / EJ3: 12, 15-17, 51-52, 57-58, 62, 68; PP: 4, 7-8, 26, 33
slides
January 29 Design (concl.); Identity & equality, hashCode; EJ2: 8-9, 11-12 / EJ3: 10-11, 13-14
slides
January 31 Equality (concl.)
February 2 Exceptions & assertions; EJ2: 38, 57-62, 65 / EJ3: 49, 69-74, 77; PP: 22-24
slides
February 5 Exceptions (concl.)
February 7 Subtypes and subclasses (start); EJ2: 16-20, 36, 52 / EJ3: 18-20, 22-23, 40, 64
slides
February 9 Subtypes and subclasses (concl.)
February 12 Generics (start); EJ2: 23-28 / EJ3: 26-31
slides
February 14 Generics
February 16 Generics (concl.)
February 21 Events, listeners, & callbacks; PP: 27, 29
slides
February 23 Debugging; PP: 18
slides
February 26 Graphics and GUIs
slides code
February 28 Event-driven GUI programming
slides code
March 2 Design patterns 1; EJ2: 1-6 / EJ3: 1-4, 6-7
slides
March 5 Design patterns 2
slides
March 7 System integration
slides
March 9 Demos, wrapup
slides