Programming Languages

Schedule

Lecture Hours: 9:55 AM - 11:10 AM on Tuesdays and Thursdays
Lecture Location: Singer 346
Lab Location: Science Center 256

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

Jan 21

Lecture

Introduction to OCaml

Lab 0: OCaml Introduction

Jan 23

Lecture

2

Jan 28

Lecture

Higher-Order Functions; OCaml Type Inference

Jan 30

Lecture

Drop/add ends (Jan 31)

Lab 1: Higher-Order Functions and Trees

3

Feb 04

Lecture

A Brief Introduction to Logic

Feb 06

Lecture

Syntax and Semantics

  • Sections 2.1 – 2.2

Lab 2: Proofs and Proof Systems

4

Feb 11

Lecture

Operational Semantics; F♭

  • Sections 2.3.1 – 2.3.3

Feb 13

Lecture

Lab 3: F♭ Interpreter

5

Feb 18

Lecture

The Y Combinator

  • Section 2.3.5

Feb 20

Lecture

Tuples

  • Sections 2.3.4, 3.1
6

Feb 25

Lecture

Records and Variants

  • Sections 3.2 – 3.3

Feb 27

Lecture

State

  • Sections 4.1 – 4.3

Lab 4: Operational Semantics I

7

Mar 03

Lecture

Exceptions

  • Sections 4.4, 5.1

Mar 05

Lecture

Object-Oriented Semantics

  • Chapter 5

Lab 5: Operational Semantics II

 

Mar 10

Spring Break

Mar 12

Mar 17

Course Reconfiguration

Mar 19

8

Mar 24

Lecture

Types and Typechecking

  • Sections 6.1 – 6.4

Mar 26

Lecture

CR/NC/W Deadline (Mar 27)

Lab 6: Type Systems I

9

Mar 31

Lecture

Subtypes

  • Section 6.5

Apr 02

Lecture

Type Inference

  • Section 6.6

Lab 7: Type Systems II

10

Apr 07

Lecture

Apr 09

Lecture

Operational Equivalence

  • Section 2.4

Lab 8: EF♭ Type Inferencer

11

Apr 14

Lecture

Proofs of Proof Systems

Apr 16

Lecture

12

Apr 21

Lecture

TF♭ Soundness

Apr 23

Lecture

Lab 9: Proof System Proofs

13

Apr 28

Lecture

PL Theory and Existing Languages

Apr 30

Lecture

In-Lab Review Session (May 01)

 

 

May 07

Final Exam Period Begins