A comparison of different types of learning activities in a mobile Python tutor

Programming (i.e. coding) is becoming one of the skills expected for successful careers in the knowledge economy, and is being taught at all levels, including primary and secondary schools. Programming skills are difficult to acquire, as the student needs to learn the specific programming language and many related concepts to write good programs. We present PyKinetic, a mobile tutor for Python that serves as a complement to traditional courses. The overall goal of our project is to design learning activities that maximize learning. In this paper, we present several types of learning activities designed for PyKinetic. The first version of the tutor implemented Parsons problems with incomplete lines, which support code-understanding and code-writing skills. The second version of PyKinetic included various types of activities aimed at code-tracing and code-writing skills. The results of two studies we conducted show that Parsons problems are beneficial for novices, while advanced students benefitted more from learning activities which required them to identify and fix incorrect lines of code.

[1]  Robert McCartney,et al.  Naturally occurring data as research instrument: analyzing examination responses to study the novice programmer , 2010, SGCS.

[2]  Philip J. Guo Online python tutor: embeddable web-based program visualization for cs education , 2013, SIGCSE '13.

[3]  Petri Ihantola,et al.  How to study programming on mobile touch devices: interactive Python code exercises , 2013, Koli Calling '13.

[4]  Barbara Ericson,et al.  Subgoals Help Students Solve Parsons Problems , 2016, SIGCSE.

[5]  Errol Thompson,et al.  Bloom's taxonomy for CS assessment , 2008, ACE '08.

[6]  Petri Ihantola,et al.  A mobile learning application for parsons problems with automatic feedback , 2012, Koli Calling.

[7]  Raymond Lister,et al.  Relationships between reading, tracing and writing skills in introductory programming , 2008, ICER '08.

[8]  Patricia Haden,et al.  Parson's programming puzzles: a fun and effective learning tool for first programming courses , 2006 .

[9]  Simon,et al.  Naturally occurring data as research instrument , 2010 .

[10]  Ruth Wylie,et al.  The Self-Explanation Principle in Multimedia Learning , 2014 .

[11]  Michelene T. H. Chi,et al.  Self-Explanations: How Students Study and Use Examples in Learning To Solve Problems. Technical Report No. 9. , 1987 .

[12]  Matthew W. Lewis,et al.  Self-Explonations: How Students Study and Use Examples in Learning to Solve Problems , 1989, Cogn. Sci..

[13]  Jason Chen,et al.  Distractors in Parsons Problems Decrease Learning Efficiency for Young Novice Programmers , 2016, ICER.

[14]  Antonija Mitrovic,et al.  Learning with Engaging Activities via a Mobile Python Tutor , 2017, AIED.

[15]  Beth Simon,et al.  Evaluating a new exam question: Parsons problems , 2008, ICER '08.

[16]  Petri Ihantola,et al.  Two-Dimensional Parson's Puzzles: The Concept, Tools, and First Observations , 2011, J. Inf. Technol. Educ. Innov. Pract..

[17]  Antonija Mitrovic,et al.  Learning with intelligent tutors and worked examples: selecting learning activities adaptively leads to better learning outcomes than a fixed curriculum , 2016, User Modeling and User-Adapted Interaction.