Emergent Requirements for Supporting Introductory Programming

Abstract The problems associated with learning and teaching first year University Computer Science (CS1) programming classes are summarized showing that various support tools and techniques have been developed and evaluated. From this review of applicable support the paper derives ten requirements that a support tool should have in order to improve CS1 student success rate with respect to learning and understanding.

[1]  Gary Lewandowski,et al.  Debugging: the good, the bad, and the quirky -- a qualitative analysis of novices' strategies , 2008, SIGCSE '08.

[2]  Janet Rountree,et al.  Observations of Student Competency in a CS1 Course , 2005, ACE.

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

[4]  Katherine Malan,et al.  Examples that can do harm in learning programming , 2004, OOPSLA '04.

[5]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

[6]  Stephen H. Edwards Rethinking computer science education from a test-first perspective , 2003, OOPSLA '03.

[7]  Robert McCartney,et al.  A multi-national study of reading and tracing skills in novice programmers , 2004, ITiCSE-WGR '04.

[8]  Tanya McGill,et al.  A conceptual framework for analyzing students’ knowledge of programming , 1997 .

[9]  Anna Eckerdal,et al.  Novice Programming Students' Learning of Concepts and Practise , 2009 .

[10]  Colin G. Johnson Abstract Interpretation of Student Programs as a Strategy for Courseware Development , 2006 .

[11]  Richard James,et al.  A cognitive approach to identifying measurable milestones for programming skill acquisition , 2006, ACM SIGCSE Bull..

[12]  Maria Kordaki Modeling and multiple representation systems in the design of a computer environment for the learning of programming and C by beginners , 2007 .

[13]  Kirsti Ala-Mutka,et al.  A study of the difficulties of novice programmers , 2005, ITiCSE '05.

[14]  Robin H. Kay The role of errors in learning computer software , 2007, Comput. Educ..

[15]  Marko Hassinen,et al.  Learning programming by programming: a case study , 2006, Baltic Sea '06.

[16]  Wendy Doubé,et al.  Applying Cognitive load theory to computer science education , 2003, PPIG.

[17]  Ard W. Lazonder,et al.  Error-information in tutorial documentation: Supporting users' errors to facilitate initial skill learning , 1995, Int. J. Hum. Comput. Stud..

[18]  B. Fetaji,et al.  Combining Virtual Learning Environment and Integrated Development Environment to Enhance e-Learning , 2007, 2007 29th International Conference on Information Technology Interfaces.

[19]  Margaret Hamilton,et al.  Predictors of success in a first programming course , 2006 .

[20]  James B. Fenwick,et al.  ClockIt: collecting quantitative data on how beginning software developers really work , 2008, SIGCSE 2008.

[21]  Nelishia Pillay Developing intelligent programming tutors for novice programmers , 2003, SGCS.

[22]  Alireza Ebrahimi,et al.  Novice programmer errors: language constructs and plan composition , 1994, Int. J. Hum. Comput. Stud..

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

[24]  Alireza Ebrahimi,et al.  Empirical study of novice programming with plans and objects , 2006, ACM SIGCSE Bull..

[25]  Caitlin Kelleher,et al.  Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers , 2005, CSUR.

[26]  Richard E. Mayer,et al.  From Novice to expert , 1988 .

[27]  Matthew C. Jadud,et al.  Methods and tools for exploring novice compilation behaviour , 2006, ICER '06.

[28]  Ursula Fuller,et al.  Developing a computer science-specific learning taxonomy , 2007, ACM SIGCSE Bull..

[29]  Richard E. Mayer,et al.  The Psychology of How Novices Learn Computer Programming , 1981, CSUR.