This course introduces mathematical methods for defining what a program is and how it executes. This approach allows for the formulation and proof of properties concerning program behavior, such as the absence of bugs or adherence to expected specifications. The course covers various concepts essential for understanding the theoretical underpinnings of programming languages and formal verification.
The course covers a range of topics in the theory of programming, including inductive definitions, operational and denotational semantics, rewriting systems, typing, formal proof techniques, and the use of proof assistants.
The course is open to external auditors.
Tuition and living cost information not available for this specific course.
Familiarity with OCaml or another functional programming language is useful for following the course. The course is also open to external auditors.
The course covers inductive definitions, operational and denotational semantics, rewriting systems, typing, formal proof techniques, and the use of proof assistants like Coq.
The course includes 2 hours of lectures and 2 hours of tutorials or practical work sessions per week. Some practical sessions involve an introduction to the Coq proof assistant or are conducted in OCaml.
This course provides a strong theoretical foundation beneficial for careers in software development, research, and formal verification.
Tuition and living cost information are not available for this specific course.