Improving students’ code correctness and test completeness by informal specifications

Arno Broeders, Ruud Hermans, S. Stuurman, A. Bijlsma, H.J.M. Passier

Research output: Working paper / PreprintPreprintAcademic

Abstract

The quality of software produced by students is often poor. How to teach students to develop good quality software has long been a topic in computer science education and research. We must conclude that we still do not have a good answer to this
question.
Specifications are necessary to determine the correctness of software, to develop error-free software and to write complete tests. Several attempts have been made to teach students to write specifications before writing code. So far, that has not proven to be very successful: Students do not like to write a specification and do not see the benefits of writing specifications.
In this paper we focus on the use of informal specifications. Instead of teaching students how to write specifications, we teach them how to use informal specifications to develop correct software.
The results were surprising: the number of errors in software and the completeness of tests both improved considerably and, most
importantly, students really appreciate the specifications. We think that if students appreciate specification, we have a key to teach them how to specify and to appreciate its value.
Original languageEnglish
Number of pages14
Publication statusPublished - 6 Sept 2023

Keywords

  • Teaching programming; specification; code correctness; test completeness

Fingerprint

Dive into the research topics of 'Improving students’ code correctness and test completeness by informal specifications'. Together they form a unique fingerprint.

Cite this