Effects of Self-explanations as Scaffolding Tool for Learning Computer Programming

This Research to Practice Full Paper explores students’ self-explanations in the context of programming. Specifically, this paper explores the use of in-code comments as an approach to support students’ learning process and development of abstraction skills in an introductory programming course at the undergraduate level. Computer programming is a difficult skill to learn by novices due to the complexity of multiple elements interacting with each other to produce a specific outcome. Providing worked-examples paired with an engaging pedagogical practice has demonstrated to be an effective strategy for novices to start learning complex topics such as computer programming. One of the strategies that can support the introduction of worked examples is the use of self-explanation activities. In the context of programming, using in-code comments as a way for students to self-explain programming code can support the integration of worked-examples to scaffold their learning process. In this study, students wrote comments to explain how worked examples that were provided completed a specific task. Their comments were scored using an assessment rubric to provide detailed feedback about regarding the quality of their comments and their understanding of the code beyond the line by line execution. The goal of this study is to explore whether students with prior exposure to computer programming generate better self-explanations, and the effect that the quality of the written explanations and students’ prior programming experiences have on student overall performance in the introductory programming course. The implications of this study will contribute to a better understanding of effective practices to incorporate worked examples and self-explanation activities in the form of in-code comments for introductory programming courses.

[1]  Benedict duBoulay,et al.  Some Difficulties of Learning to Program , 1986 .

[2]  Michelene T. H. Chi,et al.  Active-Constructive-Interactive: A Conceptual Framework for Differentiating Learning Activities , 2009, Top. Cogn. Sci..

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

[4]  R. Yin Case Study Research: Design and Methods , 1984 .

[5]  R. Atkinson,et al.  Transitioning From Studying Examples to Solving Problems: Effects of Self-Explanation Prompts and Fading Worked-Out Steps. , 2003 .

[6]  Leonard James Mselle,et al.  The impact of memory transfer language (MTL) in reducing misconceptions in teaching programming to novices , 2011, ITiCSE '11.

[7]  Camilo Vieira,et al.  Writing In-Code Comments to Self-Explain in Computational Science and Engineering Education , 2017, ACM Trans. Comput. Educ..

[8]  Michael C. Loui,et al.  Identifying important and difficult concepts in introductory computing courses using a delphi process , 2008, SIGCSE '08.

[9]  Matthew B. Miles,et al.  Qualitative Data Analysis: An Expanded Sourcebook , 1994 .

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

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

[12]  M. Patton Qualitative research & evaluation methods , 2002 .

[13]  William A. Sandoval,et al.  The Quality of Students' Use of Evidence in Written Scientific Explanations , 2005 .

[14]  T. Lombrozo The structure and function of explanations , 2006, Trends in Cognitive Sciences.

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

[16]  Catherine E. Overson,et al.  Applying science of learning in education: Infusing psychological science into the curriculum , 2014 .

[17]  N. Cowan,et al.  The Magical Mystery Four , 2010, Current directions in psychological science.

[18]  M. D. Ernst Permutation Methods: A Basis for Exact Inference , 2004 .

[19]  Frederick W. B. Li,et al.  Failure rates in introductory programming revisited , 2014, ITiCSE '14.

[20]  Camilo Vieira,et al.  Student Explanations in the Context of Computational Science and Engineering Education , 2019, Cognition and Instruction.

[21]  K. Eisenhardt Building theories from case study research , 1989, STUDI ORGANIZZATIVI.