Understanding novice programmer difficulties via guided learning

Learning to program is known to be problematic for a significant number of students as evidenced by high failure rates reported by Computer Science schools. Students either fail to comprehend a range of fundamental programming concepts or carry misunderstandings and misconceptions about programming well into the semester, leading to summative assessment failures. Multiple choice questions in summative assessments are a popular choice of instrument to test novice learners of programming, yet during their formative stages such questions are typically used in the traditional "practice" or "rote learning" contexts, leaving gaps in understanding of programming concepts. In this paper we report the use of multiple choice exercises in a guided learning approach, within the learning context of novice programmers who are typically first-time university students of a Computer Science program. In addition to the use of multiple choice questions for practice, we propose a guided learning tool to identify cognitive lapses in learning programming. We report results of a pilot study that uses a partially-completed guided learning tool, to prevent students at the outset from falling into the cognitive traps that often ensnare the novice programmer.

[1]  Mark Guzdial,et al.  A multi-national, multi-institutional study of assessment of programming skills of first-year CS students , 2001, ITiCSE-WGR '01.

[2]  Margaret Hamilton,et al.  A taxonomic study of novice programming summative assessment , 2009, ACE '09.

[3]  Dave Oliver,et al.  This Course Has A Bloom Rating Of 3.9 , 2004, ACE.

[4]  Andrew Elby,et al.  Tapping Epistemological Resources for Learning Physics , 2003 .

[5]  Daniel D. Garcia,et al.  "But it looks right!": the bugs students don't see , 2004 .

[6]  John Leaney,et al.  Introductory programming, criterion-referencing, and bloom , 2003, SIGCSE.

[7]  Judy Kay,et al.  The Neglected Battle Fields of Syntax Errors , 2003, ACE.

[8]  Margaret Hamilton,et al.  Transforming learning of programming: a mentoring project , 2008, ACE '08.

[9]  Leon E. Winslow,et al.  Programming pedagogy—a psychological overview , 1996, SGCS.

[10]  Anthony V. Robins,et al.  My Program is Correct But it Doesn t Run: A Preliminary Investigation of Novice Programmers Problems , 2005, ACE.

[11]  Daryl J. D'Souza,et al.  Instructor perspectives of multiple-choice questions in summative assessment for novice programmers , 2010, Comput. Sci. Educ..

[12]  F. Javier Lerch,et al.  Why Is Programming (Sometimes) So Difficult? Programming as Scientific Discovery in Multiple Problem Spaces , 1997, Inf. Syst. Res..

[13]  B. Bloom Taxonomy of educational objectives , 1956 .

[14]  Tony Clear,et al.  An Australasian study of reading and comprehension skills in novice programmers, using the bloom and SOLO taxonomies , 2006 .

[15]  D. Krathwohl A Taxonomy for Learning, Teaching and Assessing: , 2008 .

[16]  Elliot Soloway,et al.  Novice mistakes: are the folk wisdoms correct? , 1986, CACM.

[17]  Iwona Miliszewska,et al.  Befriending computer programming: a proposed approach to teaching introductory programming , 2007 .