Explicit teaching of programming schemas

Subscribe to Skilling news on the home page.

Kieran Mathieson

Yesterday, I read Michael de Raadt's research on explicit teaching of schemas. Dr de Raadt's work parallels Skilling's use of patterns, though his work was earlier. He also gives empirical data on the effects of explicit schema teaching in a programming course, that I hadn't seen before.

W00t, I say! W00t!

Let's remind ourselves of how Skilling supports schema use in skills courses.

Schemas in Skilling

Authors create schemas (called patterns in Skilling) as data objects separate from lessons. Here's an example of a pattern for a programming course, with some fields removed to simplify the display:

Creating a pattern

The pattern has a title, an internal name (more in a moment), and some content fields. The situation field describes the situation where the pattern should be used. It's like the "if" part of an if-then statement. The action is what to do, the "then" part of the if-then. The explanation..., er, explains the pattern.

Authors embed patterns in lessons. Usually, there's a lesson explaining the concepts in a pattern. The author link to the pattern object, using the pattern's internal name. For example, students might see this:

Pattern in lesson

When the author creates the lesson, s/he types something like this in the lesson editor:

At the end of the loop, @total@ describes something about the entire data set.


    internal_name = accumulator_pattern

Skilling inserts a summary of the pattern, from the pattern object. The More... link in the screenshot above shows the complete pattern.

Pattern references can be added as many times as needed. For example, perhaps the author wants to remind students of the accumulator pattern later in the course. Here's part of a lesson on data analysis:

Pattern reminder

As you would expect, the author doesn't need to type the pattern again. All s/he does is tell Skilling to insert a pattern summary:

The code for the sub will be like what we've seen "before":/course/accumulators, with the accumulator pattern.


    internal_name = accumulator_pattern

An advantage of referring to the pattern with its internal name is that, if the author rewords the pattern, the displays will change automatically to use the new wording. W00t!

Skilling also gives students a pattern catalog, listing all of the patterns in the course:


When students have a task, they can peruse the catalog, to remind themselves of patterns that can use.

Schemas in Dr de Raadt's work

A few years before Skilling was written, Dr de Raadt was studying the effects of explicit schema teaching, at the University of Southern Queensland, in Toowoomba. Coincidentally, that's close to where I grew up in Brisbane, although I had moved to the US long before.

You can read a summary of Dr de Raadt's work in a resource on this site. Here's the abstract. Where you see "strategies," read "patterns":

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.


As far as I can tell, Skilling lets authors implement Dr de Raadt's work pretty much directly.

Dr de Raadt has gone on to do interesting things. After USQ, he become a development manager and evangelist at Moodle. Now he is the head of ed tech at Canberra Grammar School.

Skillling is built on Drupal, rather than Moodle. Why? To be honest, historical accident. I learned Drupal development for other reasons, and just kept on using it. In some ways, Moodle would have been a better fit.

For me, Dr de Raadt's work reinforces the value of Skilling's focus on schemas. If you have any thoughts, please comment.