Model Checkers in Education

Roelof Hamberg and Frits Vaandrager. Using Model Checkers in an Introductory Course on Operating Systems. In Operating Systems Review 42(6):101-111, October 2008. Also available as Technical Report ICIS-R07031, ICIS, Radboud University Nijmegen, December 2007.


During the last couple of years, we have been experimenting with the use of the Uppaal model checker in an introductory course on operating systems for first-year Computer Science students at the Radboud University Nijmegen. The course does not at all discuss the theory behind model checking, but uses model checkers as a tool to explain, visualize and solve concurrency problems. Our experience is that students enjoy to play with model checkers because it makes concurrency problems tangible. Even though it is hard to measure objectively, we strongly feel that model checkers really help students to obtain a deeper insight into concurrency issues. In this article, we report on our experiences in the classroom, explain how mutual exclusion algorithms, semaphores and monitors can conveniently be modeled in Uppaal, and present some results on properties of small, concurrent patterns.

OSR version (pdf)
Report version (pdf)
Uppaal models of mutual exclusion algorithms
Uppaal models of semaphores
Uppaal models of monitors
Luca Aceto's blog about our article
Video in which Allen Downey discusses the mistakes in his book found by our students (starting 34.18)