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

January
MondayTuesdayWednesdayThursdayFriday
03
Lecture
Introduction; read PP: prefaces (both), 1-3, 6, 38
slides, zoom link
04
10:00-11:00 OH Sparsh
zoom link
11:00-12:00 OH Jeremy
zoom link
13:00-14:00 OH Zhennan
zoom link
14:00-15:00 OH Gargi
zoom link
15:00-16:00 OH Rachel
zoom link
16:00-17:00 OH Katherine
zoom link
05
Lecture
Reasoning about code I
slides, lecture notes, zoom link
9:00-10:00 OH Jiamae
zoom link
10:00 hw0 due (warmup) No late assignments accepted
gradescope instructions
13:30-14:30 OH Sanjana
zoom link
16:00-17:00 OH Ardi
zoom link
17:00-18:00 OH Hritik
zoom link
06
Section
Intro to Reasoning About Code
slides, worksheet (sample solution)
12:00-13:00 OH Hannah
zoom link
16:00-17:00 OH Elijah
zoom link
17:30-18:30 OH Bryan
zoom link
18:30-19:30 OH Soham
zoom link
07
Lecture
Reasoning about code II - Loops
slides, lecture notes, zoom link
9:00-10:30 OH Jaela
zoom link
12:30-13:30 OH Betty
zoom link
16:30-18:00 OH Helena
zoom link
10
Lecture
Program logic - loops (no new notes or slides)
13:00-14:00 OH Owen
zoom link
16:00-17:00 OH David
zoom link
11
10:00-11:00 OH Sparsh
zoom link
11:00-12:00 OH Jeremy
zoom link
13:00-14:00 OH Zhennan
zoom link
14:00-15:00 OH Gargi
zoom link
15:00-16:00 OH Rachel
zoom link
16:00-17:00 OH Katherine
zoom link
23:00 hw1 due (assertions, proofs) (sample solution)
12
Lecture
Loops (concl.); Specifications, PP: 7, 23
slides, related notes
9:00-10:00 OH Jiamae
zoom link
13:30-14:30 OH Sanjana
zoom link
16:00-17:00 OH Ardi
zoom link
17:00-18:00 OH Hritik
zoom link
13
Section
Java tools + hw3
Pre-HW3 Section Setup Guide, slides
12:00-13:00 OH Hannah
zoom link
16:00-17:00 OH Elijah
zoom link
17:30-18:30 OH Bryan
zoom link
18:30-19:30 OH Soham
zoom link
14
Lecture
Specifications (cont.), notes (same as last time)
9:00-10:30 OH Jaela
zoom link
12:30-13:30 OH Betty
zoom link
16:30-18:00 OH Helena
zoom link
17
MLK Day
9:00-10:00 OH Sanjana
zoom link
13:00-14:00 OH Soham
zoom link
16:00-17:00 OH David
zoom link
18
10:00-11:00 OH Sparsh
zoom link
11:00-12:00 OH Jeremy
zoom link
13:00-14:00 OH Zhennan
zoom link
14:00-15:00 OH Gargi
zoom link
15:00-16:00 OH Rachel
zoom link
16:00-17:00 OH Katherine
zoom link
23:00 hw2 due (loop development) (sample solution)
19
Lecture
Specifications (concl.); Data Abstractions (ADTs), EJ: 17, 50, 56
slides
9:00-10:00 OH Jiamae
zoom link
13:30-14:30 OH Sanjana
zoom link
16:00-17:00 OH Ardi
zoom link
17:00-18:00 OH Hritik
zoom link
20
Section
Abstraction, testing, hw4 & junit
slides, worksheet, junit demo code
12:00-13:00 OH Hannah
zoom link
16:00-17:00 OH Elijah
zoom link
17:30-18:30 OH Bryan
zoom link
18:30-19:30 OH Soham
zoom link
23:00 hw3 due (Java review / logistics)
21
Lecture
ADTs (concl); Rep Invariants (RI); PP 25
RI slides, related notes
9:00-10:30 OH Jaela
zoom link
12:30-13:30 OH Betty
zoom link
16:30-18:00 OH Helena
zoom link
24
Lecture
Rep Invariants (RI, concl.); Abstraction Functions (AF); start testing if time
AF slides
13:00-14:00 OH Owen
zoom link
16:00-17:00 OH David
zoom link
25
10:00-11:00 OH Sparsh
zoom link
11:00-12:00 OH Jeremy
zoom link
13:00-14:00 OH Zhennan
zoom link
14:00-15:00 OH Gargi
zoom link
15:00-16:00 OH Rachel
zoom link
16:00-17:00 OH Katherine
zoom link
26
Lecture
Testing, PP: 41, 51
slides
9:00-10:00 OH Jiamae
zoom link
13:30-14:30 OH Sanjana
zoom link
16:00-17:00 OH Ardi
zoom link
17:00-18:00 OH Hritik
zoom link
27
12:00-13:00 OH Hannah
zoom link
16:00-17:00 OH Elijah
zoom link
17:30-18:30 OH Bryan
zoom link
18:30-19:30 OH Soham
zoom link
23:00 hw4 due (implement / test)
28
Lecture
Testing (concl.); Module design and general style notes; EJ: 12, 15-17, 51-52, 57-58, 62, 68; PP: 5, 7-10, 28, 40, 44
slides
9:00-10:30 OH Jaela
zoom link
12:30-13:30 OH Betty
zoom link
16:30-18:00 OH Helena
zoom link
31
Lecture
General guidelines (concl.); Identity & equality, hashCode; EJ: 10-11, 13-14
slides
13:00-14:00 OH Owen
Allen 3rd floor breakout
16:00-17:00 OH David
zoom link
01
10:00-11:00 OH Sparsh
CSE2 150 & zoom link
11:00-12:00 OH Jeremy
zoom link
13:00-14:00 OH Zhennan
CSE2 131
14:00-15:00 OH Gargi
CSE2 131
15:00-16:00 OH Rachel
CSE2 131
16:00-17:00 OH Katherine
Allen 3rd floor breakout
02
Lecture
equals/hashCode
9:00-10:00 OH Jiamae
zoom link
13:30-14:30 OH Sanjana
CSE2 121 & zoom link
16:00-17:00 OH Ardi
Allen 4th floor breakout
17:00-18:00 OH Hritik
zoom link
03
Section
Graph implementation, equals/hashcode & method dispatch
slides, worksheet (sample solution)
12:00-13:00 OH Hannah
CSE 218
16:00-17:00 OH Elijah
CSE2 121
17:30-18:30 OH Bryan
CSE2 121
18:30-19:30 OH Soham
zoom link
23:00 hw5-1 due (graph ADT design/test)
04
Lecture
hashCode (concl.); Exceptions & assertions; EJ: 49, 69-74, 77
slides
9:00-10:30 OH Jaela
Allen 3rd floor breakout & zoom link
12:30-13:30 OH Betty
zoom link
16:30-18:00 OH Helena
zoom link
February
MondayTuesdayWednesdayThursdayFriday
07
Midterm exam Q&A Review Sunday afternoon 2/6 2pm
CSE2 G20
Lecture
Exceptions (cont.)
13:00-14:00 OH Owen
Allen 3rd floor breakout
16:00-17:00 OH David
zoom link
08
10:00-11:00 OH Sparsh
CSE2 150 & zoom link
11:00-12:00 OH Jeremy
zoom link
13:00-14:00 OH Zhennan
CSE2 131
14:00-15:00 OH Gargi
CSE2 131
15:00-16:00 OH Rachel
CSE2 131
16:00-17:00 OH Katherine
Allen 3rd floor breakout
17:00-18:00 Midterm exam (all sections)
Kane 110 & CSE2 G01
09
Lecture
exceptions (condl.); Subtypes and subclasses (start); EJ: 18-20, 22-23, 40, 64
slides
9:00-10:00 OH Jiamae
zoom link
13:30-14:30 OH Sanjana
CSE2 121 & zoom link
16:00-17:00 OH Ardi
Allen 4th floor breakout
17:00-18:00 OH Hritik
zoom link
10
Section
hw6 data files and parsing
slides, worksheet (sample solution)
12:00-13:00 OH Hannah
CSE 218
16:00-17:00 OH Elijah
CSE2 121
18:30-19:30 OH Soham
zoom link
19:30-20:30 OH Bryan
zoom link
23:00 hw5-2 due (graph ADT implementation)
11
Lecture
Subtypes (concl.)
9:00-10:30 OH Jaela
Allen 3rd floor breakout & zoom link
12:30-13:30 OH Betty
zoom link
16:30-18:00 OH Helena
zoom link
14
Lecture
Generics (start); EJ: 26-31
slides, code
13:00-14:00 OH Owen
Allen 3rd floor breakout
16:00-17:00 OH David
zoom link
15
10:00-11:00 OH Sparsh
CSE2 150 & zoom link
11:00-12:00 OH Jeremy
zoom link
13:00-14:00 OH Zhennan
CSE2 131
14:00-15:00 OH Gargi
CSE2 131
15:00-16:00 OH Rachel
CSE2 131
16:00-17:00 OH Katherine
Allen 3rd floor breakout
16
Lecture
Generics (concl.)
9:00-10:00 OH Jiamae
zoom link
13:30-14:30 OH Sanjana
CSE2 121 & zoom link
16:00-17:00 OH Ardi
Allen 4th floor breakout
17:00-18:00 OH Hritik
zoom link
17
Section
Dijkstra's algorithm; Model-View-Controller, hw7
slides, handout, worksheet (sample solution)
12:00-13:00 OH Hannah
CSE 218
16:00-17:00 OH Elijah
CSE2 121
18:30-19:30 OH Soham
zoom link
19:30-20:30 OH Bryan
zoom link
23:00 hw6 due (social network)
18
Lecture
HTML/JavaScript/TypeScript intro
slides, code, code zip, TypeScript Video
9:00-10:30 OH Jaela
Allen 3rd floor breakout & zoom link
12:30-13:30 OH Betty
zoom link
16:30-18:00 OH Helena
zoom link
21
President's Day
14:30-15:30 OH Sanjana
zoom link
16:00-17:00 OH David
zoom link
22
10:00-11:00 OH Sparsh
CSE2 150 & zoom link
11:00-12:00 OH Jeremy
zoom link
13:00-14:00 OH Zhennan
CSE2 131
14:00-15:00 OH Gargi
CSE2 131
15:00-16:00 OH Rachel
CSE2 131
16:00-17:00 OH Katherine
Allen 3rd floor breakout
23
Lecture
React overview
slides, code (zip file)
9:00-10:00 OH Jiamae
zoom link
13:30-14:30 OH Sanjana
CSE2 121 & zoom link
16:00-17:00 OH Ardi
Allen 4th floor breakout
17:00-18:00 OH Hritik
zoom link
24
Section
React & hw8
slides, code (zip archive)
12:00-13:00 OH Hannah
CSE 218
16:00-17:00 OH Elijah
CSE2 121
18:30-19:30 OH Soham
zoom link
19:30-20:30 OH Bryan
zoom link
23:00 hw7 due (generics, Dijkstra's, campus paths)
25
Lecture
Callbacks, Events, and Listeners/Observers
slides, code
9:00-10:30 OH Jaela
Allen 3rd floor breakout & zoom link
12:30-13:30 OH Betty
zoom link
16:30-18:00 OH Helena
zoom link
28
Lecture
Debugging; PP: 20
slides
13:00-14:00 OH Owen
Allen 3rd floor breakout
16:00-17:00 OH David
zoom link
01
10:00-11:00 OH Sparsh
CSE2 150 & zoom link
11:00-12:00 OH Jeremy
zoom link
13:00-14:00 OH Zhennan
CSE2 131
14:00-15:00 OH Gargi
CSE2 131
15:00-16:00 OH Rachel
CSE2 131
16:00-17:00 OH Katherine
Allen 3rd floor breakout
02
Lecture
HW9, Spark Java, Fetch
slides, code, (zip file)
9:00-10:00 OH Jiamae
zoom link
13:30-14:30 OH Sanjana
CSE2 121 & zoom link
16:00-17:00 OH Ardi
Allen 4th floor breakout
17:00-18:00 OH Hritik
zoom link
03
Section
hw9, react/ts, etc. Q&A
slides, code (archive included)
12:00-13:00 OH Hannah
CSE 218
16:00-17:00 OH Elijah
CSE2 121
18:30-19:30 OH Soham
zoom link
19:30-20:30 OH Bryan
zoom link
23:00 hw8 due (JS/TS/React warmup)
04
Lecture
Design patterns 1; EJ: 1-4, 6-7
slides
9:00-10:30 OH Jaela
Allen 3rd floor breakout & zoom link
12:30-13:30 OH Betty
zoom link
16:30-18:00 OH Helena
zoom link
March
MondayTuesdayWednesdayThursdayFriday
07
Lecture
Design patterns 2
slides
13:00-14:00 OH Owen
Allen 3rd floor breakout
16:00-17:00 OH David
zoom link
08
10:00-11:00 OH Sparsh
CSE2 150 & zoom link
11:00-12:00 OH Jeremy
zoom link
13:00-14:00 OH Zhennan
CSE2 131
14:00-15:00 OH Gargi
CSE2 131
15:00-16:00 OH Rachel
CSE2 131
16:00-17:00 OH Katherine
Allen 3rd floor breakout
09
Lecture
System integration
slides
9:00-10:00 OH Jiamae
zoom link
13:30-14:30 OH Sanjana
CSE2 121 & zoom link
16:00-17:00 OH Ardi
Allen 4th floor breakout
17:00-18:00 OH Hritik
zoom link
10
Section
Design patterns & wrapup
slides, worksheet (sample solution)
12:00-13:00 OH Hannah
CSE 218
16:00-17:00 OH Elijah
CSE2 121
18:30-19:30 OH Soham
zoom link
19:30-20:30 OH Bryan
zoom link
23:00 hw9 due (GUI)
11
Lecture
Project demos & course wrapup
slides
9:00-10:30 OH Jaela
Allen 3rd floor breakout & zoom link
12:30-13:30 OH Betty
zoom link
16:30-18:00 OH Helena
zoom link
23:59 OH Soham Saturday afternoon 4-6 pm
zoom link
14
16:30-17:30 Final exam Q&A Review
CSE2 G20
15
12:30-14:20 Final exam (all sections)
Kane 110 & CSE2 G01
16 17 18