Culminating a CS Undergraduate Program with a High Integrity Software Course

Many programs have developed capstone courses as a way of providing students a culminating experience. These capstone experiences tend to be large scale projects solving some real problem for an internal or external client. These courses are usually well received by the students. But by focusing on a real-world need, various aspects of the curriculum may not be integrated into the solution. This paper describes some experiences with using the SPARK language in a high integrity software course. It then shows how such a course can link almost every aspect of a computer science undergraduate curriculum into a single culminating course