Improving students' code correctness and test completeness by informal specifications

09/05/2023
by   Arno Broeders, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/01/2019

Having Fun in Learning Formal Specifications

There are many benefits in providing formal specifications for our softw...
research
10/30/2020

Using Relational Problems to Teach Property-Based Testing

Context: The success of QuickCheck has led to the development of propert...
research
02/19/2021

"Do this! Do that!, And nothing will happen" Do specifications lead to securely stored passwords?

Does the act of writing a specification (how the code should behave) for...
research
09/24/2021

How to write a coequation

There is a large amount of literature on the topic of covarieties, coequ...
research
08/24/2017

Exploring the Link Between Test Suite Quality and Automatic Specification Inference

While no one doubts the importance of correct and complete specification...
research
01/26/2023

Analyzing the Quality of Submissions in Online Programming Courses

Programming education should aim to provide students with a broad range ...
research
03/05/2018

Teaching the Formalization of Mathematical Theories and Algorithms via the Automatic Checking of Finite Models

Education in the practical applications of logic and proving such as the...

Please sign up or login with your details

Forgot password? Click here to reset