Teaching Design by Contract Using Snap!

Marieke Huisman, Raúl E. Monti*

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingChapterAcademicpeer-review

18 Downloads (Pure)


With the progress in deductive program verification research, new tools and techniques have become available to support design-by-contract reasoning about non-trivial programs written in widely-used programming languages. However, deductive program verification remains an activity for experts, with ample experience in programming, specification and verification. We would like to change this situation, by developing program verification techniques that are available to a larger audience. In this paper, we present how we developed program verification support for Snap!. Snap! is a visual programming language, aiming in particular at high school students. We added specification language constructs in a similar visual style, designed to make the intended semantics clear from the look and feel of the specification constructs. We provide support both for static and dynamic verification of Snap! programs. Special attention is given to the error messaging, to also make this as intuitive as possible. Finally, we outline how program verification in Snap! could be introduced to high school students in a classroom situation.
Original languageEnglish
Title of host publicationThe Logic of Software
Subtitle of host publicationA Tasting Menu of Formal Methods
EditorsWolfgang Ahrendt, Bernhard Beckert, Richard Bubel, Einar Broch Johnsen
Number of pages21
ISBN (Electronic)978-3-031-08166-8
ISBN (Print)978-3-031-08165-1
Publication statusPublished - 2022

Publication series

NameLecture Notes in Computer Science
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349


  • 2024 OA procedure


Dive into the research topics of 'Teaching Design by Contract Using Snap!'. Together they form a unique fingerprint.
  • Teaching Design by Contract using Snap!

    Huisman, M. & Monti, R. E., 8 Jul 2021, Proceedings - 2021 3rd International Workshop on Software Engineering Education for the Next Generation, SEENG 2021. Piscataway, NJ: IEEE, p. 1-5 5 p. 9474640

    Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

    Open Access
    2 Citations (Scopus)
    47 Downloads (Pure)
  • Teaching Design by Contract using Snap!

    Huisman, M. & Monti, R. E., 12 Jul 2021, ArXiv.org.

    Research output: Working paper

    Open Access
    92 Downloads (Pure)

Cite this