2 | Date | Reading | Supp. reading | Supp. video | Lecture | Lab | Exam | Code review | Office hours | Pset due | |||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | Mon | 1/22/2024 | * | ||||||||||
4 | Tue | 1/23/2024 | 1 | Introduction; course structure | * | ||||||||
5 | Wed | 1/24/2024 | |||||||||||
6 | Thu | 1/25/2024 | Syllabus; Ch. 1-4 | W1:vii-33 (basics) | Chapter 1-4 Videos | 2 | Functional programming introduced | ||||||
7 | Fri | 1/26/2024 | |||||||||||
8 | Sat | 1/27/2024 | * | ||||||||||
9 | Sun | 1/28/2024 | * | ||||||||||
10 | Mon | 1/29/2024 | * | 0 | |||||||||
11 | Tue | 1/30/2024 | Lab 1 preview; Ch. 5-6; On Doing Well in CS51; Lab procedures for CS51 | W1:45-53 (higher-order functions, map) | Chapter 5-6 Videos | 1 | first-order functional programming | - | |||||
12 | Wed | 1/31/2024 | |||||||||||
13 | Thu | 2/1/2024 | Lab 2 preview; Ch. 7-8 | W1:67-71 (currying, partial evaluation); 117-121 (libraries); W2:1-7 (fold) | Chapter 7-8 Videos | 2 | lists, pairs, higher-order functional programming | ||||||
14 | Fri | 2/2/2024 | * | ||||||||||
15 | Sat | 2/3/2024 | * | ||||||||||
16 | Sun | 2/4/2024 | * | ||||||||||
17 | Mon | 2/5/2024 | * | ||||||||||
18 | Tue | 2/6/2024 | Lab 3 preview; Ch. 9-9.6 | W2:15-17 (records); W1:111-115 (floats) | Chapter 9 Video | 3 | polymorphism, records | * | |||||
19 | Wed | 2/7/2024 | 1 | ||||||||||
20 | Thu | 2/8/2024 | Lab 4 preview; Ch. 10 | W1:55-59 (exceptions); 61-65 (tuples, polymorphism) | Chapter 10 Video | 4 | error handling, options, exceptions | ||||||
21 | Fri | 2/9/2024 | * | ||||||||||
22 | Sat | 2/10/2024 | * | ||||||||||
23 | Sun | 2/11/2024 | * | ||||||||||
24 | Mon | 2/12/2024 | |||||||||||
25 | Tue | 2/13/2024 | Lab D preview | W1:89-97 (printing); W2:57-62 (printf) | D | debugging | |||||||
26 | Wed | 2/14/2024 | * | 2 | |||||||||
27 | Thu | 2/15/2024 | On Doing Well in CS51; Lab 5 preview; Ch. 11-11.2 | W1:73-79 (algebraic data types); On Right Versus Wrong | Chapter 11 Video (0:00-10:15) | 5 | algebraic data types | ||||||
28 | Fri | 2/16/2024 | * | ||||||||||
29 | Sat | 2/17/2024 | * | ||||||||||
30 | Sun | 2/18/2024 | * | ||||||||||
31 | Mon | 2/19/2024 | * | ||||||||||
32 | Tue | 2/20/2024 | Lab 6 preview; Ch. 11.3-end | W1:81-87 (binary trees) | Chapter 11 Video (10:15-14:52) | 6 | recursive algebraic data types | * | |||||
33 | Wed | 2/21/2024 | 3 | ||||||||||
34 | Thu | 2/22/2024 | Lab 7 preview; Ch. 12-12.4 | W1:123-131 (modules) | Chapter 12 Video (0:00-10:38) | 7 | modules, abstract data types | ||||||
35 | Fri | 2/23/2024 | * | ||||||||||
36 | Sat | 2/24/2024 | * | ||||||||||
37 | Sun | 2/25/2024 | * | ||||||||||
38 | Mon | 2/26/2024 | * | ||||||||||
39 | Tue | 2/27/2024 | Lab 8 preview; Ch. 12.5-end | W2:79-91 (set modules); RWO chapter 9 (functors) | Chapter 12 Video (10:38-26:32) | 8 | functors | * | |||||
40 | Wed | 2/28/2024 | 4 | ||||||||||
41 | Thu | 2/29/2024 | Lab 9 preview; Ch. 13 | W1:35-44 (substitution model) | Chapter 13 Video | 9 | substitution semantics | ||||||
42 | Fri | 3/1/2024 | * | midterm review | |||||||||
43 | Sat | 3/2/2024 | * | ||||||||||
44 | Sun | 3/3/2024 | * | ||||||||||
45 | Mon | 3/4/2024 | exam 1 | — | |||||||||
46 | Tue | 3/5/2024 | https://url.cs51.io/ethics2024reading | W2:71-78 (tail recursion) | E | Embedded EthiCS | — | ||||||
47 | Wed | 3/6/2024 | |||||||||||
48 | Thu | 3/7/2024 | Lab 10 preview; Ch. 14 | Chapter 14 Video | 10 | complexity, big-O, recurrences | |||||||
49 | Fri | 3/8/2024 | |||||||||||
50 | Sat | 3/9/2024 | |||||||||||
51 | Sun | 3/10/2024 | |||||||||||
52 | Mon | 3/11/2024 | |||||||||||
53 | Tue | 3/12/2024 | |||||||||||
54 | Wed | 3/13/2024 | |||||||||||
55 | Thu | 3/14/2024 | |||||||||||
56 | Fri | 3/15/2024 | |||||||||||
57 | Sat | 3/16/2024 | |||||||||||
58 | Sun | 3/17/2024 | |||||||||||
59 | Mon | 3/18/2024 | * | ||||||||||
60 | Tue | 3/19/2024 | Lab 12 preview; Ch. 15 | Chapter 15 Video | 12 | refs, scope | |||||||
61 | Wed | 3/20/2024 | 5 | ||||||||||
62 | Thu | 3/21/2024 | Lab 13 preview; Ch. 16 | W1:99-109 (refs) | Chapter 16 Video | 13 | loops | ||||||
63 | Fri | 3/22/2024 | * | ||||||||||
64 | Sat | 3/23/2024 | * | ||||||||||
65 | Sun | 3/24/2024 | * | ||||||||||
66 | Mon | 3/25/2024 | * | ethics 1 | |||||||||
67 | Tue | 3/26/2024 | Lab 14 preview; Ch. 17-17.2 | Chapter 17 Video (00:00-16:19) | 14 | lazy evaluation | * | ||||||
68 | Wed | 3/27/2024 | 6 | ||||||||||
69 | Thu | 3/28/2024 | Lab 15 preview; Ch. 17.3-end of 17 | W2:9-14 (lazy lists) | Chapter 17 Video (16:19-22:20) | 15 | streams | ||||||
70 | Fri | 3/29/2024 | * | ||||||||||
71 | Sat | 3/30/2024 | * | ||||||||||
72 | Sun | 3/31/2024 | * | ||||||||||
73 | Mon | 4/1/2024 | * | ethics 2 | |||||||||
74 | Tue | 4/2/2024 | Lab 16 preview; Ch. 18 | Ocaml Reference Manual, chapter 3 (https://caml.inria.fr/pub/docs/manual-ocaml-4.09/objectexamples.html) and Ocaml graphics module documentation (https://ocaml.github.io/graphics/graphics/Graphics/index.html) | Chapter 18 Video | 16 | objects | * | |||||
75 | Wed | 4/3/2024 | 7 | ||||||||||
76 | Thu | 4/4/2024 | Lab 17 preview; Ch. 18 | 17 | more objects | ||||||||
77 | Fri | 4/5/2024 | * | ||||||||||
78 | Sat | 4/6/2024 | * | ||||||||||
79 | Sun | 4/7/2024 | * | ||||||||||
80 | Mon | 4/8/2024 | * | ||||||||||
81 | Tue | 4/9/2024 | Lab 18 preview; Ch. 19 | Chapter 19 Video | 18 | environment semantics | * | ||||||
82 | Wed | 4/10/2024 | |||||||||||
83 | Thu | 4/11/2024 | Lab 19 preview; the OCaml Array library documentation at https://v2.ocaml.org/api/Array.html | 19 | synthesis 2 | ||||||||
84 | Fri | 4/12/2024 | * | alternative project proposal | |||||||||
85 | Sat | 4/13/2024 | * | ||||||||||
86 | Sun | 4/14/2024 | * | 8 | |||||||||
87 | Mon | 4/15/2024 | — | alternative project proposals approved | |||||||||
88 | Tue | 4/16/2024 | Lab 20 preview | 20 | synthesis 3 | — | |||||||
89 | Wed | 4/17/2024 | |||||||||||
90 | Thu | 4/18/2024 | No reading | 3 | Guest lecture: TBD | ||||||||
91 | Fri | 4/19/2024 | * | midterm review | |||||||||
92 | Sat | 4/20/2024 | * | ||||||||||
93 | Sun | 4/21/2024 | * | ||||||||||
94 | Mon | 4/22/2024 | — | alternative project progress report | |||||||||
95 | Tue | 4/23/2024 | No reading | 4 | Conclusion: next steps | — | |||||||
96 | Wed | 4/24/2024 | exam 2 | ||||||||||
97 | Thu | 4/25/2024 | |||||||||||
98 | Fri | 4/26/2024 | |||||||||||
99 | Sat | 4/27/2024 | * (afternoon) (2-4) | ||||||||||
100 | Sun | 4/28/2024 | * (afternoon) (2-4) | ||||||||||
101 | Mon | 4/29/2024 | * (afternoon) (2-4) | ||||||||||
102 | Tue | 4/30/2024 | * (afternoon) (1-5) | ||||||||||
103 | Wed | 5/1/2024 | project | ||||||||||
104 | Thu | 5/2/2024 | |||||||||||
105 | Fri | 5/3/2024 | |||||||||||
106 | Sat | 5/4/2024 | |||||||||||
107 | Sun | 5/5/2024 | |||||||||||
108 | Mon | 5/6/2024 | |||||||||||
109 | Tue | 5/7/2024 | |||||||||||
110 | Wed | 5/8/2024 | |||||||||||
111 | Thu | 5/9/2024 | |||||||||||
112 | Fri | 5/10/2024 |