Management, structures and tools to scale up personal advising in large programming courses

We see programming in higher education as a craft that benefits from a direct contact, support and feedback from people who already master it. We have used a method called Extreme Apprenticeship (XA) to support our CS1 education. XA is based on a set of values that emphasize actual programming along with current best practices, coupled tightly with continuous feedback between the advisor and the student. As such, XA means one-on-one advising which requires resources. However, we have not used abundant resources even when scaling up the XA model. Our experiments show that even in relatively large courses (n = 192 and 147), intensive personal advising in CS1 does not necessarily lead to more expensive course organization, even though the number of advisor-evaluated student exercises in a course grew from 252 to 17420. A thorough comparison of learning results and organizational costs between our traditional lecture/exercise-based course model and XA-based course model is presented.

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

[2]  Arto Vihavainen,et al.  Extreme apprenticeship method in teaching programming for beginners , 2011, SIGCSE.

[3]  Lauren B. Resnick,et al.  LEARNING ORGANIZATIONS FOR SUSTAINABLE EDUCATION REFORM , 1998 .

[4]  L. S. Vygotskiĭ,et al.  Mind in society : the development of higher psychological processes , 1978 .

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

[6]  L. Resnick,et al.  Knowing, Learning, and Instruction , 2018 .

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

[8]  L. Vygotsky Mind in Society: The Development of Higher Psychological Processes: Harvard University Press , 1978 .

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

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

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

[12]  Henrik Bærbak Christensen Systematic testing should not be a topic in the computer science curriculum! , 2003, ITiCSE.

[13]  Jaakko Kurhila,et al.  Carry-on effect in extreme apprenticeship , 2013, 2013 IEEE Frontiers in Education Conference (FIE).

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

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

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

[17]  Robert C. Martin Clean Code - a Handbook of Agile Software Craftsmanship , 2008 .

[18]  Henrik Bærbak Christensen Experiences with a Focus on Testing in Teaching , 2008, Reflections on the Teaching of Programming.