CS 6390 Programming Languages

Instructor: Jacob Laurel | Semester: Fall 2025

Course Time: MW 11:00am - 12:15pm | Office hours: W 2:00pm-3:00pm Klaus 2332

Announcements

Course Summary

Course Logistics

Class Schedule

Week Date Topic Readings / Assignments
Week 1
1 Aug 18 Course introduction and what is a programming language? Syllabus review
Aug 20 Syntax: Context Free Grammar, Parsing
Week 2
2 Aug 25 Big step operational semantics
Aug 27 Operational semantics part 2
Week 3
3 Sep 1 Labor Day - NO CLASS None
Sep 3 Interpreters and Denotational Semantics Assignment 1 Released
Week 4
4 Sep 8 Interpreters and Denotational Semantics
Sep 10 Abstract Interpretation
Week 5
5 Sep 15 Propositional Logic Assignment 1 Due
Sep 17 Exam 1 Review
Week 6
6 Sep 22 Midterm Exam 1 Start thinking about project ideas
Sep 24 Hoare Logic (Axiomatic Semantics)
Week 7
7 Sep 29 Hoare Logic Part 2
Oct 1 Hoare Logic Part 3
Week 8
8 Oct 6 No Class
Oct 8 Lambda Calculus part 1
Week 9
9 Oct 13 Class Cancelled Project Proposal due
Oct 15 Lambda Calculus Part 2
Week 10
10 Oct 20 Lambda Calculus Part 3 Assignment 2 Released
Oct 22 Simply Typed Lambda Calculus
Week 11
11 Oct 27 Type Systems and Curry-Howard
Oct 29 Polymorphism and Dynamic Language Features
Week 12
12 Nov 3 Review for Midterm 2 Assignment 2 Due
Nov 5 Midterm Exam 2
Week 13
13 Nov 10 Reactive and Dataflow Programming Languages
Nov 12 Program Slicing
Week 14
14 Nov 17 Probabilistic Programming Languages
Nov 19 Differentiable Programming Languages
Week 15
15 Nov 24 Differentiable Programming Languages Project Reports Due
Nov 26 No Class
Week 16
16 Dec 1 Course Recap