Answers.Body: <p>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.</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <p>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)</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-10-26T13:04:27.133Z
Answers.LastActivityDate: 2017-10-26T13:04:27.133Z
Answers.UserDisplayName: ctrl-alt-delor
Answers.Body: <p>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. </p>
  
  <p>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.</p>
  
  <p>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. </p>
  
  <p>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. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-05T23:04:31.387Z
Answers.Text: 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?
Answers.UserDisplayName: Buffy
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-06T01:45:04.657Z
Answers.Text: Hey @Elkady! Welcome to [cseducators.se]! This is a nice first answer :)
Answers.UserDisplayName: thesecretmaster
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-06T05:18:13.053Z
Answers.Text: Thank you for your nice comments. @Buffy: I use Lego tower is for explaining Recursion. I use a toy train to explain linked lists.
Answers.UserDisplayName: Elkady
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-11-05T22:44:44.520Z
Answers.LastActivityDate: 2017-11-06T05:20:37.290Z
Answers.LastEditDate: 2017-11-06T05:20:37.290Z
Answers.UserDisplayName: Elkady
Answers.Body: <p>It would, of course, be foolish to answer <strong>no</strong>, since you give an example of it. There is a <a href="https://smile.amazon.com/Pedagogical-Patterns-Educators-Joseph-Bergin/dp/1479171824" rel="nofollow noreferrer">Pedagogical Pattern</a>, in fact, called <em>Physical Analogy</em> that suggest doing just this. Physical analogies of any kind help a student <em>visualize</em> the concept at hand. But it is this idea of aiding visualization that is key here, not the physical object itself. </p>
  
  <p>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. </p>
  
  <p>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. </p>
  
  <p>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. </p>
  
  <p>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. </p>
  
  <p>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 <em>make a peanut-butter sandwich</em> 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). </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-10-26T12:36:43.920Z
Answers.LastActivityDate: 2017-10-26T12:42:32.150Z
Answers.LastEditDate: 2017-10-26T12:42:32.150Z
Answers.UserDisplayName: Buffy
Body: <p>In this video, <a href="https://www.youtube.com/watch?v=t5NszbIerYc" rel="nofollow noreferrer">https://www.youtube.com/watch?v=t5NszbIerYc</a> Dr. David Brailsford uses an elegant Lego model to explain pointers and linked lists. </p>
  
  <p>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?</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-10-26T12:37:54.810Z
Comments.Text: I've changed the tags as some of the originals weren't essential to the idea of the question.
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-10-26T14:32:59.277Z
Comments.Text: 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](https://cseducators.stackexchange.com/questions/1363/do-python-and-java-lead-students-to-construct-different-mental-models-of-memory) as well.
Comments.UserDisplayName: Ben I.
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-10-26T15:06:08.360Z
Comments.Text: 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.
Comments.UserDisplayName: Buffy
Tags: <teaching-analogy><introductory-lesson>
Title: Could physical (i.e. lego) models help teach CS?
ThreadText: # Could physical (i.e. lego) models help teach CS?
  
  (Asked by: username_0 on 2017-10-26)
  
  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?
  
  **Tags:** teaching-analogy, introductory-lesson
  
  > **Comments:**
  > **username_1**: I've changed the tags as some of the originals weren't essential to the idea of the question.  
  > **username_2**: 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](https://cseducators.stackexchange.com/questions/1363/do-python-and-java-lead-students-to-construct-different-mental-models-of-memory) as well.  
  > **username_1**: 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.  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_1 on 2017-10-26. Score: 2 | Accepted answer
  
  It would, of course, be foolish to answer **no**, since you give an example of it. There is a [Pedagogical Pattern](https://smile.amazon.com/Pedagogical-Patterns-Educators-Joseph-Bergin/dp/1479171824), 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).
  
  
  ---
  
  ### Answer by username_3 on 2017-10-26. Score: 1
  
  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)
  
  
  ---
  
  ### Answer by username_4 on 2017-11-05. Score: 1
  
  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.
  
  > **Comments:**
  > **username_1**: 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?  
  > **username_5**: Hey @username_4! Welcome to [cseducators.se]! This is a nice first answer :)  
  > **username_4**: Thank you for your nice comments. @username_1: I use Lego tower is for explaining Recursion. I use a toy train to explain linked lists.  
  
  ---
  
  