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