Programming Languages

Schedule

Lecture Hours: 2:40pm - 3:55pm on Tuesdays and Thursdays
Lecture Location: Science Center L32
Lab Location: Clothier 016

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
1

Aug 31

 

Introduction to OCaml

Lab 0: OCaml Introduction

Sep 02

 
2

Sep 07

Lecture, Materials

Higher-Order Functions; OCaml Type Inference

Lab 1: Higher-Order Functions and Trees

Sep 09

Lecture, Materials

Drop/add ends (Sep 13)

3

Sep 14

Lecture, Materials

A Brief Introduction to Logic

Lab 2: Proofs and Proof Systems

Sep 16

Lecture, Materials

Syntax and Semantics

  • Sections 2.1 – 2.2
4

Sep 21

Lecture, Materials

Operational Semantics; F♭

  • Sections 2.3.1 – 2.3.3

Lab 3: F♭ Interpreter

Sep 23

Lecture, Materials

5

Sep 28

Lecture, Materials

The Y Combinator

  • Section 2.3.5

Sep 30

Lecture, Materials

Tuples

  • Sections 2.3.4, 3.1
6

Oct 05

Lecture, Materials

Records and Variants

  • Sections 3.2 – 3.3

Lab 4: Operational Semantics I

Oct 07

Lecture, Materials

State

  • Sections 4.1 – 4.3
 

Oct 12

Fall Break

Oct 14

7

Oct 19

 

Exceptions

  • Sections 4.4, 5.1

Lab 5: Operational Semantics II

Oct 21

 

Object-Oriented Semantics

  • Chapter 5
8

Oct 26

 

Types and Typechecking

  • Sections 6.1 – 6.4

Lab 6: Type Systems I

Oct 28

 
9

Nov 02

 

Subtypes

  • Section 6.5

Lab 7: Type Systems II

Nov 04

CR/NC/W Deadline (Nov 05)

Type Inference

  • Section 6.6
10

Nov 09

 

Lab 8: EF♭ Type Inferencer

Nov 11

 

Theory and Practice

11

Nov 16

 

Operational Equivalence

  • Section 2.4

Nov 18

 

Proofs of Proof Systems

12

Nov 23

 

Nov 25

Thanksgiving Break

13

Nov 30

 

TF♭ Soundness

Lab 9: Proof System Proofs

Dec 02

 
14

Dec 07

 

Review Session

Dec 12

Final Exam Period Begins