Rashkovits Rami, Ilana Lavy



Interactive Debug and Exploration of Recursive Functions

pdf PDF


One of the most difficult concepts students learn in computer science (cs) studies is the concept of recursion. Recursion refers to the situation in which a solution to a problem contains its own (reduced) copy. Recursive algorithms are very common in the cs field and therefore a good understanding of the concept is necessary. The difficulty in understanding recursive processes is that recursive thinking is not intuitive. Over the years, several visual models have been developed to address this problem, such as the 'little man' and the 'top-down frames', but they do provide only limited framework to assist the design, monitoring and understanding of new problems. As part of this research, we built a computerized tool which may facilitate understanding of recursion and serve as a tool for the learner to follow a recursive process run visually. In this paper we describe the exploratory tool, and indicating its potential contributions. We prove by an empirical comparative study that the tool contributed to students and promoted higher-quality solutions with fewer errors.


Recursion, educational technology


[1] Gal-Ezer, J., & Harel, D. 1998. "What (else) should CS educators know?". Communications of the ACM, (41:9), pp. 77-84. [1] Gal-Ezer, J., & Harel, D. 1998. "What (else) should CS educators know?". Communications of the ACM, (41:9), pp. 77-84. 

[2] Dann, W., Cooper, S., & Pausch, R. 2001. "Using visualization to teach novices recursion". ACM SIGCSE Bulletin, (33:3), pp. 109-112. 

[3] Harvy, B. (1985). Computer science Logo style. Volume 1: Intermediate programming. MIT Press. 

[4] Roberts, E. 2006. Thinking recursively with Java. Hoboken, NJ: John Wiley. 

[5] Ford, G. 1984."An implementation-independent approach to teaching recursion". ACM SIGCSE Bulletin, (16:1). pp. 213–216. 

[6] Wilcocks, D., and Sanders, I. 1994. "Animating recursion as an aid to instruction". Computers & Education (23:3) pp. 221-226. 

[7] Ginat, D., and Shifroni, E. 1999. "Teaching recursion in a procedural environment—how much should we emphasize the computing model?". ACM SIGCSE Bulletin (31:1), pp. 127-131. 

[8] Lewis, C. M. 2014. "Exploring variation in students' correct traces of linear recursion". In Proceedings of the tenth annual conference on International computing education research. pp. 67-74. ACM. 

[9] Wu, C. C., Dale, N. B., & Bethel, L. J. 1998. "Conceptual models and cognitive learning styles in teaching recursion". In ACM SIGCSE Bulletin (30:1), pp. 292-296. 

[10] Hundhausen, C. D., Douglas, S. A., and Stasko, J. T. 2002. "A meta-study of algorithm visualization effectiveness". Journal of Visual Languages & Computing, (13:3), pp. 259-290. 

[11] Sa, L., & Hsin, W. J. 2010. "Traceable Recursion with Graphical Illustration for Novice Programmers". InSight: A Journal of Scholarly Teaching (5), pp. 54-62. 

[12] AlZoubi, O., Fossati, D., Di Eugenio, B., Green, N., Alizadeh, M., and Harsley, R. 2015. "A Hybrid Model for Teaching Recursion". In Proceedings of the 16th Annual Conference on Information Technology Education. pp. 65-70. ACM. 

[13] Dann, W., Cooper, S., & Pausch, R. 2001. Using visualization to teach novices recursion. ACM SIGCSE Bulletin, 33(3), 109-112.

Cite this paper

Rashkovits Rami, Ilana Lavy. (2017) Interactive Debug and Exploration of Recursive Functions. International Journal of Education and Learning Systems, 2, 143-149


Copyright © 2017 Author(s) retain the copyright of this article.
This article is published under the terms of the Creative Commons Attribution License 4.0