English

How to Design While Loops

Other Computer Science 2020-08-31 v1 Programming Languages

Abstract

Beginning students find the syntactic construct known as a while loop difficult to master. The difficulties revolve around guaranteeing loop termination and around learning how to properly sequence mutations to solve a problem. In fact, both of these are intertwined and students need to be taught a model that helps them reason about how to design while loops. For students that have been introduced to how to design programs using structural recursion, generative recursion, accumulative recursion, and mutation, the task of teaching them how to design while loops is made easier. These students are familiar, for example, with state variables, termination arguments, and accumulator invariants. All of these are fundamental in the design of while loops. This articles presents a novel technique used at Seton Hall University to introduce beginners to the design of while loops. It presents a design recipe that students can follow step-by-step to establish such things as the driver of the loop, the loop invariant, and the proper sequencing of mutations. The article also presents an example of designing a while-loop based function using the new design recipe.

Cite

@article{arxiv.2008.12375,
  title  = {How to Design While Loops},
  author = {Marco T. Morazán},
  journal= {arXiv preprint arXiv:2008.12375},
  year   = {2020}
}

Comments

In Proceedings TFPIE 2019 and 2020, arXiv:2008.08923

R2 v1 2026-06-23T18:09:11.196Z