CS 6390 Programming Languages

Instructor: Jacob Laurel | Semester: Fall 2025

Course Time: MW 11:00am - 12:15pm | Office hours: M 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 Small step semantics
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 Exam 1 Review Assignment 1 Due
Sep 17 Midterm Exam 1
Week 6
6 Sep 22 Propositional Logic Start thinking about project ideas
Sep 24 Hoare Logic (Axiomatic Semantics)
Week 7
7 Sep 29 Hoare Logic Part 2
Oct 1 Prolog and logic programming
Week 8
8 Oct 6 Lambda Calculus part 1
Oct 8 Lambda Calculus part 2 Project Proposal due
Week 9
9 Oct 13 Functional Programming in LISP Assignment 2 Released
Oct 15 Simply Typed Lambda Calculus and Type Systems
Week 10
10 Oct 20 Type Systems and Type checking rules
Oct 22 Curry-Howard correspondence
Week 11
11 Oct 27 Dynamic Language Features Pt. 1 (OOP, Reflection, Dynamic Typing)
Oct 29 Dynamic Language Features Pt. 2
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 Probabilistic Programming Languages
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