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.

Links

Schedule

Date Topic Reading/Material Notes
1/20 Introducing OCaml COPL 1, OCP 1, 2 Read the course manual
1/22 Recursion and Lists OCP 3.1, 3.8 Assignment 1 (A1) out
1/26 Lab 1: Verifying your Set-up    
1/27 Designing Functions (Workshop)    
1/29 Polymorphism   A2 out, A1 due
2/2 Lab 2: Mutual Recursion    
2/3 Inference Rules COPL 2.1  
2/5 Derivations COPL 2.2, 2.3 A3 out, A2 due
2/9 Lab 3: Derivations Worksheet    
2/10 Products and Sums OCP 3  
2/12 Algebraic Data Types (Workshop) OCP 3 A3 due
2/16 No Lab   Presidents’ Day
2/17 Lab 4: Midterm Review   Substitute Monday
2/19 Midterm 1   A4 out
2/23 Lab 5: S-Expressions   Campus Closed
2/24 No Lecture   Campus Closed
2/26 Higher-Order Programming OCP 4 A5 out, A4 due
3/2 Lab 6: Higher-Order Functions    
3/3 Formal Grammar COPL 3.1-3.3  
3/5 Grammatical Ambiguity COPL 3.4-3.6, OCP 10.2 A6 out
3/9 No Lab   Spring recess
3/10 No Lecture   Spring recess
3/12 No Lecture   Spring recess
3/16 Lab 7: Parser Generators    
3/17 Operational Semantics OCP 10.3  
3/19 Substitution OCP 10.3 Mini-Project 1 (MP1) out, A5 due, A6 due
3/23 Lab 8: Operational Semantics Worksheet    
3/24 Closures and Environments (Workshop) OCP 10.4  
3/26 Simple Types OCP 10.5 MP1 check-in due
3/30 Lab 9: Midterm Review    
3/31 Midterm 2    
4/2 Progress and Preservation OCP 10.5 MP2 out, MP1 due
4/6 Lab 10: Progress and Preservation Worksheet    
4/7 Pattern Matching    
4/9 Exhaustiveness Checking   MP2 check-in due
4/13 Lab 11: Pattern Matching Worksheet    
4/14 Hindley-Milner OCP 10.6  
4/16 Unification (Workshop) OCP 10.6 MP3 out, MP2 due
4/20 No Lab   Patriots’ Day
4/21 Principal Types OCP 10.6  
4/22 Lab 12: Principal Types Worksheet    
4/23 Specialization OCP 10.6 MP3 check-in due
4/27 Lab 13: Final Exam Review   Fall 2025 Final Exam
4/28 Bytecode Interpreters    
4/30 Final Exam Review Session (Workshop)   MP3 due, Final Exam Prep Material

Calendar

Course Staff

  • Instructor: Nathan Mull
  • Teaching Fellow: Anthony DeRossi
  • Teaching Assistant: Vivian Tvedt
  • Course Assistants: Miranda Quimbar and Shiyun Yang