March | ||||
Monday | Tuesday | Wednesday | Thursday | Friday |
28
12:30-13:20 Lecture
CSE2 G01 Welcome to 341! Course mechanics; Trefoil v1 use and implementation Whiteboards Video Demo code
15:00-16:00 OH (Deeksha)
CSE1 (Allen) 220 |
29
10:30-11:30 OH (Chongjiu)
In Person, CSE2 151 |
30
11:30-12:30 OH (Thia)
CSE1 (Allen) 3rd floor breakout |
31
15:30-16:30 OH (Cole)
CSE1 220 |
01
11:00-12:00 OH (Joan)
In Person CSE2 150(Bradlee room) |
April | ||||
Monday | Tuesday | Wednesday | Thursday | Friday |
04
12:30-13:20 Lecture
CSE2 G01 OCaml wrapup; flat syntax versus nested syntax; syntax as trees Whiteboards Video Demo code
15:00-16:00 OH (Deeksha)
CSE1 (Allen) 220 |
05
10:30-11:30 OH (Chongjiu)
In Person, CSE2 151
23:59 HW1 due (Implementing Trefoil v1: Postfix calculator)
|
06
11:30-12:30 OH (Thia)
CSE1 (Allen) 3rd floor breakout
12:30-13:20 Lecture
CSE2 G01 ASTs; the dynamic environment; evaluation; careful description of OCaml; S-expresions; tokenization; two-stage parsing Whiteboards Video |
07
15:30-16:30 OH (Cole)
CSE1 220 |
08
11:00-12:00 OH (Joan)
In Person CSE2 150(Bradlee room)
12:30-13:20 Lecture
CSE2 G01 Using Trefoil v2: old ideas in new clothes; Implementing Trefoil v2: ASTs in Java; careful description of Trefoil v2; implementing the dynamic envornment Whiteboards Video Demo code
23:59 HW2 due PDF handout; starter code (OCaml intro)
|
11
12:30-13:20 Lecture
CSE2 G01 Trefoil v2: phases of errors, let expressions, untyped pairs, functions; OCaml: records Whiteboards Video Demo code
15:00-16:00 OH (Deeksha)
CSE1 (Allen) 220 |
12
10:30-11:30 OH (Chongjiu)
In Person, CSE2 151 |
13
11:30-12:30 OH (Thia)
CSE1 (Allen) 3rd floor breakout |
14
Section
Type Synonyms, More General Types, Pattern Matching Slides and exercises Code (exercise solutions) Video (from a previous quarter)
15:30-16:30 OH (Cole)
CSE1 220 |
15
11:00-12:00 OH (Joan)
In Person CSE2 150(Bradlee room)
12:30-13:20 Lecture
CSE2 G01 Trefoil: implementing recursive functions; OCaml: pattern matching Whiteboards Video |
18
12:30-13:20 Lecture
CSE2 G01 OCaml: more pattern matching and nested patterns Video Demo code slash notes
15:00-16:00 OH (Deeksha)
CSE1 (Allen) 220 |
19
10:30-11:30 OH (Chongjiu)
In Person, CSE2 151 |
20
11:30-12:30 OH (Thia)
CSE1 (Allen) 3rd floor breakout
23:59 HW3 due (Implementing Trefoil v2: Expression-oriented programming)
|
21
15:30-16:30 OH (Cole)
CSE1 220 |
22
11:00-12:00 OH (Joan)
In Person CSE2 150(Bradlee room) |
25
12:30-13:20 Lecture
CSE2 G01 Trefoil: structs for variant types, careful description of structs, cond expressions; OCaml: ASTs, dynamic environments, association lists Video Demo code
15:00-16:00 OH (Deeksha)
CSE1 (Allen) 220 |
26
10:30-11:30 OH (Chongjiu)
In Person, CSE2 151 |
27
10:20-11:20 OH (Deeksha) (note the end time is 11:20!!)
CSE1 (Allen) 218
23:59 HW4 due PDF handout; starter code (OCaml variants and pattern matching)
|
28
Section
Canceled due to HW5 delayed release
15:30-16:30 OH (Cole)
CSE1 220 |
29
11:00-12:00 OH (Joan)
In Person CSE2 150(Bradlee room) |
May | ||||
Monday | Tuesday | Wednesday | Thursday | Friday |
02
12:30-13:20 Lecture
CSE2 G01 Unit, if-without-else, ignore, structural equality; anonymous functions, returning functions, our own higher-order functions Video Demo code
15:00-16:00 OH (Deeksha)
CSE1 (Allen) 220 |
03
10:30-11:30 OH (Chongjiu)
In Person, CSE2 151 |
04
11:30-12:30 OH (Thia)
CSE1 (Allen) 3rd floor breakout |
05
15:30-16:30 OH (Cole)
CSE1 220 |
06
11:00-12:00 OH (Joan)
In Person CSE2 150(Bradlee room) |
09
15:00-16:00 OH (Deeksha)
CSE1 (Allen) 220 |
10
10:30-11:30 OH (Chongjiu)
In Person, CSE2 151 |
11
11:30-12:30 OH (Thia)
CSE1 (Allen) 3rd floor breakout
12:30-13:20 Lecture
CSE2 G01 Trefoil: first-class functions; thunks and streams Video Demo code(also we updated the lecture 19 code with more explanation)
23:59 HW5 due (Implementing Trefoil v3: port to OCaml and add structs and pattern matching)
|
12
Section
Currying, Composition, and Higher-order Functions Slides Currying worksheet Currying worksheet solution Composition and Higher-order Functions worksheet Composition and Higher-order Functions worksheet solution
15:30-16:30 OH (Cole)
CSE1 220 |
13
11:00-12:00 OH (Joan)
In Person CSE2 150(Bradlee room) |
16
15:00-16:00 OH (Deeksha)
CSE1 (Allen) 220 |
17
10:30-11:30 OH (Chongjiu)
In Person, CSE2 151 |
18
11:30-12:30 OH (Thia)
CSE1 (Allen) 3rd floor breakout
12:30-13:20 Lecture
CSE2 G01 Trefoil: Two new ways to extend the language: by "expanding in the parser" and by representing Trefoil programs as data in Trefoil Video Demo code
23:59 HW6 due PDF handout; starter code (OCaml first-class functions)
|
19
Section
TBD
15:30-16:30 OH (Cole)
CSE1 220 |
20
11:00-12:00 OH (Joan)
In Person CSE2 150(Bradlee room) |
23
12:30-13:20 Lecture
CSE2 G01 Objects, pure OO Whiteboards Video Demo code (same link as last time, we just added a bit to the bottom)
15:00-16:00 OH (Deeksha)
CSE1 (Allen) 220 |
24
10:30-11:30 OH (Chongjiu)
In Person, CSE2 151 |
25
11:30-12:30 OH (Thia)
CSE1 (Allen) 3rd floor breakout |
26
Section
TBD
15:30-16:30 OH (Cole)
CSE1 220 |
27
11:00-12:00 OH (Joan)
In Person CSE2 150(Bradlee room)
12:30-13:20 Lecture
CSE2 G01 Dynamic dispatch precisely; Implementing objects |
30
Memorial Day
|
31
10:30-11:30 OH (Chongjiu)
In Person, CSE2 151 |
01
11:30-12:30 OH (Thia)
CSE1 (Allen) 3rd floor breakout
12:30-13:20 Lecture
CSE2 G01 TBD |
02
Section
TBD
15:30-16:30 OH (Cole)
CSE1 220 |
03
11:00-12:00 OH (Joan)
In Person CSE2 150(Bradlee room)
12:30-13:20 Lecture
CSE2 G01 Victory lap
23:59 HW7 due (Implementing Trefoil v4: first-class functions; OCaml mutation, thunks, promises, streams)
|
June | ||||
Monday | Tuesday | Wednesday | Thursday | Friday |
06 | 07 | 08
23:59 HW8 due (Bonus HW: objects)
|
09 | 10 |