Here is the next in our series of tips about learning to learn (to program).
TIP 7 : Reinforce understanding with concept maps
Paul Curzon, Queen Mary University of London
Once you have worked out the basics of a mental model (such as what a programming construct does), you need to reinforce and refine that understanding. You need to do that actively. Weak learners often try and memorise explanations by repetition but that doesn’t help understanding. Reading an explanation and then drawing a concept map, by contrast, is a powerful way to reinforce your understanding.
A concept map is just a simple kind of diagram. It has:
- circles which represent concepts (think nouns) and
- arrows between circles that show their relationship (think verbs)
You start by making a list of all the concepts (the nouns) that are relevant. For example, having encountered a print statement you might (based on your initial limited understanding) include in your list:
- A print statement
- A print command
- A String
and draw them as circles. Then you work out how they are related with those links giving you the arrows. So you might draw a concept map of a print statement as:
This focusses on the structure – the bits that make up a print statement – rather than what it does. There are lots of ways to draw a concept map around any given concept or area – its not about right and wrong so much as getting down your current personal understanding. However, in programming you will get most benefit if the concept map focusses on what a programming construct does when it is executed.
Including what the print statement does may lead your next version of the concept map to be a little more sophisticated, so something like:
As you understand more then future versions will be more sophisticated still – for example you might in a later version include how the print statement actually takes a string expression not just a string and it is evaluated first to give a string value.
Reading (or listening to) the explanations of experts is important when creating concept maps as that is how you pick up the terminology of an expert – and so the concepts that matter like “statements” and “expressions”. To become an expert you need to talk the language of experts, not just have the skill of an expert. Concept maps can help bring together the terminology and your developing mental models.
Having created a concept map you can now turn it in to your own explanation, in your own words. From the above we get an explanation in our own words such as:
A print statement consists of a print command and a string. The execution of the print statement makes the string appear on the screen.
The benefit of drawing concept maps is it helps reinforce your understanding of the relationships of concepts to each other and to the concepts you have come across previously….and that is the core of what understanding is about.
If you are a:
- Draw a concept map for each new programming concept you learn
- Keep redrawing it again later as you understand more: you will probably be able to draw a more complex concept map.
- Write explanations based on your concept map
- Show students how to draw concept maps
- Provide some simple examples to show the idea, but remember the biggest benefits come when students create their own concept maps.
- Set exercises to create concept maps for each new concept, once students have done some experimentation.
- Set exercises to write prose explanations from concept maps.