Friday, November 11, 2016

Scaffolding in Programming to Reduce Cognitive Load in a PBL Environment

     Computer programming is a course that many students find challenging and struggle to perform well in. According to Stuart Garner, one of the reasons for this is that students experience a very high cognitive load during their learning (2002). Specifically, Computer programming has a high intrinsic load and it is, therefore, necessary to reduce the extraneous load as much as possible by using scaffolding techniques (Garner, 2002). Intrinsic cognitive load is the load that is determined by the mental demands of a particular task. In computer programming this demand is fairly high for novice learners. The extraneous cognitive load consists of the learning format and style that is used in the teaching process. Teachers have control over how they structure the learning process and thus have an impact on the extraneous cognitive load of the learning.
     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


Using Technology Effectively

Our school is piloting a 1:1 Chromebook program and everyone is excited! If you didn't already, you now have the oppor...