Mental Models, Metaphors and Misconceptions
Programming is a hard topic to teach, since it is very abstract, making it hard to students to relate to. A great way to explain programming concepts is by using metaphors to things outside of the computer. In principle this is a good idea, which helps students to grasp the abstract world of programming. A loop is like a song with a refrain, where we repeat some lines but not others. Or a condition is like a rule in a game, when you roll 6, you get to place a pawn on the board. Or a variable is like a box, you can store something in it, and write the name of the variable on the outside of the box.
However, metaphors in programming education (like all metaphors) are not perfect. In this session we will present the results of a recent paper by Hermans et al. that demonstrated that the box metaphor of variables is helpful for novices when they trace simple, small programs with one assignment. When the programs contain a second assignment, the box metaphor hampers understanding, and increases the chance that novices develop the misconception that a variable can hold multiple values.
We will use the remainder of the session to brainstorm about: * What metaphors or mental models of programming we use in teaching * How these mental models could lead to misconceptions