I read this paper with great anticipation, as I, too, attended Kim Bruce’s keynote address at the 2005 ACM SIGCSE Symposium. There was also a paper presentation on this topic [1]. I am interested in how others, such as the authors of this paper, implement the teaching of structural recursion, as presented. I was pleased to see that the authors look at more than what language features to explore, but present an active learning exercise to promote concept reinforcement for the students.
The paper is brief, but contains useful information on how to explore structural recursion from abstract concept to noncomputer implementation, to programming. As I reviewed the work, I could envision how this would translate into an actual course lecture, although the term “lecture” does not seem appropriate here.
The paper discusses approaches for covering concepts such as recursive patterns, memory management, and mutators. Exercises and activities force students to reflect on the role of each part and method for the recursive structure.
I was pleasantly surprised that the paper included Python code, and I can see how this approach would easily convert to Java or C++, and, I assume, other languages as well. Perhaps adding this code explains the limited discussion about the practicalities of the active learning activities (for example, the maximum number of students). Although I do not teach objects first, I see how this work could be used to introduce the concept of structural recursion in an introductory computer-science course.