COMP 105 Schedule

September 2018
SundayMondayTuesdayWednesdayThursdayFridaySaturday
26
27
28
29
30
31
1
2
3
4
5

Introduction; programming with proof systems and algebraic laws

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

6

Recitation: Data-driven, rule-driven programming process

7

Recitation: Data-driven, rule-driven programming process

8
9
10

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

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; S-expressions; recursive functions on lists

18
19

Scheme I: Recursive programming with lists

Topic: Programming methodology; live-coding 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: 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

25
26

Scheme II: first-class and higher-order functions

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

27

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

28

Recitation: Higher-order 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
SundayMondayTuesdayWednesdayThursdayFridaySaturday
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
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: Type-checking 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

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

November 2018
SundayMondayTuesdayWednesdayThursdayFridaySaturday
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
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 small-step 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: Object-oriented programming

Read Selected parts of Ramsey, Chapter 11

Topic: Objects; protocols; message passing

29

Recitation: Getting started with Smalltalk (optional)

30

Recitation: Getting started with Smalltalk (optional)

1

December 2018
SundayMondayTuesdayWednesdayThursdayFridaySaturday
25
26

Lambda calculus

Topic: Normal forms, reduction strategies, fixed points, recursion equations, and the Y combinator

27
28

Smalltalk: Object-oriented programming

Read Selected parts of Ramsey, Chapter 11

Topic: Objects; protocols; message passing

29

Recitation: Getting started with Smalltalk (optional)

30

Recitation: Getting started with Smalltalk (optional)

1
2
3

Smalltalk: Object-oriented programming

Topic: Inheritance

4
5

Smalltalk: Object-oriented 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: Programming-languages retrospective

11

Homework for Smalltalk: Object-oriented 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