AUTHORS: Rami Rashkovits, Lavy Ilana
Download as PDF
ABSTRACT: Recursive Functions are one of the difficult concepts learned by computer science (cs) students, and applying a correct recursive solution to a problem is even more difficult. The difficulty lies in the recursion concept, in which the solution to a given problem is based on the solution of the same problem with smaller size. Humans do not usually think in such a way, and they prefer to solve problem iteratively whenever possible. However, many problems are better solved recursively in terms of simplicity and complexity, hence developing recursive thinking is crucial for programmers. During their studies, students learn this issue using metaphors such as the 'little man' or the 'top-down frames', but these metaphors are not very useful when applying a recursive solution. In this paper we provide the students with an interactive tool in which recursive solutions are visualized using frames, trees and graphs, and test the quality of their solutions using these tool, compared with a control group in which the visualizer is not available. We planned an experiment with few problems requiring recursive solutions, and observed the experiment group and the control group. The results show that the tool indeed improves significantly the quality of the solutions of the students who used it.
KEYWORDS: Problem Solving, Recursion, educational technology
REFERENCES:
[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 implementationindependent 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.