Learning Programming Languages through Corrective Feedback and Concept Visualisation

In this paper we address common issues faced by students in programming courses by combining implicit and explicit feedback measures to provide real-time assistance in coding tasks. We also introduce our concept visualisation technique, which aims to visually convey programming concepts and information on the execution state to students. The mapping between game content construction actions and actual source code forms an implicit example-based learning environment, allowing programming concepts to be more clearly conveyed than in conventional integrated development environment (IDE) or static lecture materials. An experimental evaluation of a prototype system suggests the potential of this approach for programming education by scoring highly in terms of both user satisfaction and potential pedagogical capability.

[1]  J. Hattie,et al.  The Power of Feedback , 2007 .

[2]  Gabriel Valiente,et al.  Algorithms on Trees and Graphs , 2002, Springer Berlin Heidelberg.

[3]  Lael J. Schooler,et al.  The Disruptive Potential of Immediate Feedback , 2008 .

[4]  Cory J. Butz,et al.  A web-based bayesian intelligent tutoring system for computer programming , 2006, Web Intell. Agent Syst..

[5]  Rynson W. H. Lau,et al.  A pedagogical interface for authoring adaptive e-learning courses , 2010, MTDL '10.

[6]  Samy S. Abu Naser JEE-Tutor: An Intelligent Tutoring System For Java Expressions Evaluation , 2008 .

[7]  Susanne Narciss,et al.  Fostering achievement and motivation with bug-related tutoring feedback in a computer-based training for written subtraction. , 2006 .

[8]  Fu Lee Wang,et al.  Hybrid Learning and Education, First International Conference, ICHL 2008, Hong Kong, China, August 13-15, 2008, Proceedings , 2008, ICHL.

[9]  Chanchal Kumar Roy,et al.  Comparison and evaluation of code clone detection techniques and tools: A qualitative approach , 2009, Sci. Comput. Program..

[10]  Caitlin Kelleher,et al.  Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers , 2005, CSUR.

[11]  Spencer Benson,et al.  Learning with Invisible Others: Perceptions of Online Presence and their Relationship to Cognitive and Affective Learning , 2005, J. Educ. Technol. Soc..

[12]  Maria Virvou,et al.  Combining Software Games with Education: Evaluation of its Educational Effectiveness , 2005, J. Educ. Technol. Soc..

[13]  Jeffrey Edgington,et al.  A games first approach to teaching introductory programming , 2007, SIGCSE.

[14]  J. Gee Learning by design: Games as learning machines , 2004 .

[15]  Abraham Bernstein,et al.  Detecting similar Java classes using tree algorithms , 2006, MSR '06.

[16]  Jens Bennedsen,et al.  Failure rates in introductory programming , 2007, SGCS.

[17]  Bertrand Meyer,et al.  Compiler error messages: what can help novices? , 2008, SIGCSE '08.

[18]  Samy S. Abu-Naser JEE-Tutor: An Intelligent Tutoring System for Java Expression Evaluation , 2008 .

[19]  Fu Lee Wang,et al.  Designing Programming Exercises with Computer Assisted Instruction , 2008, ICHL.

[20]  B. Bloom The 2 Sigma Problem: The Search for Methods of Group Instruction as Effective as One-to-One Tutoring , 1984 .

[21]  Anabela Gomes,et al.  Learning to program - difficulties and solutions , 2007 .

[22]  Charlie Daly,et al.  An automated learning system for Java programming , 2004, IEEE Transactions on Education.

[23]  Eike Falk Anderson,et al.  Critters in the classroom: a 3D computer-game-like tool for teaching programming to computer animation students , 2007, SIGGRAPH '07.

[24]  J. Jackson,et al.  Identifying Top Java Errors for Novice Programmers , 2005, Proceedings Frontiers in Education 35th Annual Conference.

[25]  Antonija Mitrovic,et al.  J-Latte: a Constraint-Based Tutor for Java , 2009 .

[26]  Rynson W. H. Lau,et al.  An Adaptive Course Generation Framework , 2010, Int. J. Distance Educ. Technol..

[27]  Edward R. Sykes Developmental Process Model for the Java Intelligent Tutoring System , 2007 .

[28]  Christopher A. Egert,et al.  Motivating OOP by blowing things up: an exercise in cooperation and competition in an introductory java programming course , 2006, SIGCSE '06.

[29]  Jessica D. Bayliss,et al.  Games as a "flavor" of CS1 , 2006, SIGCSE '06.

[30]  Peter Brusilovsky,et al.  Guiding students to the right questions: adaptive navigation support in an E-Learning system for Java programming , 2010, J. Comput. Assist. Learn..

[31]  Randy F. Pausch,et al.  Making the connection: programming with animated small world , 2000, ITiCSE '00.