COMP 105 Schedule

January 2017
SundayMondayTuesdayWednesdayThursdayFridaySaturday
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

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

Read:

Topic: Course intro; induction and recursion; an imperative core; unit-testing

24
25

Operational semantics; metatheory

Read:

Topic: Abstract syntax and environments; Inference rules and evaluation

26
27
28
29
30

Operational semantics; metatheory

Topic: Derivations; metatheory

31
1

Scheme I: Recursive programming with lists

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

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

2
3
4

February 2017
SundayMondayTuesdayWednesdayThursdayFridaySaturday
29
30

Operational semantics; metatheory

Topic: Derivations; metatheory

31
1

Scheme I: Recursive programming with lists

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

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

2
3
4
5
6

Scheme I: Recursive programming with lists

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

7
8

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

9
10
11
12
13

Scheme II: first-class and higher-order functions

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

14
15

Scheme III: continuation passing, semantics

Topic: Continuations

16
17
18
19
20

No class: Presidents' Day

21
22

Scheme III: continuation passing, semantics

Topic: Midterm course evaluations; Operational semantics of uScheme

Evening recitation at 7:00PM

23

Introduction to ML

Read The guide Learning Standard ML

Topic: Introduction to ML

24
25

Evening recitation, time TBA

26
27

Introduction to ML

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

28
1

Type systems

Topic: Type systems and type checking

2
3
4

March 2017
SundayMondayTuesdayWednesdayThursdayFridaySaturday
26
27

Introduction to ML

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

28
1

Type systems

Topic: Type systems and type checking

2
3
4
5
6

Type systems

Topic: Polymorphic type checking

7
8

No class: Time available for midterm

Midterms can be picked up in morning

9
10

Last possible midterm dropoff at 1:00PM

11
12
13

Type systems

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

14
15

ML type inference

Topic: Type inference by example

16
17
18
19
20

No class: Spring Break

21
22

No class: Spring Break

23
24
25
26
27

ML type inference

Topic: Type inference and constraint solving

28
29

ML type inference

Topic: Generalization; Instantiation; Type inference at let bindings

30
31
1

April 2017
SundayMondayTuesdayWednesdayThursdayFridaySaturday
26
27

ML type inference

Topic: Type inference and constraint solving

28
29

ML type inference

Topic: Generalization; Instantiation; Type inference at let bindings

30
31
1
2
3

Lambda calculus

Read:

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

4
5

Lambda calculus

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

6
7
8
9
10

Modules and abstract types

Read:

Topic: Introduction to data abstraction; signatures and structures

11
12

Modules and abstract types

Topic: Functors; Modules example: error-producing computations

13
14
15
16
17

No class: Patriots' Day

18
19

Smalltalk: Object-oriented programming

Read Selected parts of Ramsey, Chapter 11

Topic: Objects; protocols; message passing

20

Recitations cancelled

21

Recitations cancelled

22
23
24

Smalltalk: Object-oriented programming

Topic: Inheritance

25
26

Smalltalk: Object-oriented programming

Topic: Class hierarchies; The collection classes

27
28
29
30
1

Retrospective

Topic: Programming-languages retrospective

2
3
4
5
6

May 2017
SundayMondayTuesdayWednesdayThursdayFridaySaturday
30
1

Retrospective

Topic: Programming-languages retrospective

2
3
4
5
6
7
8

Final exam: 12:00 noon, Barnum 008

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