COMP 105 Schedule

September 2020
SundayMondayTuesdayWednesdayThursdayFridaySaturday
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 let, functions as values, introduction to lambda, using lambda to create escaping functions

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
SundayMondayTuesdayWednesdayThursdayFridaySaturday
27
28

Scheme II: first-class and higher-order functions

Read:

Topic: Local binding with let, functions as values, introduction to lambda, using lambda to create escaping functions

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

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

November 2020
SundayMondayTuesdayWednesdayThursdayFridaySaturday
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

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
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

December 2020
SundayMondayTuesdayWednesdayThursdayFridaySaturday
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

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