학술논문

Toward an Inventory of Plans and Patterns, and Their Use to Foster Strategic Knowledge in Programming Novices
Document Type
Conference
Source
Proceedings of the 2020 ACM Conference on International Computing Education Research. :305-305
Subject
cs1
novice programmers
programming learning
programming patterns
programming plans
strategic knowledge
Language
English
Abstract
When learning to program, different types of knowledge and skills have to be built: syntactic knowledge, i.e., knowledge of the language features; conceptual knowledge, i.e., knowledge of the semantics of the various constructs; strategic knowledge, i.e. the ability to use syntactic and conceptual knowledge in the most appropriate and effective way to solve programming problems. Strategic knowledge also includes the ability to exploit and combine solutions to known problems to solve new ones and is one of the hardest skills to acquire when learning to programm [5, 6, 11]. Terms such as goals[10] patterns [5, 6, 11]. schema,[9] strategies[4], and variables' roles[3] have been used to refer to this kind of knowledge. Several authors suggest that strategic knowledge should be taught explicitly, however there are three main issues to address: plans/patterns/schema are used sometimes interchangeably and sometimes similarly but not correspondingly; it is claimed that a small number of plans/patterns is needed in an introductory programming course, however there is no agreed upon inventory of plans/patterns among the CS community; the notion of variables' roles isn't always explicitly linked to the notion of plans/patterns; little instructional material is available that explicitly teaches strategies, and it is neither easy nor obvious how to design such material. The aim of this study is to investigate whether and how such notions of plans/patterns/schema and variables' roles can be integrated into introductory programming courses. The idea is to establish a framework that includes and arranges the different definitions presented in literature. The framework developed will be used for building a catalogue of plans/pattern and variables' roles encountered in CS1 practice, in CS1 assessment, and in the literature on introductory programming; this catalogue will be the basis for designing new instructional/learning material for fostering strategic knowledge. The developed material will be used in one of our introductory programming courses and in peer tutoring activities for the students. The effectiveness will be tested evaluating students programming skills with a pre-test and a post-test, using a group as a treatment group and another one as control group.

Online Access