skip to main content
research-article
Public Access

RecurTutor: An Interactive Tutorial for Learning Recursion

Published: 19 November 2018 Publication History

Abstract

Recursion is one of the most important and hardest topics in lower division computer science courses. As it is an advanced programming skill, the best way to learn it is through targeted practice exercises. But the best practice problems are time consuming to manually grade by an instructor. As a consequence, students historically have completed only a small number of recursion programming exercises as part of their coursework. We present a new way for teaching such programming skills. Students view examples and visualizations, then practice a wide variety of automatically assessed, small-scale programming exercises that address the sub-skills required to learn recursion. The basic recursion tutorial (RecurTutor) teaches material typically encountered in CS2 courses. Students who used RecurTutor had significantly better grades on recursion exam questions than did students who used typical instruction. Students who experienced RecurTutor spent significantly more time on solving recursive programming exercises than students who experienced typical instruction, and came out with a significantly higher confidence level.

References

[1]
A. C. Benander and B. A. Benander. 2008. Student monks—Teaching recursion in an IS or CS programming course using the Towers of Hanoi. Journal of Information Systems Education 19, 4 (2008), 455--467.
[2]
S. Bhuiyan, J. Greer, and G. McCalla. 1990. Mental models of recursion and their use in the SCENT programming advisor. Knowledge Based Computer Systems. Springer, 133--144.
[3]
Amanda Chaffin, Katelyn Doran, Drew Hicks, and Tiffany Barnes. 2009. Experimental evaluation of teaching recursion in a video game. In Proceedings of the 2009 ACM SIGGRAPH Symposium on Video Games (Sandbox’09). 79--86.
[4]
M. T. H. Chi, R. Glaser, and M. Farr. 2014. The Nature of Expertise. Psychology Press.
[5]
Ruth C. Clark and Richard E. Mayer. 2011. E-learning and the Science of Instruction: Proven Guidelines for Consumers and Designers of Multimedia Learning. Wiley.com.
[6]
Linda Crocker and James Algina. 1986. Introduction to Classical and Modern Test Theory. ERIC.
[7]
Nell B. Dale. 2006. Most difficult topics in CS1: Results of an online survey of educators. SIGCSE Bulletin 38, 2 (June 2006), 49--53.
[8]
Wanda Dann, Stephen Cooper, and Randy Pausch. 2001. Using visualization to teach novices recursion. SIGCSE Bulletin 33, 3 (June 2001), 109--112.
[9]
Edward Dillon, Monica Anderson, and Marcus Brown. 2012. Comparing feature assistance between programming environments and their effect on novice programmers. Journal of Computing Sciences in Colleges 27, 5 (2012), 69--77.
[10]
Jeffrey Edgington. 2007. Teaching and viewing recursion as delegation. Journal of Computing Sciences in the Colleges 23, 1 (Oct. 2007), 241--246.
[11]
J. Eldred, J. Ward, K. Snowden, and Y. Dutton. 2006. The nature and role of confidence—Ways of developing and recording changes in the learning context. Adults Learning Journal (2006).
[12]
J. Eskola and Jorma Tarhio. 2002. On visualization of recursion with excel. In Proceedings of the 2nd Program Visualization Workshop, Mordechai Ben-Ari (Ed.). HorstrupCentret, Denmark, 45--51.
[13]
Mohammed F. Farghally, Kyu Han Koh, Hossameldin Shahin, and Clifford A. Shaffer. 2017. Evaluating the effectiveness of algorithm analysis visualizations. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE’17). 201--206.
[14]
Gary Ford. 1982. A framework for teaching recursion. SIGCSE Bulletin 14, 2 (June 1982), 32--39.
[15]
E. Fouh, D. A. Breakiron, S. Hamouda, M. F. Farghally, and C. A. Shaffer. 2014. Exploring students learning behavior with an interactive eTextbook in computer science courses. Computers in Human Behavior (Dec. 2014), 478--485.
[16]
E. Fouh, S. Hamouda, M. F. Farghally, and C. A. Shaffer. 2016. Automating learner feedback in an eTextbook for data structures and algorithms courses. In Challenges in ICT Education: Formative Assessment, Learning Data Analytics and Gamification, S. Caballe and R. Clariso (Eds.). Elsevier Science.
[17]
Eric Fouh, Ville Karavirta, Daniel A. Breakiron, Sally Hamouda, Simin Hall, Thomas L. Naps, and Clifford A. Shaffer. 2014. Design and architecture of an interactive eTextbook—The OpenDSA system. Science of Computer Programming 88 (2014), 22--40.
[18]
Jim Frost. 2014. How to Interpret a Regression Model with Low R-squared and Low P values. Retrieved on September 12, 2018 from http://blog.minitab.com/blog/adventures-in-statistics/how-to-interpret-a-regression-model-with-low-r-squared-and-low-p-values.
[19]
Timothy S. Gegg-Harrison. 1999. Exploiting program schemata to teach recursive programming. Learning to Build and Comprehend Complex Information Structures: Prolog as a Case Study, Ablex, P. Brna, B. duBoulay, and H. Pain (Eds.). 347--379.
[20]
Carlisle E. George. 2000. EROSI-visualising recursion and discovering new errors. In Proceedings of the 31st SIGCSE Technical Symposium on Computer Science Education (SIGCSE’00). 305--309.
[21]
David Ginat and Eyal Shifroni. 1999. Teaching recursion in a procedural environment—How much should we emphasize the computing model? In The Proceedings of the 30th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’99). 127--131.
[22]
Ken Goldman, Paul Gross, Cinda Heeren, Geoffrey L. Herman, Lisa Kaczmarczyk, Michael C. Loui, and Craig Zilles. 2010. Setting the scope of concept inventories for introductory computing subjects. Transactions on Computing Education 10, 2 (June 2010), Article 5, 29 pages.
[23]
Aaron Gordon. 2006. Teaching recursion using recursively-generated geometric designs. Journal of Computing Sciences in Colleges 22, 1 (Oct. 2006), 124--130.
[24]
Katherine Gunion, Todd Milford, and Ulrike Stege. 2009. Curing recursion aversion. SIGCSE Bulletin 41, 3 (July 2009), 124--128.
[25]
Sally Hamouda. 2015. Learning Hard Programming Skills. Ph.D. Dissertation. Virginia Polytechnic Institute and State University, Blacksburg, Virginia.
[26]
Matthew Hertz and Sarah Michele Ford. 2013. Investigating factors of student learning in introductory courses. In Proceeding of the 44th ACM Technical Symposium on Computer Science Education (SIGCSE’13). 195--200.
[27]
Wen-Jung Hsin. 2008. Teaching recursion using recursion graphs. Journal of Computing Sciences in Colleges 23, 4 (April 2008), 217--222.
[28]
Robert L. Kruse. 1982. On teaching recursion. In Proceedings of the 13th SIGCSE Technical Symposium on Computer Science Education (SIGCSE’82). 92--96.
[29]
D. Midian Kurland, Roy D. Pea, Catherine Clement, and Ronald Mawby. 1986. A study of the development of programming ability and thinking skills in high school students. Journal of Educational Computing Research 2, 4 (1986), 429--458.
[30]
Raymond Lister, Elizabeth S. Adams, Sue Fitzgerald, William Fone, John Hamer, Morten Lindholm, Robert McCartney, Jan Erik Moström, Kate Sanders, Otto Seppälä, Beth Simon, and Lynda Thomas. 2004. A multi-national study of reading and tracing skills in novice programmers. SIGCSE Bulletin 36, 4 (June 2004), 119--150.
[31]
L. Malmi, V. Karavirta, A. Korhonen, J. Nikander, O. Seppälä, and P. Silvasti. 2004. Visual algorithm simulation exercise system with automatic assessment: TRAKLA2. Informatics in Education 3, 2 (Sept. 2004), 267--288.
[32]
Claudio Mirolo. 2010. Learning (through) recursion: A multidimensional analysis of the competences achieved by CS1 students. In Proceedings of the 15th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE’10). 160--164.
[33]
M. Norman and T. Hyland. 2003. The role of confidence in lifelong learning. Educational Studies 29, 2-3 (2003), 261--272.
[34]
N. Parlante. 2011. Codingbat: Code practice. Retrieved on September 12, 2018 from http://codingbat.com.
[35]
Irene Polycarpou, Ana Pasztor, and Malek Adjouadi. 2008. A conceptual approach to teaching induction for computer science. SIGCSE Bulletin 40, 1 (March 2008), 9--13.
[36]
Barbara Z. Presseisen. 2008. Teaching for intelligence. Corwin Press.
[37]
Noa Ragonis and Mordechai Ben-Ari. 2005. A long-term investigation of the comprehension of OOP concepts by novices. Computer Science Education 15, 3 (2005), 203--221.
[38]
Anthony Robins, Janet Rountree, and Nathan Rountree. 2003. Learning and teaching programming: A review and discussion. Computer Science Education 13, 2 (2003), 137--172.
[39]
Manuel Rubio-Sánchez and Isidoro Hernán-Losada. 2007. Exploring recursion with Fibonacci numbers. SIGCSE Bulletin 39, 3 (June 2007), 359--359.
[40]
Ian Sanders and Tamarisk Scholtz. 2012. First year students’ understanding of the flow of control in recursive algorithms. African Journal of Research in Mathematics, Science and Technology Education 16, 3 (2012), 348-362. Retrieved on September 12, 2018 from
[41]
Tamarisk Lurlyn Scholtz and Ian Sanders. 2010. Mental models of recursion: Investigating students’ understanding of recursion. In Proceedings of the 15th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE’10). 103--107.
[42]
T. Schuller, A. Brassett-Grundy, A. Green, C. Hammond, and J. Preston. 2002. Learning, Continuity and Change in Adult Life. Wider Benefits of Learning Research Report. ERIC.
[43]
Raja Sooriamurthi. 2001. Problems in comprehending recursion and suggested solutions. In Proceedings of the 6th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE’01). 25--28.
[44]
John Stasko, Albert Badre, and Clayton Lewis. 1993. Do algorithm animations assist learning: An empirical study and analysis. In Proceedings of the INTERCHI’93 Conference on Human Factors in Computing Systems (INTERCHI’93). 61--66.
[45]
Ben Stephenson. 2009. Using graphical examples to motivate the study of recursion. Journal of Computing Sciences in Colleges 25, 1 (Oct. 2009), 42--50.
[46]
Linda Stern and Lee Naish. 2002. Visual representations for recursive algorithms. In Proceedings of the 33rd SIGCSE Technical Symposium on Computer Science Education (SIGCSE’02). 196--200.
[47]
Joe Tessler, Bradley Beth, and Calvin Lin. 2013. Using Cargo-Bot to provide contextualized learning of recursion. In Proceedings of the 9th Annual International ACM Conference on International Computing Education Research (ICER’13). 161--168.
[48]
Allison Elliott Tew and Mark Guzdial. 2011. The FCS1: A language independent assessment of CS1 knowledge. In Proceedings of the 42nd ACM Technical Symposium on Computer Science Education (SIGCSE’11). 111--116.
[49]
Sho-Huan Tung, Ching-Tao Chang, Wing-Kwong Wong, and Jihn-Chang Jehng. 2001. Visual representations for recursion. International Journal of Human-Computer Studies 54, 3 (March 2001), 285--300.
[50]
J. Angel Velazquez-Iturbide, Antonio Perez-Carrasco, and Jaime Urquiza-Fuentes. 2008. SRec: An animation system of recursion for algorithm courses. SIGCSE Bulletin 40, 3 (June 2008), 225--229.
[51]
Susan Wiedenbeck. 1988. Learning recursion as a concept and as a programming technique. SIGCSE Bulletin 20, 1 (Feb. 1988), 275--278.
[52]
Derek Wilcocks and Ian Sanders. 1994. Animating recursion as an aid to instruction. Computers and Education 23, 3 (1994), 221--226.
[53]
Michael Wirth. 2008. Introducing recursion by parking cars. SIGCSE Bulletin 40, 4 (Nov. 2008), 52--55.
[54]
Cheng-Chih Wu, Nell B. Dale, and Lowell J. Bethel. 1998. Conceptual models and cognitive learning styles in teaching recursion. SIGCSE Bulletin 30, 1 (March 1998), 292--296.
[55]
Chen-Chih Wu, Greg C. Lee, and Janet Mei-Chuen Lin. 1998. Visualizing programming in recursion and linked lists. In Proceedings of the 3rd Australasian Conference on Computer Science Education (ACSE’98). 180--186.

Cited By

View all

Index Terms

  1. RecurTutor: An Interactive Tutorial for Learning Recursion

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Computing Education
    ACM Transactions on Computing Education  Volume 19, Issue 1
    March 2019
    156 pages
    EISSN:1946-6226
    DOI:10.1145/3282284
    Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 19 November 2018
    Accepted: 01 February 2018
    Revised: 01 October 2017
    Received: 01 July 2016
    Published in TOCE Volume 19, Issue 1

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Recursion
    2. eTextbook
    3. interactive online tutorial
    4. misconceptions

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Funding Sources

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)337
    • Downloads (Last 6 weeks)59
    Reflects downloads up to 14 Sep 2024

    Other Metrics

    Citations

    Cited By

    View all

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format.

    HTML Format

    Get Access

    Login options

    Full Access

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media