Practicum : a scalable online system for faded worked examples in CS 1

Universities are experiencing record enrollments in CS1 courses and are struggling to keep up with demand while also offering a quality experience to an increasingly diverse population. Scalable, online tools will be an important part of meeting this challenge. Current tools available to CS1 students often provide very limited feedback. Faded worked examples are a proven pedagogical technique that can provide richer feedback, but there there are many open questions about how best to deliver them in an online system. Furthermore, few empirical studies explore the design and impact of these types of tools in CS1 courses. In this technical report, we present Practicum, a suite of new online tools that provide step-by-step explanations of CS1 concepts and gradually fade these explanations over a series of problems. Our system exploits the procedural nature of these concepts to synthesize explanations from example problems. We studied the impact of these tools by deploying Practicum in a large CS1 course with over 1000 students. Though a controlled study in the CS1 lab sections found that Practicum did not improve performance compared to existing materials, students who used Practicum on their own did perform better on the exams. These students were more likely to be female, have less programming experience, and plan on a non-computer science major. These results demonstrate Practicum has the potential to improve learning in a CS1 course, and is accessible to less traditional CS1 students, making it a promising vehicle for for further exploration into the design of interactive tools for CS1.

[1]  Peter Brusilovsky,et al.  Intelligent Tutor, Environment and Manual for Introductory Programming , 1992 .

[2]  S. Derry,et al.  Learning from Examples: Instructional Principles from the Worked Examples Research , 2000 .

[3]  Takashi Yamauchi,et al.  Learning from human tutoring , 2001, Cogn. Sci..

[4]  Richard K. Staley,et al.  From Example Study to Problem Solving: Smooth Transitions Help Learning , 2002 .

[5]  Amruth N. Kumar,et al.  Explanation of step-by-step execution as feedback for problems on program analysis , and its generation in model-based problem-solving tutors , 2006 .

[6]  Richard James,et al.  Suggestions for graduated exposure to programming concepts using fading worked examples , 2007, ICER '07.

[7]  Lauri Malmi,et al.  A survey of literature on the teaching of introductory programming , 2007, ITiCSE-WGR '07.

[8]  Davide Fossati,et al.  Supporting Computer Science Curriculum: Exploring and Learning Linked Lists with iList , 2009, IEEE Transactions on Learning Technologies.

[9]  Natalie Ruiz Cognitive load measurement in multimodal interfaces , 2011 .

[10]  John Sweller,et al.  Cognitive Load Theory , 2020, Encyclopedia of Education and Information Technologies.

[11]  Mark Guzdial,et al.  Subgoal-labeled instructional material improves performance and transfer in learning to develop mobile applications , 2012, ICER '12.

[12]  Lauri Malmi,et al.  A Review of Generic Program Visualization Systems for Introductory Programming Education , 2013, TOCE.

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

[14]  Teemu Sirkiä,et al.  A JavaScript library for visualizing program execution , 2013, Koli Calling '13.

[15]  Andrew Luxton-Reilly,et al.  Worked examples in computer science , 2014, ACE.

[16]  Amruth N. Kumar The Effectiveness of Visualization for Learning Expression Evaluation , 2015, SIGCSE.

[17]  Sumit Gulwani,et al.  A Framework for Automatically Generating Interactive Instructional Scaffolding , 2015, CHI.

[18]  Mark Guzdial,et al.  Subgoals, Context, and Worked Examples in Learning Computing Problem Solving , 2015, ICER.

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