Programming Languages

Schedule

Lecture Hours: 10:30am - 11:45am on Mondays and Wednesdays
Lecture Location: Singer 350
Lab Location: Martin 313

Calendar

The following is a tentative course calendar; it is subject to change as circumstances dictate.

Captured videos of lecture are linked in the calendar below. The corresponding resources created during those lectures can be found in the Lecture Materials.

WEEK DAY ANNOUNCEMENTS TOPIC & READING ASSIGNMENTS TESTS
(in lab)
1

Sep 01

(no class: Labor Day)

Lecture Notes
Lecture Video (Sep 02)

Introduction to OCaml

Lab 1: Introduction to OCaml (AC1)

(first lecture in lab)

Sep 03

Lecture Notes
Lecture Video

2

Sep 08

Lecture Notes
Lecture Video

Higher-Order Functions and OCaml Type Inference

Syllabus Quiz: TSQ

Sep 10

Lecture Notes
Lecture Video

3

Sep 15

Drop/add ends

Lecture Notes
Lecture Video

A Brief Introduction to Logic

Lab 2: Higher-Order Functions and Trees (AC2)

Test: TC1

Sep 17

Lecture Notes
Lecture Video

Syntax and Semantics

  • Sections 2.1 – 2.2
4

Sep 22

Lecture Notes
Lecture Video

Operational Semantics; F♭

  • Sections 2.3.1 – 2.3.3

Lab 3: Proofs and Proof Systems (APS)

Test: TC2

Sep 24

Lecture Notes
Lecture Video

5

Sep 29

Lecture Notes
Lecture Video

The Y Combinator

  • Section 2.3.5

Lab 4: F♭ Interpreter (AOF)

Exam 1 + TPS

Oct 01

Lecture Notes
Lecture Video

Tuples

  • Sections 2.3.4, 3.1
6

Oct 06

Lecture Notes
Lecture Video

Records and Variants

  • Sections 3.2 – 3.3

Lab 5: Encoding in F♭ (AER)

Test: TOF

Oct 08

Lecture Notes
Lecture Video

State

  • Sections 4.1 – 4.3

Oct 13

Fall Break

Oct 15

7

Oct 20

Lecture Notes
Lecture Video

Review Day

  • Sections 2.1 – 2.3

Lab 6: Operational Semantics of Structure (AOR)

Test: TER

Oct 22

Lecture Notes
Lecture Video

Exceptions

  • Sections 4.4, 5.1
8

Oct 27

Lecture Notes
Lecture Video

Types and Typechecking

  • Sections 6.1 – 6.4

Lab 7: Operational Semantics of Side Effects (AOE)

Exam 2 + TOR

Oct 29

Lecture Notes
Lecture Video

9

Nov 03

Lecture Notes
Lecture Video

Subtypes

  • Section 6.5

Lab 8: Type Systems for Functional Programs (ATF)

Test: TOE

Nov 05

Lecture Notes
Lecture Video

CR/NC/W Deadline (Nov 07)

Type Inference

  • Section 6.6
10

Nov 10

Lecture Notes
Lecture Video

Lab 9: Type Systems for Structure, State, and Subtyping (ATS)

Test: TTF

Nov 12

Lecture Notes
Lecture Video

Operational Equivalence

  • Section 2.4
11

Nov 17

Lecture Notes
Lecture Video

Proofs of Proof Systems

Lab 10: EF♭ Type Inferencer (AI1, AI2)

Test: TTS

Nov 19

Lecture Notes
Lecture Video

12

Nov 24

Lecture Notes
Lecture Video

TF♭ Soundness

Exam 3 + TOQ

Nov 26

13

Dec 01

Theory and Practice

Lab 11: Proof System Proofs (AMT)

Test: TIN

Dec 03

Review

14

Dec 08

(Test)

Test: TMT (in class on Monday)

Dec 18

Final Exam (9am-12noon, Singer 350)