COMP 105 Schedule

September 2017
SundayMondayTuesdayWednesdayThursdayFridaySaturday
27
28
29
30
31
1
2
3
4
5
6

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

Read:

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

7
8
9
10
11

Operational semantics; metatheory

Read Ramsey, Chapter 1

Topic: Abstract syntax and environments; Inference rules and evaluation

12
13

Operational semantics; metatheory

Topic: Derivations; metatheory

14
15
16
17
18

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

19
20

Scheme I: Recursive programming with lists

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

21
22
23
24
25

Scheme II: first-class and higher-order functions

Read Ramsey, Chapter 2.

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

26
27

Scheme II: first-class and higher-order functions

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

28
29
30

October 2017
SundayMondayTuesdayWednesdayThursdayFridaySaturday
1
2

Scheme III: continuation passing, semantics

Topic: Continuations

3
4

Scheme III: continuation passing, semantics

Topic: Operational semantics of uScheme

5
6
7
8
9

No class: Indigenous Peoples' Day

10
11

Introduction to ML

Read The guide Learning Standard ML

Topic: Introduction to ML

12
13
14
15
16

Introduction to ML

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

17
18

Type systems

Read Ramsey, Chapter 6.

Topic: Type systems and type checking

19
20
21
22
23

Type systems

Topic: Polymorphic type checking

24
25

Type systems

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

26
27
28
29
30

Midterm Review

Topic: What we've done so far


In-class course evaluations


Last day for full credit for office hour visit with Prof. Fisher

31
1

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

2


No recitations

3


No recitations

4

November 2017
SundayMondayTuesdayWednesdayThursdayFridaySaturday
29
30

Midterm Review

Topic: What we've done so far


In-class course evaluations


Last day for full credit for office hour visit with Prof. Fisher

31
1

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

2


No recitations

3


No recitations

4
5
6

ML type inference

Read Ramsey, Chapter 7

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

7
8

ML type inference

Topic: Generalization

9
10
11
12
13

ML type inference

Topic: Type inference at let bindings

14
15

Modules and abstract types

Read:

Topic: Introduction to data abstraction; signatures and structures

16
17
18
19
20

Modules and abstract types

Topic: Functors; Modules example: error-producing computations

21
22

No class: Thanksgiving Break

23
24
25
26
27

Smalltalk: Object-oriented programming

Read Selected parts of Ramsey, Chapter 11

Topic: Objects; protocols; message passing

28
29

Smalltalk: Object-oriented programming

Topic: Inheritance

30
1
2

December 2017
SundayMondayTuesdayWednesdayThursdayFridaySaturday
26
27

Smalltalk: Object-oriented programming

Read Selected parts of Ramsey, Chapter 11

Topic: Objects; protocols; message passing

28
29

Smalltalk: Object-oriented programming

Topic: Inheritance

30
1
2
3
4

Smalltalk: Object-oriented programming

Topic: Class hierarchies; The collection classes

5
6

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

7
8
9
10
11

Retrospective

Topic: Programming-languages retrospective

12
13
14

Final exam: 8:30 AM to 10:30 AM. Room: Barnum 08.

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6