| March | ||||
| Monday | Tuesday | Wednesday | Thursday | Friday | 
| 30 
12:30-11:20 OH (Aditya)
 
13:30-14:20 OH (Chloe)
 
14:30-15:20 OH (Jasmine)
 
15:30-16:20 OH (Yihang)
 | 31 
13:30-14:20 OH (Rachel)
 
15:00-15:50 OH (Frank)
 
16:00-16:50 OH (Meishan)
 
18:30-19:20 OH (Manchen)
 | 01 
9:30-10:20 OH (Alexey)
 
10:30-11:20 Lecture GUG 220 Reasoning about straight line code: Hoare logic, reasoning, if statements (slides: recorded and live) PP 38; more lecture notes (optional) 
15:00-16:00 OH (Andrew)
 
17:00 HW0 due
 | 02 
14:30-15:30 OH (Dmitriy)
 
15:30-16:30 OH (Sherry)
 | 03 
10:30-11:20 Lecture GUG 220 Reasoning about loops: loop invariants and examples (slides: recorded and live) 
11:30-12:20 OH (Chanwut)
 
13:00-14:00 OH (Kevin)
 
16:00-16:50 OH (David)
 | 
| April | ||||
| Monday | Tuesday | Wednesday | Thursday | Friday | 
| 06 
10:30-11:20 Lecture GUG 220 Writing Loops: concepts and an important example (slides: recorded and live) more lecture notes (optional) 
12:30-11:20 OH (Aditya)
 
13:30-14:20 OH (Chloe)
 
14:30-15:20 OH (Jasmine)
 
15:30-16:20 OH (Yihang)
 
23:00 HW1 due
 | 07 
13:30-14:20 OH (Rachel)
 
15:00-15:50 OH (Frank)
 
16:00-16:50 OH (Meishan)
 
18:30-19:20 OH (Manchen)
 | 08 
9:30-10:20 OH (Alexey)
 
15:00-16:00 OH (Andrew)
 
23:00 HW2 (pt 1) due
 | 09 
14:30-15:30 OH (Dmitriy)
 
15:30-16:30 OH (Sherry)
 | 10 
10:30-11:20 Lecture GUG 220 Specifications: overview, how to, and comparisons (slides: recorded and live) PP 23 
11:30-12:20 OH (Chanwut)
 
13:00-14:00 OH (Kevin)
 
16:00-16:50 OH (David)
 | 
| 13 
10:30-11:20 Lecture GUG 220 Data Abstraction (ADTs): overview and Java examples (slides: recorded and live) 
12:30-11:20 OH (Aditya)
 
13:30-14:20 OH (Chloe)
 
14:30-15:20 OH (Jasmine)
 
15:30-16:20 OH (Yihang)
 | 14 
13:30-14:20 OH (Rachel)
 
15:00-15:50 OH (Frank)
 
16:00-16:50 OH (Meishan)
 
18:30-19:20 OH (Manchen)
 
23:00 HW2 (pt 2) due
 | 15 
9:30-10:20 OH (Alexey)
 
10:30-11:20 Lecture GUG 220 Abstraction Functions: overview and in-depth example (slides: recorded and live) Code Examples 
15:00-16:00 OH (Andrew)
 
23:00 HW3 due
 | 16 
14:30-15:30 OH (Dmitriy)
 
15:30-16:30 OH (Sherry)
 | 17 
10:30-11:20 Lecture GUG 220 Representation Invariants: overview and defensive programming tips (slides: recorded and live) EJ 49, 50, 17, 52 
11:30-12:20 OH (Chanwut)
 
12:00-12:30 Quiz 1 starts
 
13:00-14:00 OH (Kevin)
 
16:00-16:50 OH (David)
 | 
| 20 
12:30-11:20 OH (Aditya)
 
13:30-14:20 OH (Chloe)
 
14:30-15:20 OH (Jasmine)
 
15:30-16:20 OH (Yihang)
 | 21 
13:30-14:20 OH (Rachel)
 
15:00-15:50 OH (Frank)
 
16:00-16:50 OH (Meishan)
 
18:30-19:20 OH (Manchen)
 | 22 
9:30-10:20 OH (Alexey)
 
15:00-16:00 OH (Andrew)
 
23:00 HW4 due
 | 23 
Section HW5 pt1: graphs, testing, and rep exposure slides, test design worksheet (solution), and rep exposure worksheet (solution) 
14:30-15:30 OH (Dmitriy)
 
15:30-16:30 OH (Sherry)
 | 24 
11:30-12:20 OH (Chanwut)
 
12:00-12:30 Quiz 2 starts
 
13:00-14:00 OH (Kevin)
 
16:00-16:50 OH (David)
 | 
| 27 
10:30-11:20 Lecture GUG 220 Identity, Equality, & Hashing I: overview and Java details (slides) EJ 10, 11 
12:30-11:20 OH (Aditya)
 
13:30-14:20 OH (Chloe)
 
14:30-15:20 OH (Jasmine)
 
15:30-16:20 OH (Yihang)
 | 28 
13:30-14:20 OH (Rachel)
 
15:00-15:50 OH (Frank)
 
16:00-16:50 OH (Meishan)
 
18:30-19:20 OH (Manchen)
 | 29 
9:30-10:20 OH (Alexey)
 
10:30-11:20 Lecture GUG 220 Identity, Equality, & Hashing II: equals with mutability and hashCode (slides: recorded and live) 
15:00-16:00 OH (Andrew)
 
23:00 HW5 (pt 1) due
 | 30 
14:30-15:30 OH (Dmitriy)
 
15:30-16:30 OH (Sherry)
 | 01 
10:30-11:20 Lecture GUG 220 Exceptions & Assertions: concepts, Java assertions, Java exceptions, exception design / style, special values, and finally blocks (slides: recorded and live) PP 25 
11:30-12:20 OH (Chanwut)
 
12:00-12:30 Quiz 3 starts
 
13:00-14:00 OH (Kevin)
 
16:00-16:50 OH (David)
 | 
| May | ||||
| Monday | Tuesday | Wednesday | Thursday | Friday | 
| 04 
12:30-11:20 OH (Aditya)
 
13:30-14:20 OH (Chloe)
 
14:30-15:20 OH (Jasmine)
 
15:30-16:20 OH (Yihang)
 | 05 
13:30-14:20 OH (Rachel)
 
15:00-15:50 OH (Frank)
 
16:00-16:50 OH (Meishan)
 
18:30-19:20 OH (Manchen)
 | 06 
9:30-10:20 OH (Alexey)
 
15:00-16:00 OH (Andrew)
 
23:00 HW5 (pt 2) due
 | 07 
14:30-15:30 OH (Dmitriy)
 
15:30-16:30 OH (Sherry)
 | 08 
11:30-12:20 OH (Chanwut)
 
12:00-12:30 Quiz 4 starts
 
13:00-14:00 OH (Kevin)
 
16:00-16:50 OH (David)
 | 
| 11 
10:30-11:20 Lecture GUG 220 Generics I: generic types, generic methods, subtyping, and bounds (slides) EJ 28, 30 
12:30-11:20 OH (Aditya)
 
13:30-14:20 OH (Chloe)
 
14:30-15:20 OH (Jasmine)
 
15:30-16:20 OH (Yihang)
 | 12 
13:30-14:20 OH (Rachel)
 
15:00-15:50 OH (Frank)
 
16:00-16:50 OH (Meishan)
 
18:30-19:20 OH (Manchen)
 | 13 
9:30-10:20 OH (Alexey)
 
10:30-11:20 Lecture GUG 220 Generics II: wildcards, arrays, type erasure, and final thoughts (slides: recorded and live) 
15:00-16:00 OH (Andrew)
 
23:00 HW6 due
 | 14 
14:30-15:30 OH (Dmitriy)
 
15:30-16:30 OH (Sherry)
 | 15 
10:30-11:20 Lecture GUG 220 Callbacks, Events, & Event-Driven Programs: callbacks and events, event-driven programs, and a detailed example (slides) Code Examples 
11:30-12:20 OH (Chanwut)
 
12:00-12:30 Quiz 5 starts
 
13:00-14:00 OH (Kevin)
 
16:00-16:50 OH (David)
 | 
| 18 
12:30-11:20 OH (Aditya)
 
13:30-14:20 OH (Chloe)
 
14:30-15:20 OH (Jasmine)
 
15:30-16:20 OH (Yihang)
 | 19 
13:30-14:20 OH (Rachel)
 
15:00-15:50 OH (Frank)
 
16:00-16:50 OH (Meishan)
 
18:30-19:20 OH (Manchen)
 | 20 
9:30-10:20 OH (Alexey)
 
10:30-11:20 Lecture GUG 220 Modern Web UIs: Classic, ES6, TypeScript, React pt1, React pt2 (slides: recorded and live) Code Examples 
15:00-16:00 OH (Andrew)
 
23:00 HW7 due
 | 21 
14:30-15:30 OH (Dmitriy)
 
15:30-16:30 OH (Sherry)
 | 22 
11:30-12:20 OH (Chanwut)
 
12:00-12:30 Quiz 6 starts
 
13:00-14:00 OH (Kevin)
 
16:00-16:50 OH (David)
 | 
| 25 
Memorial Day
 | 26 
13:30-14:20 OH (Rachel)
 
15:00-15:50 OH (Frank)
 
16:00-16:50 OH (Meishan)
 
18:30-19:20 OH (Manchen)
 | 27 
9:30-10:20 OH (Alexey)
 
10:30-11:20 Lecture GUG 220 HTTP Servers & Web Clients: overview, HTTP protocol, Spark Java, web requests (slides) Code Examples 
15:00-16:00 OH (Andrew)
 | 28 
14:30-15:30 OH (Dmitriy)
 
15:30-16:30 OH (Sherry)
 
23:00 HW8 due
 | 29 
10:30-11:20 Lecture GUG 220 HTTP Servers & Web Clients Q & A 
11:30-12:20 OH (Chanwut)
 
12:00-12:30 Quiz 7 starts
 
13:00-14:00 OH (Kevin)
 
16:00-16:50 OH (David)
 | 
| June | ||||
| Monday | Tuesday | Wednesday | Thursday | Friday | 
| 01 
12:30-11:20 OH (Aditya)
 
13:30-14:20 OH (Chloe)
 
14:30-15:20 OH (Jasmine)
 
15:30-16:20 OH (Yihang)
 | 02 
13:30-14:20 OH (Rachel)
 
15:00-15:50 OH (Frank)
 
16:00-16:50 OH (Meishan)
 
18:30-19:20 OH (Manchen)
 | 03 
9:30-10:20 OH (Alexey)
 
15:00-16:00 OH (Andrew)
 | 04 
Section Demos 
14:30-15:30 OH (Dmitriy)
 
15:30-16:30 OH (Sherry)
 | 05 
11:30-12:20 OH (Chanwut)
 
12:00-12:30 Quiz 8 starts
 
13:00-14:00 OH (Kevin)
 
16:00-16:50 OH (David)
 
23:00 HW9 due
 |