Extreme apprenticeship method in teaching programming for beginners

Learning a craft like programming is efficient when novices learn from people who already master the craft. In this paper we define Extreme Apprenticeship, an extension to the cognitive apprenticeship model. Our model is based on a set of values and practices that emphasize learning by doing together with continuous feedback as the most efficient means for learning. We show how the method was applied to a CS I programming course. Application of the method resulted in a significant decrease in the dropout rates in comparison with the previous traditionally conducted course instances.

[1]  Scott Grissom,et al.  A practical approach to integrating active and collaborative learning into the introductory computer science curriculum , 2000 .

[2]  Pm Jenkinson,et al.  Cognitive , 2020, Definitions.

[3]  Karen Huffman Psychology in Action , 1987 .

[4]  Toni R. Black Helping novice programming students succeed , 2006 .

[5]  A. Bandura,et al.  Social foundation of thoughts and actions: A social cognitive theory , 1986 .

[6]  Renee Hobbs,et al.  Conditions of Learning in Novice Programmers , 1986 .

[7]  M. Lepper Motivational Considerations in the Study of Instruction , 1988 .

[8]  David Reed,et al.  AAA and CS 1: the applied apprenticeship approach to CS 1 , 1995, SIGCSE.

[9]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[10]  Linda S. Lumsden Student Motivation: Cultivating a Love of Learning , 1999 .

[11]  Ronan G. Reilly,et al.  The Influence of Motivation and Comfort-Level on Learning to Program , 2005, PPIG.

[12]  Allan Collins,et al.  Cognitive Apprenticeship: Teaching the Craft of Reading, Writing, and Mathematics. Technical Report No. 403. , 1987 .

[13]  Philip J. Burton,et al.  An approach to teaching Java using computers , 2003, SGCS.

[14]  Brenda Cantwell Wilson,et al.  Contributing to success in an introductory computer science course: a study of twelve factors , 2001, SIGCSE '01.

[15]  Deborah J. Stipek,et al.  Motivation to Learn: From Theory to Practice , 1992 .

[16]  Keith J. Whittington Infusing active learning into introductory programming courses , 2004 .

[17]  Irshad Ullah,et al.  Computer Science in Education , 2010 .

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

[19]  Janet Rountree,et al.  Learning and Teaching Programming: A Review and Discussion , 2003, Comput. Sci. Educ..

[20]  Tony Jenkins,et al.  The motivation of students of programming , 2001, ITiCSE '01.

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

[22]  Richard E. Clark,et al.  Why Minimal Guidance During Instruction Does Not Work: An Analysis of the Failure of Constructivist, Discovery, Problem-Based, Experiential, and Inquiry-Based Teaching , 2006 .

[23]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[24]  Susan E. Newman,et al.  Cognitive Apprenticeship: Teaching the Craft of Reading, Writing, and Mathematics. Technical Report No. 403. , 1987 .

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

[26]  Susan Wiedenbeck,et al.  Factors affecting course outcomes in introductory programming , 2004, PPIG.

[27]  L. S. Vygotksy Mind in society: the development of higher psychological processes , 1978 .

[28]  Hamzeh Roumani Design guidelines for the lab component of objects-first CS1 , 2002, SIGCSE '02.

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

[30]  Michael Kölling,et al.  Enhancing apprentice-based learning of Java , 2004 .

[31]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .