COMP 105 pages: | Admin | Calendar | Syllabus | ML | Homework | Solutions | Coding Style |
Coding Rubric |
Lecture Notes |
Recitation Notes |
Stats |
---|
January 2019 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
30 |
31 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 Introduction; programming with proof systems and algebraic laws Read:
Topic: What is a programming language; composition; proof rules |
17 Recitation: Data-driven, rule-driven programming process |
18 Recitation: Data-driven, rule-driven programming process |
19 |
20 |
21 No class: MLK Day |
22 |
23 Operational semantics; metatheory Read:
Topic: Abstract syntax and environments; Inference rules and evaluation |
24 Recitation: Reading inference rules; programming demo; intro to algebraic laws |
25 Recitation: Reading inference rules; programming demo; intro to algebraic laws |
26 |
27 |
28 Operational semantics; metatheory Topic: Derivations |
29
|
30 Operational semantics; metatheory Topic: Metatheory; location semantics |
31 Recitation: Derivation trees, semantic rules, metatheory |
1 Grading party for impcore. Recitation: Derivation trees, semantic rules, metatheory |
2 |
February 2019 → |
February 2019 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
27 |
28 Operational semantics; metatheory Topic: Derivations |
29
|
30 Operational semantics; metatheory Topic: Metatheory; location semantics |
31 Recitation: Derivation trees, semantic rules, metatheory |
1 Grading party for impcore. Recitation: Derivation trees, semantic rules, metatheory |
2 |
3 |
4 Scheme I: Recursive programming with lists Read:
Topic: S-expressions; recursive functions on lists; costs |
5
|
6 Scheme II: first-class and higher-order functions Read:
Topic: The |
7 Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters |
8 Grading party for opsem. Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters |
9 |
10 |
11 Scheme II: first-class and higher-order functions Topic: Higher-order functions on lists; currying; tail calls |
12
|
13 Scheme III: continuation passing, semantics Topic: Tail calls; continuations |
14 Recitation: Higher-order functions on lists, abstracting over comparison functions |
15 Grading party for scheme. Recitation: Higher-order functions on lists, abstracting over comparison functions |
16 |
17 |
18 No class: Presidents' Day |
19
|
20 Scheme III: continuation passing, semantics Topic: Midterm course evaluations; continuations for solving formulas |
21 Introduction to ML Read:
Topic: Introduction to ML |
22 Grading party for hofs. Recitation: Searching with success and failure continuations |
23 Recitation: BONUS: continuations |
24 |
25 Introduction to ML Topic: Constructed data; Case statements and pattern matching; Introduction and elimination; Exceptions |
26
|
27 Type systems Read:
Topic: Type systems and type checking |
28 Recitation: Patterns and types in Standard ML |
1 Grading party for continuations. Recitation: Patterns and types in Standard ML |
2 |
← January 2019March 2019 → |
March 2019 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
24 |
25 Introduction to ML Topic: Constructed data; Case statements and pattern matching; Introduction and elimination; Exceptions |
26
|
27 Type systems Read:
Topic: Type systems and type checking |
28 Recitation: Patterns and types in Standard ML |
1 Grading party for continuations. Recitation: Patterns and types in Standard ML |
2 |
3 |
4 Type systems Topic: Polymorphic type checking |
5 Homework for Introduction to ML is due. |
6 Type systems Topic: Type-checking from a high level; Three environments |
7 Recitation: Type rules and type checking |
8 Grading party for ml. Midterms can be picked up in morning Recitation: Type rules and type checking |
9 |
10 |
11 No class: Time available for midterm Midterms can be picked up in morning |
12 Last possible pickup for midterm |
13 ML type inference Topic: Type inference by example |
14 Recitation: Programming Typed uScheme or regression testing of type checker |
15 Homework for Type systems is due. Grading party for midterm Recitation: Programming Typed uScheme or regression testing of type checker |
16 |
17 |
18 No class: Spring Break |
19 |
20 No class: Spring Break |
21 |
22 |
23 |
24 |
25 ML type inference Topic: Making type inference precise; constraints (MAYBE solving constraints)? |
26 |
27 ML type inference Topic: Solving constraints; Generalization; Instantiation; Type inference at let bindings |
28 Recitation: Solving conjunction constraints |
29 Grading party for typesys. Recitation: Solving conjunction constraints |
30 |
31 |
1 Modules and abstract types Read:
Topic: Introduction to data abstraction; interfaces as signatures |
2 Homework for ML type inference is due. |
3 Modules and abstract types Topic: Module implementations; functors; modules example: game solver |
4 Recitation: Abstraction functions, representation invariants |
5 Grading party for ml-inf. Recitation: Abstraction functions, representation invariants |
6 |
← February 2019April 2019 → |
April 2019 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
31 |
1 Modules and abstract types Read:
Topic: Introduction to data abstraction; interfaces as signatures |
2 Homework for ML type inference is due. |
3 Modules and abstract types Topic: Module implementations; functors; modules example: game solver |
4 Recitation: Abstraction functions, representation invariants |
5 Grading party for ml-inf. Recitation: Abstraction functions, representation invariants |
6 |
7 |
8 Lambda calculus Read:
Topic: What's a calculus? Programming with lambda calculus. Free variables, Beta reduction, Substitution, and Small-step Semantics |
9
|
10 Lambda calculus Topic: Normal forms, Reduction strategies, Fixed points, Recursion equations, and the Y combinator |
11 Recitation: Beta- and eta-reduction, Church numerals, Y |
12 Grading party for sml. Recitation: Beta- and eta-reduction, Church numerals, Y |
13 |
14 |
15 No class: Patriots' Day |
16 |
17 Homework for Lambda calculus is due. Smalltalk: Object-oriented programming Read:
Topic: Objects; protocols; message passing |
18 Recitation: Getting started with Smalltalk |
19 Grading party for lambda. Recitation: Getting started with Smalltalk |
20 |
21 |
22 Smalltalk: Object-oriented programming Topic: Inheritance |
23 |
24 Smalltalk: Object-oriented programming Topic: Class hierarchies; the collection classes |
25 Recitation: Abstract base classes, double dispatch |
26 Recitation: Abstract base classes, double dispatch |
27 |
28 |
29 AMA Topic: Ask the instructor anything. Especially about programming languages past, present, and future |
30
|
1 |
2 |
3 Final exam: 3:30 PM, Braker 001 |
4 Grading party for small. Grading party for final |
← March 2019May 2019 → |
May 2019 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
28 |
29 AMA Topic: Ask the instructor anything. Especially about programming languages past, present, and future |
30
|
1 |
2 |
3 Final exam: 3:30 PM, Braker 001 |
4 Grading party for small. Grading party for final |
5 |
6 |
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 |
← April 2019 |