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.
Published Version (Free)
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have