
Background
The ProCoSK material has been designed around the following two principles:
A significant feature that differentiates expert and novice programmers is their strategic knowledge [McGill, 1997], i.e., knowing stereotypical solutions to typical problems (so-called plans in Soloway’s approach [Soloway, 1986)] and being able to apply, tailor, and combine them to solve new problems. Many authors suggest explicitly teaching strategic knowledge [Soloway, 1986], [DeRaadt, 2009], since for many students this represents a real challenge.
Program comprehension, i.e. the process of building a “mental model of a program” [Izu, 2019], is also an important skill to acquire in order to learn to program [Clear, 2011]. However, programming courses often neglect it, mostly focusing on code writing.
References
[Clear, 2011]
Tony Clear, J.L. Whalley, Phil Robbins, Anne Philpott, Anna Eckerdal, and M. Laakso. 2011. Report on the final BRACElet workshop: Auckland University of Technology, September 2010. Journal of Applied Computing and Information Technology 15, 1 (2011), 10.
[De Raadt, 2009]
Michael de Raadt, Richard Watson, and Mark Toleman. 2009. Teaching and Assessing Programming Strategies Explicitly. In Proceeding of ACE ’09. Australian Computer Society, Inc., AUS, 45–54.
[Izu, 2019]
C. Izu, C. Schulte, A. Aggarwal, Q. Cutts, R. Duran, M. Gutica, B. Heinemann, E. Kraemer, V. Lonati, and C. Mirolo. 2019. Fostering Program Comprehension in Novice Programmers - Learning Activities and Learning Trajectories. In ITiCSE- WGR ’19. ACM, New York, NY, USA, 27–52.
[McGill, 1997]
Tanya J. McGill and Simone E. Volet. 1997. A Conceptual Framework for Analyzing Students’ Knowledge of Programming. Journal of Research on Computing in Education 29, 3 (1997), 276–297.
[Soloway, 1986]
Elliot Soloway. 1986. Learning to Program = Learning to Construct Mechanisms and Explanations. Communication of the ACM 29, 9 (1986), 850–858.