An interactive functional programming tutor

We introduce an interactive tutor that supports the stepwise development of simple functional programs. Using this tutor, students receive feedback about whether or not they are on the right track, can ask for a hint when they are stuck, and get suggestions about how to refactor their program. Our tutor generates this semantically rich feedback from model solutions, using advanced concepts from software technology. We show how a teacher can add an exercise to the tutor, and fine-tune feedback. We report on an experiment in which we used our tutor.

[1]  Manuel Núñez,et al.  WHAT: Web-Based Haskell Adaptive Tutor , 2002, AIMSA.

[2]  Jun Hong,et al.  Guided programming and automated error analysis in an intelligent Prolog tutor , 2004, Int. J. Hum. Comput. Stud..

[3]  Daan Leijen,et al.  Helium, for learning Haskell , 2003, Haskell '03.

[4]  M. Guzdial Programming Environments for Novices , 1997 .

[5]  Elliot Soloway,et al.  From Problems to Programs via Plans: The Content and Structure of Knowledge for Introductory LISP Programming , 1985 .

[6]  Nelishia Pillay Developing intelligent programming tutors for novice programmers , 2003, SGCS.

[7]  Benedict du Boulay Programming Environments for Novices , 1992, Intelligent Tutoring Systems.

[8]  Elliot Soloway,et al.  PROUST: Knowledge-Based Program Understanding , 1984, IEEE Transactions on Software Engineering.

[9]  Matthew J. Conway,et al.  Alice: Easy-to-Learn 3D Scripting for Novices , 1998 .

[10]  Johan Jeuring,et al.  Using strategies for assessment of programming exercises , 2010, SIGCSE.

[11]  Koen Claessen,et al.  QuickCheck: a lightweight tool for random testing of Haskell programs , 2000, ICFP.

[12]  Amruth N. Kumar,et al.  The effect of using problem-solving software tutors on the self-confidence of female students , 2008, SIGCSE '08.

[13]  Yam San Chee,et al.  Transformation-Based Diagnosis of Student Programs for Programming Tutoring Systems , 2003, IEEE Trans. Software Eng..

[14]  John R. Anderson,et al.  Skill Acquisition and the LISP Tutor , 1989, Cogn. Sci..

[15]  Eric Rosenbaum,et al.  Scratch: programming for all , 2009, Commun. ACM.

[16]  David H. Jonassen,et al.  Handbook of Research for educational Communications and Technology , 1997 .

[17]  Frantisek Franek,et al.  A Prototype for an Intelligent Tutoring System for Students Learning to Program in Java , 2004 .

[18]  Johan Jeuring,et al.  A Programming Tutor for Haskell , 2011, CEFP.

[19]  E. Mory Feedback research revisited. , 2004 .

[20]  John R. Anderson,et al.  Cognitive Tutors: Lessons Learned , 1995 .

[21]  Philip Miller,et al.  Evolution of Novice Programming Environments: The Structure Editors of Carnegie Mellon University , 1994, Interact. Learn. Environ..

[22]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[23]  Joseph L. Zachary,et al.  Automated feedback on programs means students need less help from teachers , 2001, SIGCSE '01.

[24]  Johan Jeuring,et al.  Specifying Rewrite Strategies for Interactive Exercises , 2010, Math. Comput. Sci..