COMP 105 pages:  Admin  Calendar  Syllabus  ML  Homework  Solutions  Coding Style 
Coding Rubric 
Lecture Notes 
Recitation Notes 
Stats 

September 2018  

Sunday  Monday  Tuesday  Wednesday  Thursday  Friday  Saturday 
26 
27 
28 
29 
30 
31 
1 
2 
3 
4 
5 Introduction; programming with proof systems and algebraic laws Read:
Topic: What is a programming language; composition; proof rules 
6 Recitation: Datadriven, ruledriven programming process 
7 Recitation: Datadriven, ruledriven programming process 
8 
9 
10 Operational semantics; metatheory Read:
Topic: Abstract syntax and environments; Inference rules and evaluation 
11

12 Operational semantics; metatheory Topic: Derivations; metatheory 
13 Recitation: Derivation trees, semantic rules, metatheory 
14 Recitation: Derivation trees, semantic rules, metatheory 
15 
16 
17 Scheme I: Recursive programming with lists Read Selected parts of Ramsey, Chapter 2, as described in the homework Topic: Coding with algebraic laws; Sexpressions; recursive functions on lists 
18

19 Scheme I: Recursive programming with lists Topic: Programming methodology; livecoding example 
20 Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters 
21 Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters 
22 
23 
24 Scheme II: firstclass and higherorder functions Read Selected parts of Ramsey, Chapter 2, as described in the homework. Topic: The 
25

26 Scheme II: firstclass and higherorder functions Topic: Higherorder functions on lists; currying; tail calls 
27 Recitation: Higherorder functions on lists, abstracting over comparison functions 
28 Recitation: Higherorder functions on lists, abstracting over comparison functions 
29 
30 
1 Scheme III: continuation passing, semantics Topic: Tail calls; Continuations 
2

3 Scheme III: continuation passing, semantics Topic: Midterm course evaluations; Continuations for solving formulas 
4 Recitation: Searching with success and failure continuations 
5 Recitation: Searching with success and failure continuations 
6 
October 2018 → 
October 2018  

Sunday  Monday  Tuesday  Wednesday  Thursday  Friday  Saturday 
30 
1 Scheme III: continuation passing, semantics Topic: Tail calls; Continuations 
2

3 Scheme III: continuation passing, semantics Topic: Midterm course evaluations; Continuations for solving formulas 
4 Recitation: Searching with success and failure continuations 
5 Recitation: Searching with success and failure continuations 
6 
7 
8 No class: Indigenous Peoples' Day 
9
Introduction to ML Read The guide Learning Standard ML Topic: Introduction to ML 
10 Introduction to ML Topic: Constructed data; Case statements and pattern matching; Introduction and elimination; Exceptions 
11 Recitation: Patterns and types in Standard ML 
12 Recitation: Patterns and types in Standard ML 
13 
14 
15 Type systems Topic: Type systems and type checking 
16 Homework for Introduction to ML is due. 
17 Type systems Topic: Polymorphic type checking 
18 Recitation: Type rules and type checking 
19 Recitation: Type rules and type checking 
20 
21 
22 Type systems Topic: Typechecking from a high level; Three environments 
23 
24 ML type inference Topic: Type inference by example 
25 Recitation: Programming Typed uScheme or regression testing of type checker 
26 Homework for Type systems is due. Recitation: Programming Typed uScheme or regression testing of type checker 
27 
28 
29 ML type inference Topic: Making type inference precise; constraints 
30 
31 ML type inference Topic: Solving constraints; Generalization; Instantiation; Type inference at let bindings 
1 Recitation: Solving conjunction constraints 
2 Recitation: Solving conjunction constraints 
3 
← September 2018November 2018 → 
November 2018  

Sunday  Monday  Tuesday  Wednesday  Thursday  Friday  Saturday 
28 
29 ML type inference Topic: Making type inference precise; constraints 
30 
31 ML type inference Topic: Solving constraints; Generalization; Instantiation; Type inference at let bindings 
1 Recitation: Solving conjunction constraints 
2 Recitation: Solving conjunction constraints 
3 
4 
5 Modules and abstract types Read:
Topic: Introduction to data abstraction; interfaces as signatures 
6 Homework for ML type inference is due. 
7 Modules and abstract types Topic: Module implementations; functors; modules example: game solver 
8 Recitation: Modules: Abstraction functions, representation invariants 
9 Recitation: Modules: Abstraction functions, representation invariants 
10 
11 
12 No class: Veteran's Day 
13 
14
Lambda calculus Read:
Topic: What's a calculus? Programming with lambda calculus. Free variables, beta reduction, substitution, and smallstep semantics 
15 Recitation: Coding with lambda calculus, Church numerals, Y 
16 Midterm pickup between 10:00am and 3:00pm Recitation: Coding with lambda calculus, Church numerals, Y 
17 
18 
19 No class: Time for midterm Midterm pickup between 10:00am and 3:00pm 
20 Midterm pickup between 10:00am and 3:00pm 
21 No class: Thanksgiving Break 
22 
23 
24 
25 
26 Lambda calculus Topic: Normal forms, reduction strategies, fixed points, recursion equations, and the Y combinator 
27 
28 Smalltalk: Objectoriented programming Read Selected parts of Ramsey, Chapter 11 Topic: Objects; protocols; message passing 
29 Recitation: Getting started with Smalltalk (optional) 
30 Homework for Lambda calculus is due. Recitation: Getting started with Smalltalk (optional) 
1 
← October 2018December 2018 → 
December 2018  

Sunday  Monday  Tuesday  Wednesday  Thursday  Friday  Saturday 
25 
26 Lambda calculus Topic: Normal forms, reduction strategies, fixed points, recursion equations, and the Y combinator 
27 
28 Smalltalk: Objectoriented programming Read Selected parts of Ramsey, Chapter 11 Topic: Objects; protocols; message passing 
29 Recitation: Getting started with Smalltalk (optional) 
30 Homework for Lambda calculus is due. Recitation: Getting started with Smalltalk (optional) 
1 
2 
3 Smalltalk: Objectoriented programming Topic: Inheritance 
4 
5 Smalltalk: Objectoriented programming Topic: Class hierarchies; The collection classes 
6 Recitation: Abstract base classes, double dispatch 
7 Recitation: Abstract base classes, double dispatch 
8 
9 
10 Retrospective Topic: Programminglanguages retrospective 
11 Homework for Smalltalk: Objectoriented programming is planned to be due. 
12 
13 Final exam: 3:30 PM to 5:30 PM. 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
1 
2 
3 
4 
5 
← November 2018 