Teaching Programming and Design-by-Contract
This addresses the problem of enhancing programming education for university students, but it is incremental as it builds on existing teaching methods with a specific grouping strategy.
The authors tackled the challenge of teaching introductory programming by implementing a correctness-by-construction approach and dividing students into beginner and advanced groups, reporting improved learning outcomes based on presented data.
This paper summarizes the experience of teaching an introductory course to programming by using a correctness by construction approach at Innopolis University, Russian Federation. In this paper we claim that division in beginner and advanced groups improves the learning outcomes, present the discussion and the data that support the claim.