An important discovery of Cognitive Load Theory (CLT) (Sweller, 1988) is that studying partially worked examples provide better learning results for novices in computing than working through problems from scratch or studying completely worked examples. Gray et al. (2007) suggested the use of fading worked example as an effective strategy for lowering cognitive load in the novice phase of skill acquisition in programming education.
The idea of a fading worked example (FWE) is a sequence of partially worked examples in which each problem in the sequence contains one fewer worked step than its predecessor so that, in the end, the learner is given a problem to solve with no worked steps provided. Thus in systems programming, instructors may start with a fully worked example (Clark et al., 2006) from a problem statement, to analysis, design, coding and testing. Then the next example may involve all steps except coding. The next example may remove design, etc, until the students are required to solve a problem given just a problem statement.
The key to creating FWE is decomposition of each learning goal into smaller steps. As an example of using FWE for learning programming, each aspect of a programming language is identified. This includes variable, expression, assignment, iteration, subroutine call, etc. Next the use of each of these aspects in a program is related to the dimensions of problem solving, namely design, implementation and semantics.
How does studying worked examples compared to actual practice? Actively solving practice problems imposes much more mental work than reviewing worked examples. However, skipping study of worked examples may impose too much cognitive load on the learners when they try to jump into practice assignments right away. (See Guzdial blog entry.) Studies have shown that students who learned by doing took twice as much time to learn as students who learned from worked examples (Mayer, 2008, chapter 9). Students also benefit more with worked examples if they generate explanations as they study the worked examples (meta-cognitive skill development).
A compromise between worked examples and actual practice is a completion example where some of the steps are demonstrated in a worked example and the other steps are completed by the learner as in a practice problem.
It should be noted that as learners gain expertise, worked examples actually become detrimental and they are better off working all the problems. The worked examples can become redundant. This is where FWE will be most useful.
Clark, R.C., Nguyen, and F., Sweller, J. (2006). Efficiency in Learning. San Francisco: Pfeiffer. (Chapter 8).
Gray, S., Clair, C., James, R., Mead, J. (2007). Suggestions for Graduated Exposure to Programming Concepts Using Fading Worked Examples. International Computing Education Research Workshop, Proceedings of the third international workshop on Computing education research. pp 99-110.
Mayer, R. E. (2008). Learning and Instruction (2nd ed). Upper Saddle River, NJ: Merrill Prentice-Hall.
Sweller, J. (1988). Cognitive Load During Problem Solving: Effects on Learning. Cognitive Science. 12(2).