COMP 105 Schedule

January 2018
SundayMondayTuesdayWednesdayThursdayFridaySaturday
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

No recitations today.

19

No recitations today.

20
21
22

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

Read:

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

23
24

Operational semantics; metatheory

Read:

  • Ramsey, Chapter 1, Section 1.4 (Operational Semantics)

  • Ramsey, Chapter 1, Section 1.6 (Operational Semantics Revisited)

Topic: Abstract syntax and environments; Inference rules and evaluation

25

Recitation: Contracts, unit tests, recursion, proof systems

26

Recitation: Contracts, unit tests, recursion, proof systems

27
28
29

Operational semantics; metatheory

Topic: Derivations; metatheory

30
31

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

1

Recitation: Derivation trees, semantic rules, metatheory

2

Recitation: Derivation trees, semantic rules, metatheory

3

February 2018
SundayMondayTuesdayWednesdayThursdayFridaySaturday
28
29

Operational semantics; metatheory

Topic: Derivations; metatheory

30
31

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

1

Recitation: Derivation trees, semantic rules, metatheory

2

Recitation: Derivation trees, semantic rules, metatheory

3
4
5

Scheme I: Recursive programming with lists

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

6
7

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

8

Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters

9

Recitation: Scheme list functions, calculational proofs, functions with accumulating parameters

10
11
12

Scheme II: first-class and higher-order functions

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

13
14

Scheme III: continuation passing, semantics

Topic: Continuations

15

Recitation: Higher-order functions on lists, abstracting over comparison functions

16

Recitation: Higher-order functions on lists, abstracting over comparison functions

17
18
19

No class: Presidents' Day

20
21

Scheme III: continuation passing, semantics

Topic: Midterm course evaluations; Operational semantics of uScheme

22

Introduction to ML

Read The guide Learning Standard ML

Topic: Introduction to ML

No recitations today (make-ups Saturday or Sunday).

23

Recitation: Searching with success and failure continuations

24

Recitation: Searching with success and failure continuations: 10:30am, 12:00noon, 3:00pm, 4:30pm

25
26

Introduction to ML

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

27
28

Type systems

Topic: Type systems and type checking

1

Recitation: Patterns and types in Standard ML

2

Recitation: Patterns and types in Standard ML

3

March 2018
SundayMondayTuesdayWednesdayThursdayFridaySaturday
25
26

Introduction to ML

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

27
28

Type systems

Topic: Type systems and type checking

1

Recitation: Patterns and types in Standard ML

2

Recitation: Patterns and types in Standard ML

3
4
5

Type systems

Topic: Polymorphic type checking

6
7

No class: Time available for midterm

Midterms can be picked up in morning

8

Recitation: Type rules and type checking

9

Last possible midterm dropoff at 1:00PM

Recitation: Type rules and type checking

10
11
12

Type systems

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

13
14

ML type inference

Topic: Type inference by example

15

Recitation: Programming Typed uScheme or regression testing of type checker

16

Recitation: Programming Typed uScheme or regression testing of type checker

17
18
19

No class: Spring Break

20
21

No class: Spring Break

22
23
24
25
26

ML type inference

Topic: Making type inference precise; constraints

27
28

ML type inference

Topic: Solving constraints; Generalization; Instantiation; Type inference at let bindings

29

Recitation: Solving conjunction constraints

30

Recitation: Solving conjunction constraints

31

April 2018
SundayMondayTuesdayWednesdayThursdayFridaySaturday
1
2

Lambda calculus

Read:

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

3
4

Lambda calculus

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

5

Recitation: Beta- and eta-reduction, Church numerals, Y

6

Recitation: Beta- and eta-reduction, Church numerals, Y

7
8
9

Modules and abstract types

Read:

Topic: Introduction to data abstraction; signatures and structures

10
11

Modules and abstract types

Topic: Functors; Modules example: error-producing computations

12

Recitation: Abstraction functions, representation invariants

13

Recitation: Abstraction functions, representation invariants

14
15
16

No class: Patriots' Day

17
18

Smalltalk: Object-oriented programming

Read Selected parts of Ramsey, Chapter 11

Topic: Objects; protocols; message passing

19

No recitations today. Extra office hours in Halligan.

20

No recitations today. Extra office hours in Halligan.

21
22
23

Smalltalk: Object-oriented programming

Topic: Inheritance

24
25

Smalltalk: Object-oriented programming

Topic: Class hierarchies; The collection classes

26

Recitation: Abstract base classes, double dispatch

27

Recitation: Abstract base classes, double dispatch

28
29
30

Retrospective

Topic: Programming-languages retrospective

1
2
3
4
5

May 2018
SundayMondayTuesdayWednesdayThursdayFridaySaturday
29
30

Retrospective

Topic: Programming-languages retrospective

1
2
3
4
5
6
7

Final exam: 12:00 noon, Barnum 008

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