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: Datadriven, ruledriven programming process 
10 Recitation: Datadriven, ruledriven programming process 
11 Recitation: Datadriven, ruledriven 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 Sexpressions Read:
Topic: Sexpressions; recursive functions on lists Recitation: Metatheory 
24 Recitation: Metatheory 
25 Recitation: Metatheory 
26 
27 
28
Scheme II: firstclass and higherorder functions Read:
Topic: Local binding with 
29 
30 Scheme II: firstclass and higherorder functions Topic: Higherorder 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: firstclass and higherorder functions Read:
Topic: Local binding with 
29 
30 Scheme II: firstclass and higherorder functions Topic: Higherorder 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: Higherorder functions on lists, abstracting over comparison functions 
8 Recitation: Higherorder functions on lists, abstracting over comparison functions 
9 Grading party for scheme. Recitation: Higherorder 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 objectoriented programming Read Selected parts of Ramsey, Chapter 11 Topic: Objects; protocols; message passing 
10 Smalltalk: Introduction to objectoriented 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 objectoriented 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 objectoriented programming Topic: Subtyping and Equality Recitation: Abstract base classes, double dispatch 
19 Recitation: Abstract base classes, double dispatch 
20 Grading party for mlinf. 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 objectoriented programming is planned to be due. Lambda calculus Read:
Topic: What's a calculus? Programming with lambda calculus. Free variables, beta reduction, substitution, and smallstep semantics Recitation: Modules: Abstraction functions, representation invariants 
3 Recitation: Modules: Abstraction functions, representation invariants 
4 Grading party for small. Grading party for smalladv. 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 objectoriented programming is planned to be due. Lambda calculus Read:
Topic: What's a calculus? Programming with lambda calculus. Free variables, beta reduction, substitution, and smallstep semantics Recitation: Modules: Abstraction functions, representation invariants 
3 Recitation: Modules: Abstraction functions, representation invariants 
4 Grading party for small. Grading party for smalladv. Recitation: Modules: Abstraction functions, representation invariants 
5 
6 
7 Producing software with integrity Read:
Topic: Impact of lowquality software; Techniques for producing highassurance software; Misaligned incentives and market failures; Possible policy remedies 
8 
9
Retrospective Topic: AMA with the instructor. Emphasizes programminglanguages 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 