January 2016 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
27 |
28 |
29 |
30 |
31 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 Introduction; imperative core; unit-testing; ASTs and environments Read:
Topic: Course intro; recursion; an imperative core; unit-testing; abstract syntax and environments |
26 |
27 Operational semantics; metatheory Read Ramsey, Chapter 2 Topic: Inference rules and evaluation; proofs and metatheory |
28 |
29 |
30 |
31 |
1 Homework for Introduction; imperative core; unit-testing; ASTs and environments is planned to be due. Operational semantics; metatheory Topic: Semantics and metatheory |
2 |
3 Scheme: Recursive programming with lists Read Ramsey, Chapter 3, Sections 3.1 through 3.6 (plus syntax and semantics in Sections 3.11 and 3.13) Topic: S-expressions, cons, and its algebraic laws; Programming with recursion and lists using case analysis |
4 |
5 |
6 |
February 2016 → |
February 2016 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
31 |
1 Homework for Introduction; imperative core; unit-testing; ASTs and environments is planned to be due. Operational semantics; metatheory Topic: Semantics and metatheory |
2 |
3 Scheme: Recursive programming with lists Read Ramsey, Chapter 3, Sections 3.1 through 3.6 (plus syntax and semantics in Sections 3.11 and 3.13) Topic: S-expressions, cons, and its algebraic laws; Programming with recursion and lists using case analysis |
4 |
5 |
6 |
7 |
8 Homework for Operational semantics; metatheory is planned to be due. Scheme: Recursive programming with lists Topic: The cost of cons, append and reverse, the method of accumulating parameters |
9 |
10 Scheme II: first-class and higher-order functions, continuation passing, semantics Read Ramsey, Chapter 3. Topic: The let family, functions as values, introduction to lambda, using lambda to create escaping functions |
11 |
12 |
13 |
14 |
15 No class: Presidents' Day |
16 |
17 Homework for Scheme: Recursive programming with lists is planned to be due. Scheme II: first-class and higher-order functions, continuation passing, semantics Topic: Higher-order functions on lists and Tail Calls |
18 Scheme II: first-class and higher-order functions, continuation passing, semantics Topic: Continuations |
19 |
20 |
21 |
22 Scheme II: first-class and higher-order functions, continuation passing, semantics Topic: Operational semantics of uScheme |
23 |
24 Introduction to ML Read:
Topic: Introduction to ML |
25 |
26 |
27 |
28 Homework for Scheme II: first-class and higher-order functions, continuation passing, semantics is planned to be due. |
29 Introduction to ML Topic: Interlude: Midterm Review. |
1 |
2 In-class midterm exam: Operational Semantics, Functional Programming |
3 |
4 |
5 |
← January 2016March 2016 → |
March 2016 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
28 Homework for Scheme II: first-class and higher-order functions, continuation passing, semantics is planned to be due. |
29 Introduction to ML Topic: Interlude: Midterm Review. |
1 |
2 In-class midterm exam: Operational Semantics, Functional Programming |
3 |
4 |
5 |
6 |
7 Introduction to ML Topic: Algebraic data types; Case statements and pattern matching; Introduction and elimination; Exceptions |
8 |
9 Type systems Read Ramsey, Chapter 7. Topic: Type systems and type checking |
10 |
11 |
12 |
13 |
14 Homework for Introduction to ML is planned to be due. Type systems Topic: Polymorphic type checking |
15 |
16 Type systems Topic: Type-checking from a high level; Three environments |
17 |
18 |
19 |
20 |
21 No class: Spring Break |
22 |
23 No class: Spring Break |
24 |
25 |
26 |
27 |
28 ML type inference Read Ramsey, Chapter 8 Topic: Type inference using constraints; Constraint solving and type inference |
29 Homework for Type systems is planned to be due. |
30 ML type inference Topic: Constraint standardization; Splitting constraints at let bindings |
31 |
1 |
2 |
← February 2016April 2016 → |
April 2016 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
27 |
28 ML type inference Read Ramsey, Chapter 8 Topic: Type inference using constraints; Constraint solving and type inference |
29 Homework for Type systems is planned to be due. |
30 ML type inference Topic: Constraint standardization; Splitting constraints at let bindings |
31 |
1 |
2 |
3 |
4 Smalltalk: Object-oriented programming Read Ramsey, Chapter 12. Introctory sections: 12.1, 12.2. Key material for some parts of homework is in Sections 12.3 and 12.5. But you do not need to digest all of those sections. The remaining sections are there in case you find them useful. Section 12.4 contains an extended example, and section 12.6 answers all detailed questions about the semantics of the language. Topic: Guest Lecture: Inheritance |
5 |
6 Homework for ML type inference is planned to be due. Smalltalk: Object-oriented programming Topic: Guest Lecture: Class hierarchies; The collection classes |
7 |
8 |
9 |
10 |
11 Standard ML Modules Read:
Topic: Introduction to modules |
12 |
13 Standard ML Modules Topic: Structures, signatures, functors |
14 |
15 |
16 |
17 Homework for Smalltalk: Object-oriented programming is planned to be due. |
18 No class: Patriots' Day |
19 |
20 Standard ML Modules Topic: Modules example: error-producing computations |
21 |
22 |
23 |
24 |
25 Lambda Calculus Read:
Topic: Programming with lambda calculus. What's a calculus? Free variables, Beta reduction, Substitution, and Small-step Semantics |
26 |
27 Homework for Standard ML Modules is planned to be due. Lambda Calculus Topic: Normal forms, Reduction strategies, Fixed points, Recursion equations, and the Y combinator |
28 |
29 |
30 |
← March 2016May 2016 → |
May 2016 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
1 |
2 Homework for Lambda Calculus is planned to be due. Retrospective Topic: Programming-languages retrospective |
3 |
4 |
5 |
6 Final exam: 8:30 to 10:30. Braker 001. |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
1 |
2 |
3 |
4 |
← April 2016 |