COMP 105 pages: | Admin | Calendar | Syllabus | ML | Homework | Solutions | Coding Style |
Coding Rubric |
Lecture Notes |
Recitation Notes |
Stats |
---|
September 2020 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
30 |
31 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 Introduction; programming with proof systems and algebraic laws Read:
Topic: What is a programming language? Using Algebraic Laws Recitation: Data-driven, rule-driven programming process |
10 Recitation: Data-driven, rule-driven programming process |
11 Recitation: Data-driven, rule-driven programming process |
12 |
13 |
14 Operational semantics; metatheory Read:
Topic: Abstract syntax and operational semantics |
15 |
16
Operational semantics; metatheory Topic: Judgments, rules, and proofs Recitation: Derivation trees, semantic rules |
17 Recitation: Derivation trees, semantic rules |
18 Grading party for impcore. Recitation: Derivation trees, semantic rules |
19 |
20 |
21 Operational semantics; metatheory Topic: Derivations and metatheory |
22 |
23 Scheme I: Recursive programming with lists and S-expressions Read:
Topic: S-expressions; recursive functions on lists Recitation: Metatheory |
24 Recitation: Metatheory |
25 Recitation: Metatheory |
26 |
27 |
28
Scheme II: first-class and higher-order functions Read:
Topic: Local binding with |
29 |
30 Scheme II: first-class and higher-order functions Topic: Higher-order functions on lists, currying, and composition Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters |
1 Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters |
2 Grading party for opsem. Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters |
3 |
October 2020 → |
October 2020 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
27 |
28
Scheme II: first-class and higher-order functions Read:
Topic: Local binding with |
29 |
30 Scheme II: first-class and higher-order functions Topic: Higher-order functions on lists, currying, and composition Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters |
1 Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters |
2 Grading party for opsem. Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters |
3 |
4 |
5
Scheme III: continuation passing, semantics Topic: Costs, tail calls, and continuations |
6 |
7 Scheme III: continuation passing, semantics Topic: Midterm course evaluations; Continuations for solving formulas Recitation: Higher-order functions on lists, abstracting over comparison functions |
8 Recitation: Higher-order functions on lists, abstracting over comparison functions |
9 Grading party for scheme. Recitation: Higher-order functions on lists, abstracting over comparison functions |
10 |
11 |
12
Introduction to ML Read:
Topic: Introduction to ML |
13 |
14 Introduction to ML Topic: Constructed data; Case statements and pattern matching; Introduction and elimination; Exceptions Recitation: Searching with success and failure continuations |
15 Recitation: Searching with success and failure continuations |
16 Grading party for hofs. Recitation: Searching with success and failure continuations |
17 |
18 |
19
Type systems Read:
Topic: Introduction to type systems and type checking |
20 |
21 Type systems Topic: Monomorphic type checking with type constructors Recitation: Patterns and types in Standard ML |
22 Recitation: Patterns and types in Standard ML |
23 Grading party for continuations. Recitation: Patterns and types in Standard ML |
24 |
25 |
26 Homework for Introduction to ML is due. Type systems Topic: Polymorphic type checking; using kinds to classify types |
27 |
28 ML type inference Topic: Type inference by example Recitation: Type rules and type checking |
29 Recitation: Type rules and type checking |
30 Grading party for ml. Recitation: Type rules and type checking |
31 |
← September 2020November 2020 → |
November 2020 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
1 |
2 ML type inference Topic: Making type inference precise; constraints and substitutions |
3 |
4 ML type inference Topic: Generalization; Instantiation; Type inference at let bindings Recitation: Solving conjunction constraints |
5 Recitation: Solving conjunction constraints |
6 Homework for Type systems is due. Recitation: Solving conjunction constraints |
7 |
8 |
9 Smalltalk: Introduction to object-oriented programming Read Selected parts of Ramsey, Chapter 11 Topic: Objects; protocols; message passing |
10 Smalltalk: Introduction to object-oriented programming Topic: Initialization |
11 No class: Veteran's Day Recitation: Getting started with Smalltalk |
12 Recitation: Getting started with Smalltalk |
13 Grading party for typesys. Recitation: Getting started with Smalltalk |
14 |
15 |
16 Smalltalk: Concepts of object-oriented programming Read Selected parts of Ramsey, Chapter 11 Topic: OOP Case Study: The Number Hierarchy |
17 Homework for ML type inference is due. |
18 Smalltalk: Concepts of object-oriented programming Topic: Subtyping and Equality Recitation: Abstract base classes, double dispatch |
19 Recitation: Abstract base classes, double dispatch |
20 Grading party for ml-inf. Recitation: Abstract base classes, double dispatch |
21 |
22
|
23 Modules and abstract types Read:
Topic: Introduction to data abstraction; interfaces as signatures |
24 |
25 No class: Thanksgiving Break |
26 |
27 |
28 |
29 |
30 Modules and abstract types Topic: Module implementations; functors; modules example: game solver |
1 |
2 Homework for Smalltalk: Concepts of object-oriented programming is planned to be due. Lambda calculus Read:
Topic: What's a calculus? Programming with lambda calculus. Free variables, beta reduction, substitution, and small-step semantics Recitation: Modules: Abstraction functions, representation invariants |
3 Recitation: Modules: Abstraction functions, representation invariants |
4 Grading party for small. Grading party for small-adv. Recitation: Modules: Abstraction functions, representation invariants |
5 |
← October 2020December 2020 → |
December 2020 | ||||||
---|---|---|---|---|---|---|
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |
29 |
30 Modules and abstract types Topic: Module implementations; functors; modules example: game solver |
1 |
2 Homework for Smalltalk: Concepts of object-oriented programming is planned to be due. Lambda calculus Read:
Topic: What's a calculus? Programming with lambda calculus. Free variables, beta reduction, substitution, and small-step semantics Recitation: Modules: Abstraction functions, representation invariants |
3 Recitation: Modules: Abstraction functions, representation invariants |
4 Grading party for small. Grading party for small-adv. Recitation: Modules: Abstraction functions, representation invariants |
5 |
6 |
7 Producing software with integrity Read:
Topic: Impact of low-quality software; Techniques for producing high-assurance software; Misaligned incentives and market failures; Possible policy remedies |
8 |
9
Retrospective Topic: AMA with the instructor. Emphasizes programming-languages past, present, and future Recitation: Coding with lambda calculus, Church numerals, Y |
10 Recitation: Coding with lambda calculus, Church numerals, Y |
11 Grading party for sml. Recitation: Coding with lambda calculus, Church numerals, Y |
12 |
13 |
14 |
15 Final exam: 3:30pm ET |
16 |
17 |
18 Grading party for final |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
1 |
2 |
← November 2020 |