COMP 105 Schedule

January 2019
SundayMondayTuesdayWednesdayThursdayFridaySaturday
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Introduction; programming with proof systems and algebraic laws

Read:

Topic: What is a programming language; composition; proof rules

17

Recitation: Data-driven, rule-driven programming process

18

Recitation: Data-driven, rule-driven programming process

19
20
21

No class: MLK Day

22
23

Operational semantics; metatheory

Read:

  • Ramsey, Chapter 1, Section 1.4 (Operational Semantics)

  • Ramsey, Chapter 1, Section 1.6 (Operational Semantics Revisited)

Topic: Abstract syntax and environments; Inference rules and evaluation

24

Recitation: Reading inference rules; programming demo; intro to algebraic laws

25

Recitation: Reading inference rules; programming demo; intro to algebraic laws

26
27
28

Operational semantics; metatheory

Topic: Derivations; metatheory

29
30

Scheme I: Recursive programming with lists

Read Selected parts of Ramsey, Chapter 2, as described in the homework

Topic: Coding with algebraic laws; S-expressions; recursive functions on lists

31

Recitation: Derivation trees, semantic rules, metatheory

1

Grading party for impcore.

Recitation: Derivation trees, semantic rules, metatheory

2

February 2019
SundayMondayTuesdayWednesdayThursdayFridaySaturday
27
28

Operational semantics; metatheory

Topic: Derivations; metatheory

29
30

Scheme I: Recursive programming with lists

Read Selected parts of Ramsey, Chapter 2, as described in the homework

Topic: Coding with algebraic laws; S-expressions; recursive functions on lists

31

Recitation: Derivation trees, semantic rules, metatheory

1

Grading party for impcore.

Recitation: Derivation trees, semantic rules, metatheory

2
3
4

Scheme I: Recursive programming with lists

Topic: Programming methodology; live-coding example; semantics of Scheme? (cost of cons, append and reverse; the method of accumulating parameters)

5

Homework for Operational semantics; metatheory is planned to be due.

6

Scheme II: first-class and higher-order functions

Read Selected parts of Ramsey, Chapter 2, as described in the homework.

Topic: The let family, functions as values, introduction to lambda, using lambda to create escaping functions

7

Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters

8

Grading party for opsem.

Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters

9
10
11

Scheme II: first-class and higher-order functions

Topic: Higher-order functions on lists; currying; tail calls

12

Homework for Scheme I: Recursive programming with lists is planned to be due.

13

Scheme III: continuation passing, semantics

Topic: Tail calls; continuations

14

Recitation: Higher-order functions on lists, abstracting over comparison functions

15

Grading party for scheme.

Recitation: Higher-order functions on lists, abstracting over comparison functions

16
17
18

No class: Presidents' Day

19

Homework for Scheme II: first-class and higher-order functions is planned to be due.

20

Scheme III: continuation passing, semantics

Topic: Midterm course evaluations; continuations for solving formulas

21

Introduction to ML

Read The guide Learning Standard ML

Topic: Introduction to ML

22

Grading party for hofs.

Recitation: Searching with success and failure continuations

23

Recitation: BONUS: continuations

24
25

Introduction to ML

Topic: Constructed data; Case statements and pattern matching; Introduction and elimination; Exceptions

26

Homework for Scheme III: continuation passing, semantics is planned to be due.

27

Type systems

Topic: Type systems and type checking

28

Recitation: Patterns and types in Standard ML

1

Grading party for continuations.

Recitation: Patterns and types in Standard ML

2

March 2019
SundayMondayTuesdayWednesdayThursdayFridaySaturday
24
25

Introduction to ML

Topic: Constructed data; Case statements and pattern matching; Introduction and elimination; Exceptions

26

Homework for Scheme III: continuation passing, semantics is planned to be due.

27

Type systems

Topic: Type systems and type checking

28

Recitation: Patterns and types in Standard ML

1

Grading party for continuations.

Recitation: Patterns and types in Standard ML

2
3
4

Type systems

Topic: Polymorphic type checking

5

Homework for Introduction to ML is planned to be due.

6

Type systems

Topic: Type-checking from a high level; Three environments

7

Recitation: Type rules and type checking

8

Grading party for ml.

Midterms can be picked up in morning

Recitation: Type rules and type checking

9
10
11

No class: Time available for midterm

Midterms can be picked up in morning

12

Last possible pickup for midterm

13

ML type inference

Topic: Type inference by example

14

Recitation: Programming Typed uScheme or regression testing of type checker

15

Homework for Type systems is planned to be due.

Grading party for midterm

Recitation: Programming Typed uScheme or regression testing of type checker

16
17
18

No class: Spring Break

19
20

No class: Spring Break

21
22
23
24
25

ML type inference

Topic: Making type inference precise; constraints (MAYBE solving constraints)?

26
27

ML type inference

Topic: Solving constraints; Generalization; Instantiation; Type inference at let bindings

28

Recitation: Solving conjunction constraints

29

Grading party for typesys.

Recitation: Solving conjunction constraints

30
31
1

Modules and abstract types

Read:

Topic: Introduction to data abstraction; interfaces as signatures

2

Homework for ML type inference is planned to be due.

3

Modules and abstract types

Topic: Module implementations; functors; modules example: game solver

4

Recitation: Abstraction functions, representation invariants

5

Grading party for ml-inf.

Recitation: Abstraction functions, representation invariants

6

April 2019
SundayMondayTuesdayWednesdayThursdayFridaySaturday
31
1

Modules and abstract types

Read:

Topic: Introduction to data abstraction; interfaces as signatures

2

Homework for ML type inference is planned to be due.

3

Modules and abstract types

Topic: Module implementations; functors; modules example: game solver

4

Recitation: Abstraction functions, representation invariants

5

Grading party for ml-inf.

Recitation: Abstraction functions, representation invariants

6
7
8

Lambda calculus

Read:

Topic: What's a calculus? Programming with lambda calculus. Free variables, Beta reduction, Substitution, and Small-step Semantics

9

Homework for Modules and abstract types is planned to be due.

10

Lambda calculus

Topic: Normal forms, Reduction strategies, Fixed points, Recursion equations, and the Y combinator

11

Recitation: Beta- and eta-reduction, Church numerals, Y

12

Grading party for sml.

Recitation: Beta- and eta-reduction, Church numerals, Y

13
14
15

No class: Patriots' Day

16
17

Homework for Lambda calculus is planned to be due.

Smalltalk: Object-oriented programming

Read Selected parts of Ramsey, Chapter 11

Topic: Objects; protocols; message passing

18

Recitation: Getting started with Smalltalk

19

Grading party for lambda.

Recitation: Getting started with Smalltalk

20
21
22

Smalltalk: Object-oriented programming

Topic: Inheritance

23
24

Smalltalk: Object-oriented programming

Topic: Class hierarchies; the collection classes

25

Recitation: Abstract base classes, double dispatch

26

Recitation: Abstract base classes, double dispatch

27
28
29

AMA

Topic: Ask the instructor anything. Especially about programming languages past, present, and future

30

Homework for Smalltalk: Object-oriented programming is planned to be due.

1
2
3

Final exam: 3:30 PM, Robinson 253

4

Grading party for small.

Grading party for final

May 2019
SundayMondayTuesdayWednesdayThursdayFridaySaturday
28
29

AMA

Topic: Ask the instructor anything. Especially about programming languages past, present, and future

30

Homework for Smalltalk: Object-oriented programming is planned to be due.

1
2
3

Final exam: 3:30 PM, Robinson 253

4

Grading party for small.

Grading party for final

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