Home

CMSC 433: Programming Language Technologies and Paradigms

Fall 2024

Lectures:
Monday & Wednesday, 3:30 - 4:45pm
HJP 0226

Description: Students will be introduced to a range of modern formal methods and software engineering practices, focusing on Dafny, SAT solvers, Solver aided programming, and computer aided theorem proving. The first part of the course will look at Dafny, a verification-aware programming language that is used heavily at Amazon: students will learn different techniques for writing down precise specifications of desired system behavior and for proving that specifications hold of software artifacts. The second part of the course will focus on SAT solvers, SMT solvers, and apply these techniques to automatic bug finding and program verification. We will implement a miniature version of Dafny. The third part of the course will focus on the interactive theorem proving. We will learn the basics of the theorem prover Coq. Knowledge of functional programming in the form of OCaml (from 330) is assumed, but not prior knowledge of Dafny.

Recommended Textbook: Program Proofs by K. Rustan M. Leino

Staff:

Name email Hours (AVW4140 unless stated otherwise)
Anwar Mamat anwar@umd.edu W 11am-12pm (in-person IRB 2248),
Tu 2-3pm on Zoom
Jeff Giliberti jeffgili@umd.edu MWF 9am-11am
Ethan Chou echou1@umd.edu MThu 12:30pm-1:30pm, F 2pm-3pm
Sai Pranav Theerthala sptheerthala@umd.edu Tu 2pm-4pm, Thu 2pm-3pm
Samuel Badalov sbadalov@terpmail.umd.edu Tu 11am-12pm, F 12pm-2pm
Vishal Budamala vbudamal@terpmail.umd.edu F 9am-12pm

Disclaimer: All information on this web page is tentative and subject to change. Any substantive change will be accompanied with an announcement to the class via ELMS.