Many programming teachers will try the innovative approach of problem based learning to engage and instruct novice programming students. This approach can prove very effective when appropriately and correctly applied in the programming classroom. Programming is by it's nature a problem oriented task. Students must identify problems and then construct solutions in a coded language to solve the problem. This lends itself to a very hands on approach and fits directly with the constructivist learning theory that stresses the importance of learners being engaged in constructing their own knowledge (Hmelo-Silver et al, 2007). However, this problem based approach "requires scaffolding to help students engage in sense making, managing their investigations and problem-solving processes" (Hmelo-Silver et al, 2007).
Garner makes the point that in programming this scaffolding can take shape and he recommends two ways in which to accomplish it to reduce the cognitive load of the learning. First, he suggests "that students should annotate worked examples with information about what they do or what they illustrate (2002). This process forces the students to interact with previously written code and extract meaning from the work that they can carry forward into other problem based situations. Secondly, he suggests to "use incomplete, well-structured and understandable program examples that require students to generate the missing code to complete the examples" (2002). This forces students to study incomplete examples and draw conclusions about what is missing and carry that forward to future problems.
References:
Garner, S. (2002). Reducing the Cognitive Load on Novice Programmers.
Hmelo-Silver, C., Duncan, R., & Chinn, C. (2007). Scaffolding and achievement in problem
based and inquiry learning: a response to Kirschner, Sweller, and Clark (2006). Educational
Psychologist, 42(2), 99-107
Psychologist, 42(2), 99-107
No comments:
Post a Comment