RepeatDistributesDRAFT
A repetition of a sequence of blocks is interpreted as the first block in the sequence being repeated, then the second block being repeated, and so on.
Each block in a loop is repeated individually
The whole sequence of blocks in a loop is repeated
CorrectionHere is what's right.
The body of a loop (the blocks inside a repetition block) is executed zero or more times, and each time the entire body is executed.
Simple Example
With the following script, the sprite moves 10 steps, then turns 15 degrees, then moves 10 steps, then moves 15 degrees, then moves 10 steps, and finally moves 15 degrees.
The above script is equivalent to the following one, which “unrolls” the loop:
SymptomsHow do you know your students might have this misconception?
Empirical Evidence
This misconception appears in Item P8 in the Scratch ProMAT assessment:
Question
What happens here when we click the green flag?
Answers
- The cat first takes 10 steps 3 times, then turns 90 degrees 3 times, and then says “Hello!”
- The cat first takes 10 steps and then turns 90 degrees. It does this a total of 3 times and then says “Hello!”
- The cat says “Hello!”
- The cat first takes 10 steps, then turns 90 degrees, and then says “Hello!” It does this a total of 3 times.
The first answer could indicate the presence of this misconception.
ValueHow can you build on this misconception?
Students with this misconception may think of distributing an operation in algebra:
n * (1 + 2 + 3) = n * 1 + n * 2 + n * 3
They are not too far away from the idea of mapping a function over a list:
map(repeat, [a, b, c]) = [repeat(a), repeat(b), repeat(c)]