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

September
MondayTuesdayWednesdayThursdayFriday
27 28 29
10:30 Lecture
CSE2 G01
Motivation and Logistics (slides); Hoare logic (slides) (video)
14:00-15:00 OH (Elijah)
CSE2 131
19:00-20:00 OH (Jaela)
Zoom
30
Section
Hoare Logic: reasoning about code (slides)
worksheet (solutions)
14:30-15:30 OH (Josie)
CSE 4th Floor Breakout Area
15:30-16:30 OH (Hritik)
Zoom
17:00-18:00 OH (Elijah)
CSE2 131
01
9:00-10:15 OH (Jaela)
CSE2 121
10:30 Lecture
CSE2 G01
Forward & Backward Reasoning; Reasoning about if statements (slides) (video)
PP 38
13:30-14:30 OH (Owen)
CSE2 150
17:00 HW0 due

October
MondayTuesdayWednesdayThursdayFriday
04
10:30 Lecture
CSE2 G01
Reasoning About Loops: invariants and examples (slides) (video)
12:30-13:30 OH (Zhennan)
CSE2 121
05
12:00-13:00 OH (Katherine)
Zoom
13:00-14:00 OH (James)
CSE1 210 or Zoom
14:00-15:00 OH (Betty)
CSE2 131
14:30-15:30 OH (Hritik)
Zoom
06
10:30 Lecture
CSE2 G01
Writing Loops: concepts and an important example (slides) (video)
14:00-15:00 OH (Elijah)
CSE2 131
19:00-20:00 OH (Jaela)
Zoom
07
Section
HW3: Java tools (slides)
14:30-15:30 OH (Josie)
CSE 4th Floor Breakout Area
15:30-16:30 OH (Hritik)
Zoom
17:00-18:00 OH (Elijah)
CSE2 131
08
9:00-10:15 OH (Jaela)
CSE2 121
10:30 Lecture
CSE2 G01
More Writing Loops: interview question and wrap-up (slides) (worksheet) (solution) (video)
13:30-14:30 OH (Owen)
CSE2 150
11
10:30 Lecture
CSE2 G01
Specifications: overview, javadoc, comparison, and correctness (slides) (video)
PP 23
12:30-13:30 OH (Zhennan)
CSE2 121
17:00 HW1 due
12
12:00-13:00 OH (Katherine)
Zoom
13:00-14:00 OH (James)
CSE1 210 or Zoom
14:00-15:00 OH (Betty)
CSE2 131
14:30-15:30 OH (Hritik)
Zoom
13
10:30 Lecture
CSE2 G01
Data Abstraction (ADTs): overview and Java examples (slides) (video)
14:00-15:00 OH (Elijah)
CSE2 131
19:00-20:00 OH (Jaela)
Zoom
14
Section
HW4: AFs & JUnit (slides)
worksheet and Code Example
14:30-15:30 OH (Josie)
CSE 4th Floor Breakout Area
15:30-16:30 OH (Hritik)
Zoom
17:00-18:00 OH (Elijah)
CSE2 131
23:00 HW3 due
15
9:00-10:15 OH (Jaela)
CSE2 121
10:30 Lecture
CSE2 G01
Abstraction Functions (AFs): overview and an example (slides) (video)
Code Example
13:30-14:30 OH (Owen)
CSE2 150
18
10:30 Lecture
CSE2 G01
Representation Invariants (RIs): overview and defensive programming (slides) (video)
EJ 49, 50, 17, 52
12:30-13:30 OH (Zhennan)
CSE2 121
17:00 HW2 due
19
12:00-13:00 OH (Katherine)
Zoom
13:00-14:00 OH (James)
CSE1 210 or Zoom
14:00-15:00 OH (Betty)
CSE2 131
14:30-15:30 OH (Hritik)
Zoom
20
10:30 Lecture
CSE2 G01
Testing: concepts and heuristics (slides)
PP 41
14:00-15:00 OH (Elijah)
CSE2 131
19:00-20:00 OH (Jaela)
Zoom
21
Section
HW5 pt1, testing, & rep exposure (slides)
rep exposure worksheet (solution) and test design worksheet (solution)
14:30-15:30 OH (Josie)
CSE 4th Floor Breakout Area
15:30-16:30 OH (Hritik)
Zoom
17:00-18:00 OH (Elijah)
CSE2 131
23:00 HW4 due
22
9:00-10:15 OH (Jaela)
CSE2 121
10:30 Lecture
CSE2 G01
More Testing: examples, coverage, and tips (slides)
13:30-14:30 OH (Owen)
CSE2 150
25
10:30 Lecture
CSE2 G01
Module Design & Style: concepts, Java advice, and readability (slides)
12:30-13:30 OH (Zhennan)
CSE2 121
26
12:00-13:00 OH (Katherine)
Zoom
13:00-14:00 OH (James)
CSE1 210 or Zoom
14:00-15:00 OH (Betty)
CSE2 131
14:30-15:30 OH (Hritik)
Zoom
27
10:30 Lecture
CSE2 G01
Identity, Equality, & Hashing: overview and Java details (slides)
EJ 10, 11
14:00-15:00 OH (Elijah)
CSE2 131
19:00-20:00 OH (Jaela)
Zoom
28
Section
HW5 pt2, RIs, equals & hashCode (slides)
worksheets: RIs/AFs worksheet (solution) and equals & hashCode (solution)
14:30-15:30 OH (Josie)
CSE 4th Floor Breakout Area
15:30-16:30 OH (Hritik)
Zoom
17:00-18:00 OH (Elijah)
CSE2 131
23:00 HW5 pt1 due
29
9:00-10:15 OH (Jaela)
CSE2 121
10:30 Lecture
CSE2 G01
More Identity, Equality, & Hashing: review, mutability, and hashing (slides, demo)
13:30-14:30 OH (Owen)
CSE2 150
17:00-18:00 OH (Josie)
Zoom
18:00 Quiz 1 begins

November
MondayTuesdayWednesdayThursdayFriday
01
10:30 Lecture
CSE2 G01
Exceptions & Assertions: concepts, assertions, mechanics, design, and alternatives (slides)
PP 25
12:30-13:30 OH (Zhennan)
CSE2 121
02
12:00-13:00 OH (Katherine)
Zoom
13:00-14:00 OH (James)
CSE1 210 or Zoom
14:00-15:00 OH (Betty)
CSE2 131
14:30-15:30 OH (Hritik)
Zoom
03
10:30 Lecture
CSE2 G01
Subtypes: concepts and (non-)examples (slides)
EJ 40, 18, 19
14:00-15:00 OH (Elijah)
CSE2 131
19:00-20:00 OH (Jaela)
Zoom
04
Section
HW6: BFS, parsing data (slides)
worksheet (solutions)
14:30-15:30 OH (Josie)
CSE 4th Floor Breakout Area
15:30-16:30 OH (Hritik)
Zoom
17:00-18:00 OH (Elijah)
CSE2 131
23:00 HW5 pt2 due
05
9:00-10:15 OH (Jaela)
CSE2 121
10:30 Lecture
CSE2 G01
More Subtypes: Java details, equals redux, and alternatives (slides)
13:30-14:30 OH (Owen)
CSE2 150
08
10:30 Lecture
CSE2 G01
Debugging: concepts and tips (slides)
12:30-13:30 OH (Zhennan)
CSE2 121
09
12:00-13:00 OH (Katherine)
Zoom
13:00-14:00 OH (James)
CSE1 210 or Zoom
14:00-15:00 OH (Betty)
CSE2 131
14:30-15:30 OH (Hritik)
Zoom
10
10:30 Lecture
CSE2 G01
Generics: overview, methods, and subtyping (slides)
More Generics: bounds, wildcards, arrays, type erasure, and advice (slides)

EJ 28, 30
14:00-15:00 OH (Elijah)
CSE2 131
19:00-20:00 OH (Jaela)
Zoom
11
Veterans Day
12
9:00-10:15 OH (Jaela)
CSE2 121
10:30 Lecture
CSE2 G01
"Section 7": HW7, Dijkstra's algorithm, and MVC (slides)
Worksheet (Solution)
13:30-14:30 OH (Owen)
CSE2 150
23:00 HW6 due
15
10:30 Lecture
CSE2 G01
Callbacks, Events, & Event-Driven Programs: callbacks & events and event-driven programs (slides)
Code Examples
12:30-13:30 OH (Zhennan)
CSE2 121
16
12:00-13:00 OH (Katherine)
Zoom
13:00-14:00 OH (James)
CSE1 210 or Zoom
14:00-15:00 OH (Betty)
CSE2 131
14:30-15:30 OH (Hritik)
Zoom
17
10:30 Lecture
CSE2 G01
User Interfaces & Javascript: user interfaces, Javascript, and JS classes (slides)
Code Examples
14:00-15:00 OH (Elijah)
CSE2 131
19:00-20:00 OH (Jaela)
Zoom
18
Section
HW8: Javascript & Office Hours (slides)
Code Examples
14:30-15:30 OH (Josie)
CSE 4th Floor Breakout Area
15:30-16:30 OH (Hritik)
Zoom
17:00-18:00 OH (Elijah)
CSE2 131
23:00 HW7 due
19
9:00-10:15 OH (Jaela)
CSE2 121
10:30 Lecture
CSE2 G01
Modern Web UIs: original, ES6, and TypeScript (slides)
Code Examples
13:30-14:30 OH (Owen)
CSE2 150
22
10:30 Lecture
CSE2 G01
Javascript & React: overview and state (slides)
Code Examples
12:30-13:30 OH (Zhennan)
CSE2 121
23
12:00-13:00 OH (Katherine)
Zoom
13:00-14:00 OH (James)
CSE1 210 or Zoom
14:00-15:00 OH (Betty)
CSE2 131
14:30-15:30 OH (Hritik)
Zoom
24
Thanksgiving break
25
Thanksgiving break
26
Thanksgiving break
29
10:30 Lecture
CSE2 G01
Basic Servers & Clients: overview and http (slides)
Code Examples
12:30-13:30 OH (Zhennan)
CSE2 121
30
12:00-13:00 OH (Katherine)
Zoom
13:00-14:00 OH (James)
CSE1 210 or Zoom
14:00-15:00 OH (Betty)
CSE2 131
14:30-15:30 OH (Hritik)
Zoom
01
10:30 Lecture
CSE2 G01
HTTP Servers & Web Clients: Spark and Web Requests (slides)
Code Examples
14:00-15:00 OH (Elijah)
CSE2 131
19:00-20:00 OH (Jaela)
Zoom
02
Section
HW9: JSON & Fetch (slides)
Code Examples
14:30-15:30 OH (Josie)
CSE 4th Floor Breakout Area
15:30-16:30 OH (Hritik)
Zoom
17:00-18:00 OH (Elijah)
CSE2 131
23:00 HW8 due
03
9:00-10:15 OH (Jaela)
CSE2 121
10:30 Lecture
CSE2 G01
Design Patterns: overview, factories, and builders (slides)
13:30-14:30 OH (Owen)
CSE2 150

December
MondayTuesdayWednesdayThursdayFriday
06
10:30 Lecture
CSE2 G01
More Design Patterns: sharing, structural, and behavioral (slides)
12:30-13:30 OH (Zhennan)
CSE2 121
07
12:00-13:00 OH (Katherine)
Zoom
13:00-14:00 OH (James)
CSE1 210 or Zoom
14:00-15:00 OH (Betty)
CSE2 131
14:30-15:30 OH (Hritik)
Zoom
08
10:30 Lecture
CSE2 G01
System Integration and Software Processes (slides)
14:00-15:00 OH (Elijah)
CSE2 131
19:00-20:00 OH (Jaela)
Zoom
09
Section
Final Review (slides)
worksheet (solution)
14:30-15:30 OH (Josie)
CSE 4th Floor Breakout Area
15:30-16:30 OH (Hritik)
Zoom
17:00-18:00 OH (Elijah)
CSE2 131
10
9:00-10:15 OH (Jaela)
CSE2 121
10:30 Lecture
CSE2 G01
Course Victory Lap (slides)
13:30-14:30 OH (Owen)
CSE2 150
23:00 HW9 due