Abstract :
[en] We are surrounded by computers and it is therefore logical that industry is increasingly demanding employees with coding skills. Historically, rigorous programming methodologies requiring strong mathematicaml and logical skills have been proposed.
However, to teach them in open access curricula, as it is the case in Belgium, one cannot rely on the background of students who might lack of mathematical prerequisites.
Therefore, this thesis extends a programming methodology, based on the "Graphical Loop Invariant". In particular, we detail seven rules that help to correctly draw an Invariant. We explain how, on the basis of this drawing, it is possible to deduce the instructions that form a piece of code including a loop.
We then propose various tools to help our methodology teaching: Graphical Loop Invariant Drawing Editor (GLIDE) , which is an application for drawing and manipulating Loop Invariant; the Blank Graphical Loop Invariant, which enables the Loop Invariant to be integrated into an automatic correction system, called Correction Automatique et Feedback des Étudiants (CAFÉ). This last corrects both a student’s code and the Graphical Loop Invariant that was used to deduce it. CAFÉ generates a message containing feedback and feedforward for the student who can use this information to improve their performance.
To enable students to practice our programming methodology on a regular basis, we describe a Programming Challenges Activity (PCA), which involves students solving small programming problems throughout the semester. These Challenges are corrected by CAFÉ and can be submitted several times. The introduction of PCA has brought our course in line with the principles of Assessment for Learning (AfL).
The evaluation of the students’ reception of our programming method shows that although they mostly find the method useful, they do not use it to its full potential when it comes to deducing their code.
As for the PCA , its introduction has accompanied an increase in the success rate and quality of the codes written by the students. Challenges enable them to work on a regular basis and improve from one submission to the next. The message provided by C AFÉ after each submission is recognised as clear and useful for understanding the course and being aware of any learning gaps.