Vector Programming Using Structural Recursion
Abstract
Vector programming is an important topic in many Introduction to Computer Science courses. Despite the importance of vectors, learning vector programming is a source for frustration to many students given that they feel left adrift when it comes to resolving vector indexing errors. Even though the size of a vector is a natural number, there have been no efforts to define a useful recursive data definition to help beginners design vector processing functions. This article defines the concept of a vector interval and describes how to exploit its recursive structure to design vector processing functions. The described methodology provides a context beginners can use to reason about proper vector indexing instead of leaving them adrift with this responsibility. A key feature of properly using the described methodology is that if students process the correct vector interval then vector indexing errors can not arise. The classroom deployment of this approach is described in detail. Students, to date, have found vector intervals helpful in avoiding out-of-bounds indexing errors when all the vector elements of the interval are processed.
Keywords
Cite
@article{arxiv.1805.05124,
title = {Vector Programming Using Structural Recursion},
author = {Marco T. Morazán},
journal= {arXiv preprint arXiv:1805.05124},
year = {2018}
}
Comments
In Proceedings TFPIE 2017, arXiv:1805.04255. Students traditionally believe that the learning process flows from the professor to the students. In my case, nothing can be further from the truth. The work presented in this article is inspired by the difficulties faced and by the questions addressed to me by my beginning students. The author thanks them for providing me with valuable lessons regarding how to teach an introduction to vector programming. In particular, I thank Josephine Des Rosiers for her many heated debates with me about designing programs