Abstract

In this paper, we analyze the errors novice students make when developing invariant based programs. In addition to presenting the general error types, we also look at what students have difficulty with when it comes to expressing invariants. The results indicate that an introduc- tory course utilizing the invariant based approach is suitable from the very beginning of university studies in CS without being too advanced. Although inventing the invariant was not found to be trivial, the main difficulty faced by novices when applying a correct-by-construction approach to program development seems to be related to weak skills in translating intuitive and informal statements into a symbolic form using logical notation in general and quantifiers in particular.

Highlights

  • The concept of loop invariants was introduced by Naur (1966) and Floyd (1967) already in the 1960s

  • We address the first two research questions: ”What kind of errors do novices make when using invariant based programming (IBP)?” and ”Do these change as the course progresses, and in that case how?”

  • We have investigated the difficulties that students face when learning IBP

Read more

Summary

Introduction

The concept of loop invariants was introduced by Naur (1966) and Floyd (1967) already in the 1960s. Continuing on their work, Hoare (1969) defined inference rules for correctness proofs based on loop invariants. This development lay the basis for Dijkstra’s (1968, 1976) work on outlining a new programming methodology for writing programs with built-in correctness proofs. Different, some more informal, approaches for introducing invariants and program correctness concepts in education have been presented, e.g., (Arnow, 1994; Astrachan, 1991; Evans and Peck, 2006; Ginat, 1995; Tam, 1992). We have not found any empirical evaluation of these approaches in the literature

Methods
Results
Discussion
Conclusion
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.