RepeatDistributes
DRAFT

Misconception:

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.

Incorrect

Each block in a loop is repeated individually

Correct

The whole sequence of blocks in a loop is repeated

Correction
Here 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:

Symptoms
How 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

  1. The cat first takes 10 steps 3 times, then turns 90 degrees 3 times, and then says “Hello!”
  2. The cat first takes 10 steps and then turns 90 degrees. It does this a total of 3 times and then says “Hello!”
  3. The cat says “Hello!”
  4. 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.

Value
How 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)]

Stay up-to-date

Follow us on  twitter to hear about new misconceptions.