Before you keep reading...
Runestone Academy can only continue if we get support from individuals like you. As a student you are well aware of the high cost of textbooks. Our mission is to provide great books to you for free, but we ask that you consider a $10 donation, more if you can or less if $10 is a burden.
Before you keep reading...
Making great stuff takes time and $$. If you appreciate the book you are reading now and want to keep quality materials free for other students please consider a donation to Runestone Academy. We ask that you consider a $10 donation, but if you can give more thats great, if $10 is too much for your budget we would be happy with whatever you can afford as a show of support.
Teacher Note: Misconceptions¶
There is a lot of research evidence that assignment is a difficult topic for students who are first learning to program. In a study of professional graphic designers who had taught themselves to program, the assignment statement was rated the top most difficult programming statement to learn. Why is that?
One reason may be because assignment requires the programmer to be consistent in understanding and predicting what happens in a program. Assignment is always the value on the right gets copied to the space (in the computer’s memory) named by the variable on the left. Researchers at Middlesex University in England found that a critical predictor of success in programming is to see that assignment always does the same thing
How do students get assignment wrong? Here are three ways. One is that they see assignment as being a move of the value (rather than a copy). So, they think that after
var1 = var2 the variable
var1 has the value from
var2 and the variable
var2 has a value of nothing or zero.
Click on the right arrow below to play the following video.
A second model, which may be more common, is that they see assignment as a relationship. Once
var1 = var2 then any change to
var2 will automatically change
var1. The problem here is that the student doesn’t see the assignment as an action. If a student doesn’t see the assignment as an action, it’s hard to understand why the ordering of statements is important.
A third problem is that some students have assignment dyslexia, which means that instead of writing the assignment with the variable name on the left side of the
= and the value on the right, they reverse it as shown below.
7 = daysInWeek
The computer sees the above assignment statement as an attempt to change what 7 means, and won’t allow it. It will cause an error when you try to run it.
How do we help students get assignments right? Have students trace programs with assignments, where they draw values in boxes. Watch what they do, and try to be aware of their model for how assignment works. If they have one of these other models, try some of the examples in this section – by tracing, and then on the computer. Get students to see where their model doesn’t accurately capture what the computer is doing.
Let’s say that you showed Sam this program:
number2 = 32 number1 = number2 number2 = 17
Then asked Sam, “What’s the value for the variable number1?”