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

January 2018  

Sunday  Monday  Tuesday  Wednesday  Thursday  Friday  Saturday 
31 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 No recitations today. 
19 No recitations today. 
20 
21 
22 Introduction; imperative core; unittesting; ASTs and environments Read:
Topic: Course intro; induction and recursion; an imperative core; unittesting 
23 
24 Operational semantics; metatheory Read:
Topic: Abstract syntax and environments; Inference rules and evaluation 
25 Recitation: Contracts, unit tests, recursion, proof systems 
26 Recitation: Contracts, unit tests, recursion, proof systems 
27 
28 
29 Operational semantics; metatheory Topic: Derivations; metatheory 
30

31 Scheme I: Recursive programming with lists Read Selected parts of Ramsey, Chapter 2, as described in the homework Topic: Metatheory wrapup; Sexpressions; 
1 Recitation: Derivation trees, semantic rules, metatheory 
2 Recitation: Derivation trees, semantic rules, metatheory 
3 
February 2018 → 
February 2018  

Sunday  Monday  Tuesday  Wednesday  Thursday  Friday  Saturday 
28 
29 Operational semantics; metatheory Topic: Derivations; metatheory 
30

31 Scheme I: Recursive programming with lists Read Selected parts of Ramsey, Chapter 2, as described in the homework Topic: Metatheory wrapup; Sexpressions; 
1 Recitation: Derivation trees, semantic rules, metatheory 
2 Recitation: Derivation trees, semantic rules, metatheory 
3 
4 
5 Scheme I: Recursive programming with lists Topic: The cost of 
6

7 Scheme II: firstclass and higherorder functions Read Selected parts of Ramsey, Chapter 2, as described in the homework. Topic: The 
8 Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters 
9 Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters 
10 
11 
12 Scheme II: firstclass and higherorder functions Topic: Higherorder functions on lists; currying; tail calls 
13

14 Scheme III: continuation passing, semantics Topic: Continuations 
15 Recitation: Higherorder functions on lists, abstracting over comparison functions 
16 Recitation: Higherorder functions on lists, abstracting over comparison functions 
17 
18 
19 No class: Presidents' Day 
20

21 Scheme III: continuation passing, semantics Topic: Midterm course evaluations; Operational semantics of uScheme 
22 Introduction to ML Read The guide Learning Standard ML Topic: Introduction to ML No recitations today (makeups Saturday or Sunday). 
23 Recitation: Searching with success and failure continuations 
24 Recitation: Searching with success and failure continuations: 10:30am, 12:00noon, 3:00pm, 4:30pm 
25 
26 Introduction to ML Topic: Constructed data; Case statements and pattern matching; Introduction and elimination; Exceptions 
27

28 Type systems Topic: Type systems and type checking 
1 Recitation: Patterns and types in Standard ML 
2 Recitation: Patterns and types in Standard ML 
3 
← January 2018March 2018 → 
March 2018  

Sunday  Monday  Tuesday  Wednesday  Thursday  Friday  Saturday 
25 
26 Introduction to ML Topic: Constructed data; Case statements and pattern matching; Introduction and elimination; Exceptions 
27

28 Type systems Topic: Type systems and type checking 
1 Recitation: Patterns and types in Standard ML 
2 Recitation: Patterns and types in Standard ML 
3 
4 
5 Type systems Topic: Polymorphic type checking 
6 Homework for Introduction to ML is due. 
7 No class: Time available for midterm Midterms can be picked up in morning 
8 Recitation: Type rules and type checking 
9 Last possible midterm dropoff at 1:00PM Recitation: Type rules and type checking 
10 
11 
12 Type systems Topic: Typechecking from a high level; Three environments 
13 
14 ML type inference Topic: Type inference by example 
15 Recitation: Programming Typed uScheme or regression testing of type checker 
16 Homework for Type systems is due. Recitation: Programming Typed uScheme or regression testing of type checker 
17 
18 
19 No class: Spring Break 
20 
21 No class: Spring Break 
22 
23 
24 
25 
26 ML type inference Topic: Type inference and constraint solving 
27 
28 ML type inference Topic: Generalization; Instantiation; Type inference at let bindings 
29 Recitation: Solving conjunction constraints 
30 Recitation: Solving conjunction constraints 
31 
← February 2018April 2018 → 
April 2018  

Sunday  Monday  Tuesday  Wednesday  Thursday  Friday  Saturday 
1 
2 Lambda calculus Read:
Topic: What's a calculus? Programming with lambda calculus. Free variables, Beta reduction, Substitution, and Smallstep Semantics 
3 Homework for ML type inference is due. 
4 Lambda calculus Topic: Normal forms, Reduction strategies, Fixed points, Recursion equations, and the Y combinator 
5 Recitation: Beta and etareduction, Church numerals, Y 
6 Recitation: Beta and etareduction, Church numerals, Y 
7 
8 
9 Modules and abstract types Read:
Topic: Introduction to data abstraction; signatures and structures 
10 Homework for Lambda calculus is planned to be due. 
11 Modules and abstract types Topic: Functors; Modules example: errorproducing computations 
12 Recitation: Abstraction functions, representation invariants 
13 Recitation: Abstraction functions, representation invariants 
14 
15 
16 No class: Patriots' Day 
17 
18 Smalltalk: Objectoriented programming Read Selected parts of Ramsey, Chapter 11 Topic: Objects; protocols; message passing 
19 Homework for Modules and abstract types is planned to be due. 
20 
21 
22 
23 Smalltalk: Objectoriented programming Topic: Inheritance 
24 
25 Smalltalk: Objectoriented programming Topic: Class hierarchies; The collection classes 
26 Recitation: Abstract base classes, double dispatch 
27 Recitation: Abstract base classes, double dispatch 
28 
29 
30 Retrospective Topic: Programminglanguages retrospective 
1 Homework for Smalltalk: Objectoriented programming is planned to be due. 
2 
3 
4 
5 
← March 2018May 2018 → 
May 2018  

Sunday  Monday  Tuesday  Wednesday  Thursday  Friday  Saturday 
29 
30 Retrospective Topic: Programminglanguages retrospective 
1 Homework for Smalltalk: Objectoriented programming is planned to be due. 
2 
3 
4 
5 
6 
7 Final exam: 12:00 noon, Barnum 008 
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 
← April 2018 