Schedule

Readings: EJ numbers refer to Items, not chapters, in Effective Java 3rd edition
PP numbers refer to Topics, not chapters, in Pragmatic Programmer 2nd (20th Anniversary) edition

March
MondayTuesdayWednesdayThursdayFriday
27
Lecture
Correctness
28 29
Lecture
Testing
30
Section
Correctness and Testing
slides, ws, code download, recording
31
Lecture
Data Types
April
MondayTuesdayWednesdayThursdayFriday
03 04 05
23:00 HW1 due
06
Section
Functional Programming I
slides, ws, recording
07
Lecture
Trees
10 11 12
23:00 HW2 due
13
Section
Functional Programming II
slides, ws, recording
14
17 18 19
23:00 HW3 due
20
Section
Functional Programming III
slides, ws, recording
21
24 25 26
23:00 HW4 due
27
Section
Imperative Programming I
slides, ws, recording
28
Lecture
Arrays
May
MondayTuesdayWednesdayThursdayFriday
01
Lecture
Array Loops
02 03
23:00 HW5 due
04
Section
Imperative Programmming II
slides, ws, recording
05
Lecture
Aliasing
08
Lecture
Mutable ADTs
09 10
Lecture
Debugging
23:00 HW6 due
11
Section
Imperative Programmming III
slides, ws, recording
12
15
Lecture
Full-Stack Apps
To Do Client (code), To Do Server (code)
16 17
Lecture
App Design
Auction Client (code), Auction Server (code), Quarter Picker (code)
23:00 HW7 due
18
Section
Midterm Review
slides, ws, Midterm Review recording
19
10:30-11:20 Midterm exam (in class)
14:30-15:20 Midterm exam (in class)
22
Lecture
Subtypes
23 24
Lecture
Equality
25
Section
Office Hours
26
23:00 HW8 due
29
Memorial Day
30 31
Lecture
Startups
01
Section
Final Review
slides, recording
02
Lecture
Course Review
23:00 HW9 due
June
MondayTuesdayWednesdayThursdayFriday
05 06
14:30-16:20 Final exam (in KNE 110)
16:30-18:20 Final exam (in KNE 110)
07 08 09