An experiment was conducted to test a curriculum that explicitly incorporated programming strategies in lectures, written course materials, exercises and assessment. A control curriculum was also established to allow for comparison and isolation of effects. The two curricula were delivered to two groups of volunteer students who had no previous programming experience. The experimental group showed understanding and application of programming strategies, used the vocabulary plans in interviews and showed greater confidence in their solutions to problems. This suggested that explicit incorporation of programming strategies into an introductory programming curriculum has the potential to improve outcomes for novice programmers.
Programming strategies are made up of plans (Soloway, 1985) (or schema or patterns) and the associated means of incorporating these into a single solution.
Soloway ... suggests teaching should reach beyond a focus on syntax (as programming knowledge) and focus on programming strategies.
de Raadt, Tolman and Watson (2006) place problems faced by programmers on a scale as follows.
- System Level Problems
Problems at this level are large in scale and usually unique.
- Algorithmic Level Problems
Problems at this level are identifiable parts of a greater problem... For such problems a solution is usually achieved by adopting well refined algorithms, widely used in the programming community. A novice may be able to start using such strategies at the end of an initial course in programming and may use them in greater depth in a second or third course in programming.
- Sub-algorithmic Level Problems
Problems at this level are at their most basic. Attempting to decompose and describe a problem below this scale will lead to syntactical definitions.
Explicit instruction involves the instructor openly describing, usually in some documented form, what the student is to learn and how to go about that learning. Implicit instruction creates a scenario where a student is expected to undertake new learning, or extend previous learning, without being given a full context for what they are to learn or how.
From the results of an experiment conducted by Biederman and Shiffrar (1987), Baddeley (1997) suggested a short period of explicit instruction can be more effective than months of implicit learning.
This current experiment was conducted to discover if programming strategy instruction can be explicitly incorporated into an introductory programming curriculum, and if this is possible, what effects can be observed.
A book of written study materials was created and hardcopies were given to participants. ... the strategies incorporated in the curriculum were named, their benefits were explained, and examples of their application were shown.
Here's part of a table comparing with and without schemas experimental groups.
Students who were taught schemas explicitly used them more in writing their code, than students who were not.
Students taught schemas were more confident in their solutions.