Course schedule

January 2016
SundayMondayTuesdayWednesdayThursdayFridaySaturday
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

Introduction; imperative core; unit-testing; ASTs and environments

Read:

Topic: Course intro; recursion; an imperative core; unit-testing; abstract syntax and environments

26
27

Operational semantics; metatheory

Read Ramsey, Chapter 2

Topic: Inference rules and evaluation; proofs and metatheory

28
29
30
31
1

Homework for Introduction; imperative core; unit-testing; ASTs and environments is planned to be due.

Operational semantics; metatheory

Topic: Semantics and metatheory

2
3

Scheme: Recursive programming with lists

Read Ramsey, Chapter 3, Sections 3.1 through 3.6 (plus syntax and semantics in Sections 3.11 and 3.13)

Topic: S-expressions, cons, and its algebraic laws; Programming with recursion and lists using case analysis

4
5
6

February 2016
SundayMondayTuesdayWednesdayThursdayFridaySaturday
31
1

Homework for Introduction; imperative core; unit-testing; ASTs and environments is planned to be due.

Operational semantics; metatheory

Topic: Semantics and metatheory

2
3

Scheme: Recursive programming with lists

Read Ramsey, Chapter 3, Sections 3.1 through 3.6 (plus syntax and semantics in Sections 3.11 and 3.13)

Topic: S-expressions, cons, and its algebraic laws; Programming with recursion and lists using case analysis

4
5
6
7
8

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

Scheme: Recursive programming with lists

Topic: The cost of cons, append and reverse, the method of accumulating parameters

9
10

Scheme II: first-class and higher-order functions, continuation passing, semantics

Read Ramsey, Chapter 3.

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

11
12
13
14
15

No class: Presidents' Day

16
17

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

Scheme II: first-class and higher-order functions, continuation passing, semantics

Topic: Higher-order functions on lists and Tail Calls

18

Scheme II: first-class and higher-order functions, continuation passing, semantics

Topic: Continuations

19
20
21
22

Scheme II: first-class and higher-order functions, continuation passing, semantics

Topic: Operational semantics of uScheme

23
24

Introduction to ML

Read:

  • Ullman, Chapters 1, 2, 3, 5, and 6. You can skip Section 5.7

  • Ullman, Section 4.2.5 (for option, not for input1)

  • The Supplement to Ullman

  • Ramsey, Chapter 6

  • Browse the Standard ML Basis Library for SML'97. Some of this material is summarized in Ullman, Chapter 9.

Topic: Introduction to ML

25
26
27
28

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

29

Introduction to ML

Topic: Interlude: Midterm Review.

1
2

In-class midterm exam: Operational Semantics, Functional Programming

3
4
5

March 2016
SundayMondayTuesdayWednesdayThursdayFridaySaturday
28

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

29

Introduction to ML

Topic: Interlude: Midterm Review.

1
2

In-class midterm exam: Operational Semantics, Functional Programming

3
4
5
6
7

Introduction to ML

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

8
9

Type systems

Read Ramsey, Chapter 7.

Topic: Type systems and type checking

10
11
12
13
14

Homework for Introduction to ML is planned to be due.

Type systems

Topic: Polymorphic type checking

15
16

Type systems

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

17
18
19
20
21

No class: Spring Break

22
23

No class: Spring Break

24
25
26
27
28

ML type inference

Read Ramsey, Chapter 8

Topic: Type inference using constraints; Constraint solving and type inference

29

Homework for Type systems is planned to be due.

30

ML type inference

Topic: Constraint standardization; Splitting constraints at let bindings

31
1
2

April 2016
SundayMondayTuesdayWednesdayThursdayFridaySaturday
27
28

ML type inference

Read Ramsey, Chapter 8

Topic: Type inference using constraints; Constraint solving and type inference

29

Homework for Type systems is planned to be due.

30

ML type inference

Topic: Constraint standardization; Splitting constraints at let bindings

31
1
2
3
4

Smalltalk: Object-oriented programming

Read Ramsey, Chapter 12. Introctory sections: 12.1, 12.2. Key material for some parts of homework is in Sections 12.3 and 12.5. But you do not need to digest all of those sections. The remaining sections are there in case you find them useful. Section 12.4 contains an extended example, and section 12.6 answers all detailed questions about the semantics of the language.

Topic: Guest Lecture: Inheritance

5
6

Homework for ML type inference is planned to be due.

Smalltalk: Object-oriented programming

Topic: Guest Lecture: Class hierarchies; The collection classes

7
8
9
10
11

Standard ML Modules

Read:

Topic: Introduction to modules

12
13

Standard ML Modules

Topic: Structures, signatures, functors

14
15
16
17

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

18

No class: Patriots' Day

19
20

Standard ML Modules

Topic: Modules example: error-producing computations

21
22
23
24
25

Lambda Calculus

Read:

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

26
27

Homework for Standard ML Modules is planned to be due.

Lambda Calculus

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

28
29
30

May 2016
SundayMondayTuesdayWednesdayThursdayFridaySaturday
1
2

Homework for Lambda Calculus is planned to be due.

Retrospective

Topic: Programming-languages retrospective

3
4
5
6

Final exam: 8:30 to 10:30. Braker 001.

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
2
3
4