Dec 26, 2024  
OHIO University Undergraduate Catalog 2022-23 
    
OHIO University Undergraduate Catalog 2022-23 [Archived Catalog]

Add to Portfolio (opens a new window)

CS 4201 - Software Verification


A course on programming languages and software verification, with hands-on exercise in an interactive theorem prover such as Coq. Topics may include, but are not limited to: logic; functional programming; inductive datatypes, recursion, and structural induction; operational, denotational, and axiomatic semantics; simply typed lambda calculus; polymorphic lambda calculus; type systems and type-checking.

Requisites: CS 3200
Credit Hours: 3
Repeat/Retake Information: May be retaken two times excluding withdrawals, but only last course taken counts.
Lecture/Lab Hours: 3.0 lecture
Grades: Eligible Grades: A-F,WP,WF,WN,FN,AU,I
Learning Outcomes:
  • Students will be able to apply principles of mathematics and computing such as induction to prove properties of programs written in a functional programming language.
  • Students will be able to analyze the type system and operational semantics of a small imperative language to prove metatheoretic properties like type soundness.
  • Students will be able to analyze a program to identify specifications such as Hoare-logic pre- and post-conditions that capture the program’s expected behavior.
  • Students will be able to use an interactive theorem prover to construct a computer-checked proof of type soundness for a small arithmetic expression language.
  • Students will be able to use an interactive theorem prover or some other formal methods tool to reason about a software system of their choosing, in the context of an open-ended final project.



Add to Portfolio (opens a new window)