I had the good fortune to be invited by the students and faculty of the Learning Sciences and Mathematics and Science Education doctoral programs at Boğaziçi University in Turkey to participate in a seminar on design-based research (DBR). DBR has become a particularly important research approach in the field of learning, design, and technology. I decided to use my 30 minute presentation on May 11, 2022 to focus on the importance of being a designer when engaging in DBR. That is, I think it important to take on the identity of a designer. When this happens, you take on a different view of the world that will influence and support your research.

### The Importance of Iteration in Design

An important aspect of all design, including DBR, is iteration. The everyday definition of iteration is simply to repeat a process or procedure. But, I prefer the mathematical definition of iteration because I think it is closer to how iteration needs to be practiced in DBR. According to Wikipedia, iteration in mathematics is "the process of iterating a function, i.e. applying a function repeatedly, using the output from one iteration as the input to the next."

The key idea here is that the output of one iteration is used (at least partially) as the input of the next iteration. I think this distinction is important for DBR because it means you revise your intervention based on what you just learned from trying it out. Implementing this principle well leads to profound insights which a designer can use in the revision process. In this process you stop, reflect, and make explicit - by writing down - what you learned. This is followed by making a conjecture that if the design is revised in such and such a way, then something better will happen the next time the design is tested (e.g. more learning, more motivation, etc.) If no improvement is found, then that conjecture is refuted and a new conjecture must be constructed. All of this is being documented along the way in DBR. These conjectures should be based in the formulation and evolution of a local or "humble" theory generated by the designer/researcher. This is the heart of the DBR process.

### A Fun Example of Iteration

Rather than just talk about this on May 11, I thought I'd show a simple mathematical example as both a literal (it really shows iteration in mathematics) and metaphorical example (within DBR) of iteration. Consider the following:

- On a sheet of paper, draw three dots anywhere you like. These become the vertices of a triangle. I've drawn these in red in the figure below.
- Pick a random spot on the paper and draw another dot. I've drawn this in black on the left side of the figure below.
- Pick one of the three red dots at random. Let's say the bottom-right red dot was chosen.
- Draw a dot at the midpoint of the black dot and the randomly chosen red dot.
- Repeat steps 3 and 4 using the previously drawn black dot for step 4.

But, my point in the seminar was not to teach anyone about fractals, but rather to use this example in an entertaining way to make some important points, metaphorical though they might be to process of iteration within DBR:

- The process of iteration, though a seemingly simple idea, leads to insights of otherwise hidden patterns or deep structures for how to revise the design of a learning intervention.
- The process of iteration can bring order and understanding to the otherwise complex activity of designing for learning.
- Despite the apparent sense of order, there is still an infinite range of possible outcomes for our designs. That is, the experience of any one person when they use one's design will be unique for that person.

### Building the Project in LiveCode

```
1: global gp,gx,gy,bx,beginy,x,y,
2: global varLoops, varPointName
3:
4: on mouseUp
5: put 0 into field "counter"
6: put field "loops" into varLoops
7:
8:
9: wait 1 second
10:
11: //Game Board
12: --choose first "starting point" at random
13: put the random of 1000 into x
14: put the random of 500 into y
15: copy graphic varPointName on card "resources" to this card
16: hide it
17:
18: set the location of it to x,y
19: show it
20: put x into gx
21: put y into gy
22:
23: //Play the Game
24: Repeat with i = 1 to varLoops
25: if i < 101 then
26: put i into field "counter"
27: else
28: if (i/100)-trunc(i/100)=0 then put i into field "counter"
29:
30: end if
31:
32: --choose one of the three "game points" at random
33: put the random of 3 into gp
34: if gp = 2 then
35: put item 1 of the location of graphic "triangle2" into bx
36: put item 2 of the location of graphic "triangle2" into beginy
37: end if
38:
39: if gp = 1 then
40: put item 1 of the location of graphic "triangle1" into bx
41: put item 2 of the location of graphic "triangle1" into beginy
42: end if
43:
44: if gp = 3 then
45: put item 1 of the location of graphic "triangle3" into bx
46: put item 2 of the location of graphic "triangle3" into beginy
47:
48: end if
49:
50: --draw the midpoint of the "starting point" and "game point"
51: put (bx+gx)/2 into x
52: put (beginy+gy)/2 into y
53: put round (x) into x
54: put round (y) into y
55: copy graphic varPointName on card "resources" to this card
56: set the name of it to varPointName&i
57: set the location of it to x,y
58:
59: wait 1 ticks
60: --make the midpoint the new "start point" and repeat
61: put x into gx
62: put y into gy
63:
64: end repeat
65:
66: end mouseUp
```

```
1: global varLoops, varPointName
2:
3: on mouseup
4: put 0 into field "counter"
5:
6: repeat with i = 1 to varLoops
7: put varPointName&i into varName
8: delete graphic varName
9: end repeat
10:
11: delete graphic varPointName
12:
13: end mouseup
```