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
I am assistant professor at Delft University of Technology, where where I research end-user programming. End-user programming is programming for everyone that does not think of themselves as a programmer. In my PhD dissertation I worked on applying methods from software engineering to spreadsheets. During my PhD I founded a company called Infotron, which sells a tool called PerfectXL based on techniques I developed to spot errors in spreadsheets. Me, my research and my company have gotten some media coverage over the last years. One of my biggest passions in life is to share my enthusiasm for programming/tech with others. I teach a bunch of kids LEGO Mindstorms programming every Saturday in a local community center. Furthermore, I am one of the founders of the Joy of Coding conference, a one day developer conference in Rotterdam and one of the hosts of the Software Engineering Radio podcast, one of the biggest software podcasts on the web. When I am not coding, blogging or teaching, I am probably dancing Lindy Hop with my beau Rico, out running, watching a movie or playing a (board)game.