In this video, https://www.youtube.com/watch?v=t5NszbIerYc Dr. David Brailsford uses an elegant Lego model to explain pointers and linked lists.

Do you think that using physical models could make it easier for students to learn about fundamental concepts? Has anyone had any success with this?

  • $\begingroup$ I've changed the tags as some of the originals weren't essential to the idea of the question. $\endgroup$ – Buffy Oct 26 '17 at 12:37
  • $\begingroup$ I have many thoughts regarding this question, but no time to write them up today. Apologies! My answer will be coming as soon as I can pull it together. Additionally, you may be interested in this question as well. $\endgroup$ – Ben I. Oct 26 '17 at 14:32
  • $\begingroup$ Let me note that the video referenced has at least a couple of fatal flaws. At one point the order of suggested operations on pointers is backwards, leading to a loss of the tail of the list. This could be incredibly misleading to a student who is careful to follow the explanations carefully. $\endgroup$ – Buffy Oct 26 '17 at 15:06

It would, of course, be foolish to answer no, since you give an example of it. There is a Pedagogical Pattern, in fact, called Physical Analogy that suggest doing just this. Physical analogies of any kind help a student visualize the concept at hand. But it is this idea of aiding visualization that is key here, not the physical object itself.

Metaphors and analogies of any kind are essential to teaching novices, linking their prior knowledge and experience to the new topics. But the pointer thing can also be taught at a white board with a bit of showmanship. "new" means draw a _cell, "next = " means draw an arrow.

You can also provide a computer visualization that abstracts a bit from what the "professor" is showing in the video, which does, in fact use a bit of computer visualization along the way.

But, while I'm a big fan of metaphor and analogy, I want to also provide a caution. The thing you are teaching is "similar to" but not "just like" the metaphor you use. Don't try to push the similarities too hard. At some point any metaphor breaks down and if the student has put too much currency into the similarity he or she may have trouble. Nodes and pointer are not, in fact, physical quantities, but only bit patterns.

For a simple case like cells with next fields you can also do this. A person is a "cell". Their left hand holds a bit of "data" perhaps written on a piece of paper that they hold or some other physical object that they can use. Their right hand is a "pointer" to another "cell" (i.e. person). You can build up a linked list in this way. You can modify the data in a cell, you can modify where "next" points to, etc. If the class is large this may be more effective than the lego idea since it can be viewed by a larger audience. It is also more active than just viewing a "professor" manipulate blocks on a table.

Also, metaphor isn't limited to such low level ideas and can be used at any level. "A database is like...". They are only limited by the creativity of the teacher and the willingness to work at it to get it right. The make a peanut-butter sandwich as a way to introduce algorithms is often used, but the knowing teacher also knows that no one is really likely to treat making lunch as a true algorithm. There it is the differences that are essential to the learning, since over interpreting an "algorithmic" description leads to trouble (and messy floors).


In “Gift of dyslexia” — Ronald D. Davis, one of the techniques used, to overcome dyslexia, is to make physical clay models of letters and words. As I read the book I realised that as a child I had made similar models in computer code. In the book they made models of letters, numbers, words, objects, verbs, ideas E.g. a model of “the” and the word “the”. I continue to create models in my head when I am learning. Not just the basic reading/writing concepts, but advanced stuff in CS, science, maths, … However it is sometimes easier if there is a real physical model.

Therefore it is often good to have some physical model, but remember (and tell the students), it is just a model. All models are wrong, but some are useful.

I like to use old mechanical computing devices, when teaching concepts in CS. I love the look on their faces, when I tell them that it is still done the some way, but smaller, faster, and with electricity in place of cogs, but still the same.

So yes do it, but don't over do it. Mix it up: visual, audio, active, models, hands on, etc. (I wonder if you can use smell)


Using models is a great thing if done right. I know many will not like this, but i thought the video made the concept more complicated than easier.

I don't believe using models to just replace a drawing has that much of a value. Actually i may cause it to become even harder.

For a concept like linked list I'd use a physical toy train where you have the locomotive as the head pointer (hence different that the rest and has only one coupling). Then for LL functions, I ask the students to describe the process of hooking up the carts (trucks?) to the train without losing the rest of the train behind.

I use legos for concepts like introducing recursion. I stack a set of leg pieces (equal to number of students or less) and tell them we want to know how many pieces are in this tower provided that you don't know how to count to higher numbers (we pretend to be 3 years old, we only know how to add 1 to any number). So, all what you know is to add one to any number. So, I pass the Lego tower to the students. Each student would take one piece and ask his neighbor to let him know how many are there in the rest of the tower. you can see where this is going.

  • $\begingroup$ The lego tower is good in a couple of ways. First is the concept of the tower (list) as a whole, not just its head can be easily discussed. I note that the tower is really more of a double-ended queue (dequeue) than a simple list. How do you deal with an empty tower? $\endgroup$ – Buffy Nov 5 '17 at 23:04
  • $\begingroup$ Hey @Elkady! Welcome to Computer Science Educators! This is a nice first answer :) $\endgroup$ – thesecretmaster Nov 6 '17 at 1:45
  • $\begingroup$ Thank you for your nice comments. @Buffy: I use Lego tower is for explaining Recursion. I use a toy train to explain linked lists. $\endgroup$ – Elkady Nov 6 '17 at 5:18

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.