Course schedule

January 2015
MondayTuesdayWednesdayThursdayFriday
29
30
31
1
2
5
6
7
8
9
12
13
14

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

Read:

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

15
16
19

No class: Martin Luther King Day

20
21

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

Operational semantics; metatheory

Read Ramsey, Chapter 2

Topic: Inference rules and evaluation; proofs and metatheory

22
23
26

Operational semantics; metatheory

Topic: Semantics and metatheory review

27
28

No class: Winter Storm Juno

29
30

February 2015
MondayTuesdayWednesdayThursdayFriday
2

No class: Winter Storm, Take 2

3
4

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: Guest Instructor. S-expressions, cons, and its algebraic laws; Programming with recursion and lists using case analysis

5
6

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

9

No class: Winter Storm, Take 3

10
11

Scheme: Recursive programming with lists

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

12
13
16

No class: Presidents' Day

17
18

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

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

Read Ramsey, Chapter 3.

Topic: Functions as values, introduction to lambda; Using lambda to create escaping functions

19

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

Topic: Higher-order functions on lists; Tail calls and continuations

20
23

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

Topic: Operational semantics of uScheme

24
25

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

26
27

March 2015
MondayTuesdayWednesdayThursdayFriday
2

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

Introduction to ML

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

3
4

Type systems

Read Ramsey, Chapter 6. Corrected page 283.

Topic: Types: Basics; Type systems and type checking

5
6
9

Homework for Introduction to ML is planned to be due.

Type systems

Topic: Interlude: Midterm Review.

10
11

In-class midterm exam: operational semantics, functional programming

12
13
16

No class: Spring Break

17
18

No class: Spring Break

19
20
23

Type systems

Topic: Types: Polymorphic type checking

24
25

Type systems

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

26
27
30

ML type inference

Read Ramsey, Chapter 7

Topic: Type inference using constraints (key book pages: 314-315, 318-327); Constraint solving and type inference (key book pages: 327-330)

31
1

Homework for Type systems is planned to be due.

ML type inference

Topic: Constraint standardization (key book pages: 327-330); Splitting constraints at let bindings (key book pages: 323-327)

2
3

April 2015
MondayTuesdayWednesdayThursdayFriday
30

ML type inference

Read Ramsey, Chapter 7

Topic: Type inference using constraints (key book pages: 314-315, 318-327); Constraint solving and type inference (key book pages: 327-330)

31
1

Homework for Type systems is planned to be due.

ML type inference

Topic: Constraint standardization (key book pages: 327-330); Splitting constraints at let bindings (key book pages: 323-327)

2
3
6

Smalltalk: Object-Oriented programming

Read Ramsey, Chapter 10. Introctory sections: 10.1, 10.2. Key material for some parts of homework is in Sections 10.3 and 10.5. But you do not need to digest all of those sections. The remaining sections are there in case you find them useful. Section 10.4 contains an extended example, and section 10.6 answers all detailed questions about the semantics of the language.

Topic: inheritance

7
8

Smalltalk: Object-Oriented programming

Topic: class hierarchies; the collection classes

9
10

Homework for ML type inference is planned to be due.

13

Standard ML Modules

Read:

Topic: Introduction to modules

14
15

Standard ML Modules

Topic: Structures, signatures, functors

16
17
20

No class: Patriots' Day

21
22

Standard ML Modules

Topic: Modules example: error-producing computations

23
24
27

Lambda Calculus

Topic: Overview of the Lambda Calculus

28
29

Homework for Standard ML Modules is planned to be due.

Retrospective

Topic: Programming-languages retrospective

30
1

May 2015
MondayTuesdayWednesdayThursdayFriday
27

Lambda Calculus

Topic: Overview of the Lambda Calculus

28
29

Homework for Standard ML Modules is planned to be due.

Retrospective

Topic: Programming-languages retrospective

30
1
4

Final exam: 3:30 to 5:30. Anderson Hall 206.

5
6
7
8
11
12
13
14
15
18
19
20
21
22
25
26
27
28
29
1
2
3
4
5