Course schedule

September 2016
SundayMondayTuesdayWednesdayThursdayFridaySaturday
28
29
30
31
1
2
3
4
5
6
7

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

Read:

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

8
9
10
11
12

Operational semantics; metatheory

Read Ramsey, Chapter 1

Topic: Inference rules and evaluation; proofs and metatheory

13
14

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

Operational semantics; metatheory

Topic: Semantics and metatheory

15
16
17
18
19

Scheme: Recursive programming with lists

Read Ramsey, Chapter 2, Sections 2.1 through 2.6 (plus syntax and semantics in Sections 2.11 and 2.13)

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

20
21

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

Scheme: Recursive programming with lists

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

22
23
24
25
26

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

Read Ramsey, Chapter 2.

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

27
28

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

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

Topic: Jared Chandler Higher-order functions on lists and Tail Calls

29
30
1

October 2016
SundayMondayTuesdayWednesdayThursdayFridaySaturday
25
26

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

Read Ramsey, Chapter 2.

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

27
28

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

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

Topic: Jared Chandler Higher-order functions on lists and Tail Calls

29
30
1
2
3

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

Topic: Continuations

4
5

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

Topic: Operational semantics of uScheme

6
7
8
9
10

No class: Indigenous Peoples' Day

11
12

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

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 5

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

Topic: Introduction to ML

13
14
15
16
17

Introduction to ML

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

18
19

Type systems

Read Ramsey, Chapter 6.

Topic: Type systems and type checking

20
21
22
23

Homework for Introduction to ML is planned to be due.

24

Type systems

Topic: Interlude: Midterm Review


In-class course evaluations

25
26

In-class midterm exam: Operational Semantics, Functional Programming, ML

27
28
29
30
31

Type systems

Topic: Polymorphic type checking

1
2

Type systems

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

3
4
5

November 2016
SundayMondayTuesdayWednesdayThursdayFridaySaturday
30
31

Type systems

Topic: Polymorphic type checking

1
2

Type systems

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

3
4
5
6
7

ML type inference

Read Ramsey, Chapter 7

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

8
9

ML type inference

Topic: Generalization

10
11
12

Homework for Type systems is planned to be due.

13
14

ML type inference

Topic: Type inference at let bindings

15
16

Smalltalk: Object-oriented programming

Read Ramsey, Chapter 11. Introductory sections: 11.1, 11.2. Key material for some parts of homework is in Sections 11.3 and 11.5. But you do not need to digest all of those sections. The remaining sections are there in case you find them useful. Section 11.4 contains an extended example, and section 11.6 answers all detailed questions about the semantics of the language.

Topic: Inheritance

17
18
19
20
21

Homework for ML type inference is planned to be due.

Smalltalk: Object-oriented programming

Topic: Class hierarchies; The collection classes

22
23

No class: Thanksgiving Break

24
25
26
27
28

Standard ML Modules

Read:

Topic: Introduction to modules

29
30

Standard ML Modules

Topic: Structures, signatures, functors

1
2
3

December 2016
SundayMondayTuesdayWednesdayThursdayFridaySaturday
27
28

Standard ML Modules

Read:

Topic: Introduction to modules

29
30

Standard ML Modules

Topic: Structures, signatures, functors

1
2
3
4

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

5

Standard ML Modules

Topic: Modules example: error-producing computations

6
7

Lambda Calculus

Read:

Topic: Programming with lambda calculus. What's a calculus? Free variables, Beta reduction, Substitution, and Small-step Semantics; Normal forms, Reduction strategies, Fixed points, Recursion equations, and the Y combinator

8
9
10
11

Homework for Standard ML Modules is planned to be due.

12

Retrospective

Topic: Programming-languages retrospective

13
14
15

Final exam: 8:30 AM to 10:30 AM. Braker 01.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31