Table 11.6: A summary of how selected program visualization systems present notional machines and engage learners. See Table 11.5 for an overview of the systems and Table 11.4 for a legend. System name Notional machine elements Representation Step grain Direct engagement with visualization Content ownership ‘regular visual Control, Vars, Calls, Objs, standard widgets statement controlled viewing own content debuggers’ Refs, Structs (e.g.) Basic Programming Control, Vars, ExprEv symbols expression controlled viewing own content LOPLE / DynaMOD / DynaLab Control, Vars, Calls symbols statement controlled viewing own cases, [own content] Amethyst Control, Vars, Calls, Structs, abstract 2D statement? controlled viewing own content [Refs] Bradman Control, Vars, ExprEv, Refs symbols, explanations, statement controlled viewing own content [abstract 2D], [smooth animation] EROSI Control, Vars, Calls abstract 2D, [audio] statement controlled viewing given content VisMod Control, Vars, Refs, Calls, standard widgets, statement controlled viewing own content Structs abstract 2D (Fernández et al.) Refs, Objs, Classes, Calls abstract 2D, visual message controlled viewing modified content metaphors passing DISCOVER Control, Vars abstract 2D statement controlled viewing own content (Kasmarik and Control, Vars, Refs, Calls, abstract 2D statement controlled viewing own content? Thurbon) Objs, Structs CMeRun Control, Vars, ExprEv text statement controlled viewing own content (Korsh and Sangwan) Control, Vars, Refs, Calls, abstract 2D expression controlled viewing own content ExprEv, Structs VINCE Control, Vars, Refs, Calls, abstract 2D, explanations statement controlled viewing own content Addrs, Structs OGRE Control, Vars, Refs, Objs, abstract 3D, smooth statement controlled viewing own content Classes, Calls, Structs animation, explanations JAVAVIS Vars, Refs, Objs, Calls, abstract 2D, UML statement controlled viewing own content Structs (Seppälä) Control, Vars, Refs, Objs, abstract 2D statement controlled viewing own content Calls OOP-Anim Control, Vars, Refs, Objs, abstract 2D, smooth statement controlled viewing own content Classes animation, explanations JavaMod Control, Vars, ExprEv, Refs, standard widgets, UML expression controlled viewing own content Objs, Calls, Structs JIVE Control, Vars, Refs, Objs, standard widgets, statement controlled viewing own content Classes, Calls, Structs abstract 2D Memview Control, Vars, Refs, Objs, standard widgets statement controlled viewing own content Classes, Calls, Structs JavaTool Control, Vars, Structs abstract 2D statement controlled viewing own content PlanAni Control, Vars, ExprEv, visual metaphors, smooth expression controlled viewing own cases Structs animation, explanations Metaphor-based OO Control, Vars, ExprEv, Refs, visual metaphors, smooth expression controlled viewing own cases visualizer Objs, Classes, Calls, Structs animation, explanations Eliot / Jeliot I Control, Vars, [ExprEv], abstract 2D, smooth eventbased controlled viewing own content Structs animation Jeliot 2000 / Jeliot 3 Control, Vars, ExprEv, Calls, abstract 2D, smooth expression controlled viewing, own content Refs, Objs, Classes, Structs animation [responding] GRASP / jGRASP Control, Vars, Calls, Refs, standard widgets, statement controlled viewing own content Objs, Structs abstract 2D, smooth animation The Teaching Machine Control, Vars, ExprEv, Calls, Addrs, Refs, Objs, Structs standard widgets, abstract 2D expression controlled viewing own content VIP Control, Vars, ExprEv, Calls, Refs, Structs standard widgets, explanations, [abstract 2D] statement controlled viewing own content (Miyadera et al.) Control, Vars, ExprEv, Calls abstract 2D statement? controlled viewing given content ViLLE Control, Vars, Calls, Structs standard widgets, explanations statement controlled viewing, responding, [applying] given content, [modified content] Jype Control, Vars, Objs, Refs, standard widgets, statement controlled viewing own content Calls, Structs abstract 2D Online Python Tutor Control, Vars, Objs, Classes, abstract 2D statement controlled viewing own content Refs, Calls, Structs WinHIPE Control, Vars, ExprEv, Refs, Calls, Structs abstract 2D expression controlled viewing, applying own content / given content CSmart Control, Vars, ExprEv explanations, visual metaphors, audio statement controlled viewing given content (model solution) (Gilligan) ViRPlay3D2 Control, Vars, ExprEv, Calls, Structs, [Objs], [Classes], [Refs] Vars, Objs, Classes, Refs, Calls visual metaphors, standard widgets virtual 3D world expression applying own content message passing applying (when designing) / controlled viewing (scripted mode) own content (when designing) / given content (scripted mode) (Dönmez and İnceoğlu) Control, Vars, ExprEv standard widgets expression applying own code Online Tutoring System Control, Vars, ExprEv standard widgets, expression applying given content explanations JV 2 M the Java Virtual Machine virtual 3D world bytecode applying given content instruction UUhistle Control, Vars, ExprEv, Calls, Refs, Objs, Classes, Structs abstract 2D, smooth animation, explanations expression applying, responding, controlled viewing given content / own content 154
Figure 11.4: The PyDev debugger for Python programs within the Eclipse IDE (image from Helminen, 2009). A Python program is being executed, with line 4 up next. Threads and call stacks are listed in the top left-hand corner. Global and local variables are shown on the right. The yellow highlight signifies a change in the value of a variable. programs may be large in terms of both code and data. For such reasons, the visualization shown by a typical visual debugger is not particularly graphic, and consists primarily of text within standard GUI widgets. Bennedsen and Schulte (2010) conducted an experimental study in which a group of CS1 students used the visual debugger built into the BlueJ IDE to step through object-oriented programs, while a control group used manual tracing strategies. They found no significant differences in the performance of the groups on a post-test of multiple-choice questions on program state. A rerun of the experiment using a different debugger yielded similar results. Bennedsen and Schulte surmise that “it could be that the debugger is not useful for understanding the object interaction but just for finding errors in the program execution” (p. 18). Despite their limitations, visual debuggers are worth a mention in this section because they are highly useful tools that novices do encounter in CS1 courses, because they do visualize certain aspects of program dynamics, and because they serve as a point of departure for reviewing the more education-oriented systems below. 11.3.2 Many educational systems seek to improve on regular debuggers Most of the systems reviewed in this chapter are program animation tools that can be thought of as educators’ attempts to improve on regular visual debuggers. Some of these systems look very similar to regular visual debuggers, others feature more unusual visualizations. An early system on the Atari: Basic Programming An early educational PV system that supported visual tracking of program execution was Basic Programming, “an instructional tool designed to teach you the fundamental steps of computer programming” (Robinett, 1979). Shown in Figure 11.5, Basic Programming was an integrated environment 155
- Page 3 and 4:
Aalto University publication series
- Page 5:
Abstract Aalto University, P.O. Box
- Page 9 and 10:
Acknowledgements Lauri Malmi first
- Page 11 and 12:
4.5.3 Some effects of cognitive loa
- Page 13 and 14:
13.1.2 It is simple to watch an ani
- Page 15 and 16:
18.2.3 We saw a few pedagogically i
- Page 17 and 18:
11.16 PlanAni .....................
- Page 19 and 20:
Chapter 1 Here is How to Make Sense
- Page 21 and 22:
On research traditions Each researc
- Page 23:
The thesis should ideally be read f
- Page 26 and 27:
Introduction to Part I Introductory
- Page 28 and 29:
Figure 2.1: Bloom’s taxonomy of l
- Page 30 and 31:
2.2 The SOLO taxonomy sorts learnin
- Page 32 and 33:
2.2.3 The expected outcomes of prog
- Page 34 and 35:
Multi-institutional studies In the
- Page 36 and 37:
3.3 But many students do not learn
- Page 38 and 39:
long-term, action research study of
- Page 40 and 41:
Introduction to Part II What is inv
- Page 42 and 43:
Figure 4.1: A commonly used basic a
- Page 44 and 45:
play a decisive role in how and whe
- Page 46 and 47:
cognitive psychology also sought to
- Page 48 and 49:
terms for the two meanings. Followi
- Page 50 and 51:
It suggests that the growth of expe
- Page 52 and 53:
work (because of lack of motivation
- Page 54 and 55:
The effect of prior knowledge: the
- Page 56 and 57:
“writing a computer program is le
- Page 58 and 59:
model of program comprehension to o
- Page 60 and 61:
Chapter 5 Psychologists Also Say: W
- Page 62 and 63:
• are commonly deficient in a num
- Page 64 and 65:
expert stage. De Kleer and Brown ch
- Page 66 and 67:
5.3 Teachers employ conceptual mode
- Page 68 and 69:
Not only are there different notion
- Page 70 and 71:
the computer can carry out deductio
- Page 72 and 73:
Therefore: teach early and teach lo
- Page 74 and 75:
epresentation of a complex program
- Page 76 and 77:
A reasonable description of this fo
- Page 78 and 79:
are “somewhat contrary to the cla
- Page 80 and 81:
memory storage (see, e.g., Greeno,
- Page 82 and 83:
Chapter 6 Constructivists Say: Know
- Page 84 and 85:
Figure 6.1: A classification of con
- Page 86 and 87:
Social constructivist reasoning tak
- Page 88 and 89:
Figure 6.2: A radical destructivist
- Page 90 and 91:
certainly fall under the broad usag
- Page 92 and 93:
in the eyes of the members of the c
- Page 94 and 95:
of proper design, coding style, req
- Page 96 and 97:
In any particular course you will b
- Page 98 and 99:
precedes construction. Therefore, c
- Page 100 and 101:
Skirmish 7: minimal guidance pedago
- Page 102 and 103:
Chapter 7 Phenomenographers Say: Le
- Page 104 and 105:
the phenomenon. An individual’s e
- Page 106 and 107:
(Bowden and Marton, 2004). A way of
- Page 108 and 109:
The answer is none in particular, w
- Page 110 and 111:
Table 7.3: Different ways of experi
- Page 112 and 113: 7.6 Phenomenography has not escaped
- Page 114 and 115: outcome spaces describe both the st
- Page 116 and 117: Figure 8.1: Views from three tradit
- Page 118 and 119: There is substantial agreement betw
- Page 120 and 121: • it may mark boundaries in ‘co
- Page 122 and 123: Telling TCs apart from other conten
- Page 124 and 125: et al., 2007). The latter was later
- Page 127 and 128: Part III Teaching Introductory Prog
- Page 129 and 130: Chapter 10 CS1 is Taught in Many Wa
- Page 131 and 132: it and right from the beginning. So
- Page 133 and 134: 10.1.3 Guidance mediates complexity
- Page 135 and 136: 10.2 Some approaches foster schema
- Page 137 and 138: Many CS1 teachers have come up with
- Page 139 and 140: Vagianou (2006) observes that a wea
- Page 141 and 142: Figure 10.6: A view of Anchor Garde
- Page 143 and 144: impressions of computing matter and
- Page 145 and 146: The paradigm shift There is anecdot
- Page 147 and 148: notional machines. Sajaniemi and Ku
- Page 149 and 150: Program visualization vs. algorithm
- Page 151 and 152: Figure 11.2: A part of Kelleher and
- Page 153 and 154: aspects can play a decisive part in
- Page 155 and 156: Table 11.1: The original engagement
- Page 157 and 158: The 2DET The engagement taxonomy of
- Page 159 and 160: Given content means that the learne
- Page 161: Table 11.5: A summary of selected p
- Page 165 and 166: Figure 11.6: DynaLab executing a To
- Page 167 and 168: Figure 11.10: The user has just com
- Page 169 and 170: Figure 11.11: Korsh and Sangwan’s
- Page 171 and 172: Figure 11.14: JIVE displays various
- Page 173 and 174: Figure 11.16: PlanAni executing a P
- Page 175 and 176: Figure 11.18: A snapshot of a Java
- Page 177 and 178: Figure 11.19: Jeliot 3 executing a
- Page 179 and 180: Figure 11.21: The Teaching Machine
- Page 181 and 182: students used VIP in the way intend
- Page 183 and 184: Python in the browser: Jype and the
- Page 185 and 186: 11.3.3 A few systems make the stude
- Page 187 and 188: Figure 11.31: Students interact wit
- Page 189 and 190: Online Tutoring System Kollmansberg
- Page 191 and 192: Figure 11.36: A “Clouds & Boxes
- Page 193: Table 11.7: Experimental evaluation
- Page 196 and 197: Introduction to Part IV We have now
- Page 198 and 199: An example Here is a short Python c
- Page 200 and 201: Chapter 13 The UUhistle System Faci
- Page 202 and 203: 194 Figure 13.1: An animation of a
- Page 204 and 205: Figure 13.2: The between-step stage
- Page 206 and 207: Figure 13.4: UUhistle highlights a
- Page 208 and 209: Figure 13.7: UUhistle’s interacti
- Page 210 and 211: 13.4 Teachers can turn examples int
- Page 212 and 213:
Add another +, then the literal 1.
- Page 214 and 215:
Figure 13.11: The user has created
- Page 216 and 217:
Figure 13.14: A VPS assignment in t
- Page 218 and 219:
Figure 13.16: A visual algorithm si
- Page 220 and 221:
Chapter 14 Visual Program Simulatio
- Page 222 and 223:
the individual instructions of the
- Page 224 and 225:
Visual program simulation seeks to
- Page 226 and 227:
14.2.2 VPS exercises can have eleme
- Page 228 and 229:
features prominently in many progra
- Page 230 and 231:
too, later decided to develop a sof
- Page 232 and 233:
The easiest examples for a programm
- Page 234 and 235:
may be necessary; at the very least
- Page 236 and 237:
Figure 14.1 continued M. H. van Emd
- Page 238 and 239:
integration of new material with pr
- Page 240 and 241:
The system designer vs. excessive d
- Page 242 and 243:
Level 3 By allowing what’s wrong.
- Page 244 and 245:
about this mistake to the user in a
- Page 246 and 247:
Table 15.1: Cognitive dimensions of
- Page 248 and 249:
parts that deal with different stag
- Page 250 and 251:
Error-proneness A VPS exercise in U
- Page 252 and 253:
something that resides ‘within th
- Page 254 and 255:
evidence. Like the documentation of
- Page 256 and 257:
Introduction to Part V Reflecting o
- Page 258 and 259:
launched for sharing (e.g., Fincher
- Page 260 and 261:
elatively independent of the resear
- Page 262 and 263:
There are values that are internal
- Page 264 and 265:
• Authenticity is an abstraction
- Page 266 and 267:
• Triangulation: triangulation of
- Page 268 and 269:
Each assignment was worth a number
- Page 270 and 271:
Figure 16.1: The earlier version of
- Page 272 and 273:
Chapter 17 Students Perceive Visual
- Page 274 and 275:
Figure 17.1: The phenomenographic r
- Page 276 and 277:
Figure 17.4: The structure of human
- Page 278 and 279:
Figure 17.5: The structure of aware
- Page 280 and 281:
further note the importance of esta
- Page 282 and 283:
Whichever variant of the analysis p
- Page 284 and 285:
Different phenomenographers define
- Page 286 and 287:
choose what to do?”, “What does
- Page 288 and 289:
We sought to form an outcome space
- Page 290 and 291:
17.4.1 A: VPS is perceived as learn
- Page 292 and 293:
17.4.2 B: VPS is perceived as learn
- Page 294 and 295:
Interviewer 2 : Can you describe ho
- Page 296 and 297:
17.4.5 E: VPS is perceived as learn
- Page 298 and 299:
through VPS is perceived as learnin
- Page 300 and 301:
Table 17.2: Qualitatively different
- Page 302 and 303:
what the phenomenon is in reality,
- Page 304 and 305:
the students develop a sophisticate
- Page 306 and 307:
involve VPS). 17 • The teacher us
- Page 308 and 309:
thought about the dynamics of VPS.
- Page 310 and 311:
solve the assignments using the ani
- Page 312 and 313:
Table 18.1: Types of information us
- Page 314 and 315:
As they start to work on the first
- Page 316 and 317:
print third second = third As they
- Page 318 and 319:
Elizabeth: And. . . So the function
- Page 320 and 321:
Otto: “True”. . . And then we g
- Page 322 and 323:
The pair fail to accommodate refere
- Page 324 and 325:
Parameter passing was the only topi
- Page 326 and 327:
18.3 We have some quantitative resu
- Page 328 and 329:
and the student searches for meanin
- Page 330 and 331:
in Section 18.2.4 is a step in this
- Page 332 and 333:
Chapter 19 UUhistle Helps Students
- Page 334 and 335:
• The supervising research assist
- Page 336 and 337:
Table 19.1: Improvement from ‘non
- Page 338 and 339:
- attempts to make variables get th
- Page 340 and 341:
to predict program behaviors better
- Page 342 and 343:
• The use of programs with a doma
- Page 344 and 345:
in the course more generally, not o
- Page 346 and 347:
Good both as an idea and in functio
- Page 348 and 349:
In many cases the UUhistle assignme
- Page 350 and 351:
Boredom and excessive detail A fair
- Page 352 and 353:
A handful of students suggested tha
- Page 355 and 356:
Part VI Conclusions 347
- Page 357 and 358:
Chapter 21 Visual Program Simulatio
- Page 359 and 360:
assignments but not focal to user a
- Page 361 and 362:
Chapter 22 What is Next for Visual
- Page 363:
22.3 VPS can be taken to new users
- Page 366 and 367:
Appendix A Misconception Catalogue
- Page 368 and 369:
Table A.1 continued No. Topic Descr
- Page 370 and 371:
Table A.1 continued No. Topic Descr
- Page 372 and 373:
Table A.1 continued No. Topic Descr
- Page 374 and 375:
Table A.1 continued No. Topic Descr
- Page 376 and 377:
Table A.1 continued No. Topic Descr
- Page 378 and 379:
Assignment 1.7 (VPS) marks = float(
- Page 380 and 381:
else: print 'Better luck next time.
- Page 382 and 383:
ide.drive(15) print ride.get_fuel()
- Page 384 and 385:
def quaint(list, element): list[0]
- Page 386 and 387:
Appendix D 3×10 Bullet Points for
- Page 388 and 389:
Okay, what should I take into consi
- Page 390 and 391:
References ACM and IEEE Computer So
- Page 392 and 393:
Bareiss, R. and Radley, M. (2010).
- Page 394 and 395:
Biggs, J. B. and Collis, K. F. (198
- Page 396 and 397:
Burkhardt, J.-M., Détienne, F., an
- Page 398 and 399:
Cross, II, J. H., Hendrix, T. D., a
- Page 400 and 401:
Ehlert, A. and Schulte, C. (2009).
- Page 402 and 403:
Gilligan, D. (1998). An Exploration
- Page 404 and 405:
Harlow, S., Cummings, R., and Abera
- Page 406 and 407:
Johnson, R. and Onwuegbuzie, A. J.
- Page 408 and 409:
Ko, P. Y. and Marton, F. (2004). Va
- Page 410 and 411:
Lauer, T. (2006). Learner Interacti
- Page 412 and 413:
Markman, A. B. and Gentner, D. (200
- Page 414 and 415:
Miyadera, Y., Kurasawa, K., Nakamur
- Page 416 and 417:
Norman, D. A. (2007). Simplicity is
- Page 418 and 419:
Peterson, L. R. and Peterson, M. J.
- Page 420 and 421:
Renkl, A., Stark, R., Gruber, H., a
- Page 422 and 423:
Sajaniemi, J., Kuittinen, M., and T
- Page 424 and 425:
Shneider, E. and Gladkikh, O. (2006
- Page 426 and 427:
Stoodley, I., Christie, R., and Bru
- Page 428 and 429:
Vainio, V. (2006). Opiskelijoiden m
- Page 430:
Willingham, D. T. (2009). Why Don