Programming, Problem Solving, and Self-Awareness: Effects of Explicit Guidance

More people are learning to code than ever, but most learning opportunities do not explicitly teach the problem solving skills necessary to succeed at open-ended programming problems. In this paper, we present a new approach to impart these skills, consisting of: 1) explicit instruction on programming problem solving, which frames coding as a process of translating mental representations of problems and solutions into source code, 2) a method of visualizing and monitoring progression through six problem solving stages, 3) explicit, on-demand prompts for learners to reflect on their strategies when seeking help from instructors, and 4) context-sensitive help embedded in a code editor that reinforces the problem solving instruction. We experimentally evaluated the effects of our intervention across two 2-week web development summer camps with 48 high school students, finding that the intervention increased productivity, independence, programming self-efficacy, metacognitive awareness, and growth mindset. We discuss the implications of these results on learning technologies and classroom instruction.

[1]  Margaret M. Burnett,et al.  Principles of a debugging-first puzzle game for computing education , 2014, 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[2]  Ronan G. Reilly,et al.  Examining the role of self-regulated learning on introductory programming performance , 2005, ICER '05.

[3]  D. Cross,et al.  Developmental and Instructional Analyses of Children's Metacognition and Reading Comprehension. , 1988 .

[4]  D. Forrest-Pressley,et al.  Metacognition, cognition, and human performance , 1985 .

[5]  Anneli Eteläpelto Metacognition and the Expertise of Computer Program Comprehension , 1993 .

[6]  J. Metcalfe,et al.  Metacognition : knowing about knowing , 1994 .

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

[8]  Gregory Schraw Promoting general metacognitive awareness , 1998 .

[9]  K. Koedinger,et al.  Designing for metacognition—applying cognitive tutor principles to the tutoring of help seeking , 2007 .

[10]  Yann Riche,et al.  The role of conceptual knowledge in API usability , 2011, 2011 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[11]  J. Metcalfe,et al.  Shimamura ( Eds ) Metacognition : knowing about knowing , 2008 .

[12]  Katy Jordan,et al.  Initial trends in enrolment and completion of massive open online courses , 2014 .

[13]  Christopher Scaffidi,et al.  Skill Progression Demonstrated by Users in the Scratch Animation Environment , 2012, Int. J. Hum. Comput. Interact..

[14]  Bruce C. Howard,et al.  Measures of children's knowledge and regulation of cognition , 2002 .

[15]  Raymond Lister,et al.  Geek genes and bimodal grades. , 2010 .

[16]  C. Dweck Mindset: The New Psychology of Success , 2006 .

[17]  Jean-Michel Hoc,et al.  Language Semantics, Mental Models and Analogy , 1990 .

[18]  Beth Simon,et al.  Retaining nearly one-third more majors with a trio of instructional best practices in CS1 , 2013, SIGCSE '13.

[19]  Lisa S. Blackwell,et al.  Implicit theories of intelligence predict achievement across an adolescent transition: a longitudinal study and an intervention. , 2007, Child development.

[20]  Gregory Schraw,et al.  The Effect of Knowledge and Strategy Training on Monitoring Accuracy , 2002 .

[21]  Jill Cao An idea garden for end-user programmers , 2012, CHI EA '12.

[22]  A. Bandura Social Foundations of Thought and Action , 1986 .

[23]  Margaret M. Burnett,et al.  A principled evaluation for a principled idea garden , 2015, 2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[24]  Allan Fisher,et al.  Unlocking the clubhouse: the Carnegie Mellon experience , 2002, SGCS.

[25]  Henry Jay Becker,et al.  The Importance of a Methodology That Maximizes Falsifiability: Its Applicability to Research About Logo , 1987 .

[26]  J. Greeno,et al.  Practicing Representation: Learning with and about Representational Forms , 1997 .

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

[28]  George Ghinea,et al.  On the Domain-Specificity of Mindsets: The Relationship Between Aptitude Beliefs and Programming Practice , 2014, IEEE Transactions on Education.

[29]  Brad A. Myers,et al.  Six Learning Barriers in End-User Programming Systems , 2004, 2004 IEEE Symposium on Visual Languages - Human Centric Computing.

[30]  D. Clements,et al.  Effects of Computer Programming on Young Children's Cognition , 1984 .

[31]  Charles E. McDowell,et al.  The effects of pair-programming on performance in an introductory programming course , 2002, SIGCSE '02.

[32]  Caitlin Kelleher,et al.  Storytelling alice motivates middle school girls to learn computer programming , 2007, CHI.

[33]  Mary Shaw,et al.  Estimating the numbers of end users and end user programmers , 2005, 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05).

[34]  A. Bandura Self-efficacy: toward a unifying theory of behavioral change. , 1977, Psychology Review.

[35]  Amy J. Ko,et al.  Comparing the Effectiveness of Online Learning Approaches on CS1 Learning Outcomes , 2015, ICER.

[36]  Kentaro Toyama,et al.  Technology as amplifier in international development , 2011, iConference.

[37]  Raymond Lister Programming, syntax and cognitive load (part 2) , 2011, INROADS.

[38]  Margaret M. Burnett,et al.  Idea Garden: Situated Support for Problem Solving by End-User Programmers , 2015, Interact. Comput..

[39]  David B. Palumbo,et al.  The Effect of BASIC Programming Language Instruction on High School Students’ Problem Solving Ability and Computer Anxiety , 1991 .

[40]  Robert H. Sloan,et al.  CS 0.5: a better approach to introductory computer science for majors , 2008, SIGCSE '08.

[41]  Ido Roll,et al.  Evaluating metacognitive scaffolding in Guided Invention Activities , 2012 .

[42]  Teresa M. Shaft Helping programmers understand computer programs: the use of metacognition , 1995, DATB.

[43]  Philip J. Guo,et al.  Two studies of opportunistic programming: interleaving web foraging, learning, and writing code , 2009, CHI.

[44]  Margaret M. Burnett,et al.  End-user programmers in trouble: Can the Idea Garden help them to help themselves? , 2013, 2013 IEEE Symposium on Visual Languages and Human Centric Computing.

[45]  S. A. Coutinho,et al.  Self-efficacy, metacognition, and performance. , 2008 .

[46]  Philip J. Guo,et al.  Perceptions of non-CS majors in intro programming: The rise of the conversational programmer , 2015, 2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[47]  Abdrabo Moghazy Soliman,et al.  Metacognitive strategy training improves driving situation awareness , 2009 .

[48]  Leen-Kiat Soh,et al.  Exploring Changes in Computer Science Students' Implicit Theories of Intelligence Across the Semester , 2015, ICER.

[49]  Margaret M. Burnett,et al.  An exploration of design opportunities for “gardening” end-user programmers' ideas , 2011, 2011 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[50]  Kent J. Crippen,et al.  Promoting Self-Regulation in Science Education: Metacognition as Part of a Broader Perspective on Learning , 2006 .

[51]  V. Grau,et al.  The development of two observational tools for assessing metacognition and self-regulated learning in young children , 2009 .

[52]  A. J. Ko,et al.  Attitudes and self-efficacy in young adults' computing autobiographies , 2009, 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[53]  Petek Askar,et al.  AN INVESTIGATION OF FACTORS RELATED TO SELF-EFFICACY FOR JAVA PROGRAMMING AMONG ENGINEERING STUDENTS , 2009 .

[54]  Paul Luo Li,et al.  What Makes a Great Software Engineer? , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[55]  Martin P. Robillard,et al.  How effective developers investigate source code: an exploratory study , 2004, IEEE Transactions on Software Engineering.