CAS CS 320: Concepts of Programming Languages

CAS CS 320 is a course about programming languages, particularly the design and implementation of programming languages. In this course, we take up the programming language as an object of formal study. See the course manual and the schedule below for more details.

Schedule

Date

Topic

Reading

Assignments

9/2

Course Overview

OCP 1.1, 1.2, 1.3, 2.1, 2.3

Assignment 0

9/3

Week 1 Lab: Installation Party

9/4

Basics I: Introducing OCaml

OCP 2.2, 2.4, 2.6, 2.7

Assignment 1

9/9

Basics II: Designing functions

9/10

Week 2 Lab: Thinking Recursively

9/11

Basics III: Inference Rules

COPL 2.1, A

Assignment 2 (A1 due)

9/16

Basics IV: Derivations

COPL 2.2, 2.3

9/17

Week 3 Lab: Strings and Derivations

9/18

Basics V: Lists, Tail-Recursion

OCP 3.1, 3.5, 3.7, 3.8

Assignment 3 (A2 due)

9/23

Data I: Unions, Products, Algebraic Data Types

OCP 3.2, 3.4, 3.9

9/24

Week 4 Lab: ADTs and Derivations

9/25

Data II: ADTs in practice

OCP 3.6, 3.11, 3.12, 8.3

Assignment 4 (A3 due)

9/30

Quiz 1

10/1

Week 5 Lab: Mutual Recursion and Options

10/2

HOP I: Maps and Filters

OCP 4.1, 4.2, 4.3, 4.6, 4.7

Assignment 5 (A4 due)

10/7

HOP II: Folds

OCP 4.4, 4.5

10/8

Week 6 Lab

10/9

Intermediate OCaml

OCP 3.3, 3.7, 3.10, 5.1, 5.2, 5.4

Practice Midterm (A5 due)

10/14

No Lecture (Substitute Monday)

10/15

Week 7 Lab: Midterm Review

10/16

Midterm

Assignment 6

10/21

Parsing I: Formal Grammar

10/22

Week 8 Lab

10/23

Parsing II: Ambiguity

Mini-Project 1 (A6 due)

10/28

Parsing III: Parser Generators

OCP 10.1

10/29

Week 9 Lab: Formal Grammar Worksheet

10/30

Semantics I: Operational Semantics

OCP 10.3

MP1 Check-in due

11/4

Semantics II: Substitution

OCP 10.4

11/5

Week 10 Lab: Operational Semantics Worksheet

11/6

Semantics III: Closures and Environments

OCP 10.4

Mini-Project 2 (MP1 due)

11/11

Types I: Simple Types

OCP 10.5

11/12

Week 11 Lab

11/13

Types II: Progress and Preservation

OCP 10.5

MP2 Check-in due

11/18

Quiz 2

11/19

Week 12 Lab

11/20

Inference I: Hindley-Milner (Light)

OCP 10.6

Mini-Project 3 (MP2 due)

11/25

Inference II: Unification

OCP 10.6

11/26

No Lab (Thanksgiving Recess)

11/27

No Lecture (Thanksgiving Recess)

12/2

Inference III: Constraint-Based Inference

OCP 10.6

12/3

Week 14 Lab

12/4

Inference IV: Extended Example

OCP 10.6

MP3 Check-in due

12/9

Advanced: Byte-Code Interpretation

12/10

Week 15 Lab: Final Exam Review

MP3 due

12/18

Final Exam 3-5PM @ MOR 101

Calendar

Course Staff

Note. Please do not reach out to course staff directly except in extenuating circumstances. If you have questions/concerns about the course, please reach out via Piazza.