[en] This paper focuses on a programming methodology relying on an informal and graphical version of the \invariant for building the code. This methodology is applied in the context of a CS1 course in which students are exposed to several C programming language concepts and algorithmic aspects. The key point in the course is thus to imagine a problem resolution strategy (the Graphical Loop Invariant) prior to writing the code (that becomes, then, reasonably easy once relying on the Graphical Loop Invariant). This paper exposes the rules for building a sound and accurate Graphical Loop Invariant as well as the programming methodology. As such, our programming methodology might be seen as a first step towards considering formal methods in programming courses without making any assumption on students mathematical background as it does not require to manipulate any mathematical notations. The paper also introduces an integrated learning tool we developed for supporting the Graphical Loop Invariant teaching and practice. Finally, the paper gives preliminary insight into how students seize the methodology and use the learning tools for supporting their learning phase.
Disciplines :
Computer science
Author, co-author :
Brieven, Géraldine ; Université de Liège - ULiège > Montefiore Institute of Electrical Engineering and Computer Science
Liénardy, Simon ; Université de Liège - ULiège > Montefiore Institute of Electrical Engineering and Computer Science
Malcev, Lev ; Université de Liège - ULiège > Faculté des Sciences Appliquées > Master sc. informatiques, à fin.
Donnet, Benoît ; Université de Liège - ULiège > Département d'électricité, électronique et informatique (Institut Montefiore) > Algorithmique des grands systèmes
Language :
English
Title :
Graphical Loop Invariant Based Programming
Publication date :
06 March 2023
Event name :
Formal Methods Teaching Workshop
Event date :
6 mars 2023
Audience :
International
Main work title :
Proceedings of Formal Methods Teaching Workshop (FMTea)