28.03.2014 Views

isbn9789526046266

isbn9789526046266

isbn9789526046266

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Given content means that the learner engages with a visualization of software that they have not<br />

produced themselves and whose behavior they do not significantly affect. Examples: a teacher-given<br />

example program, a program chosen from a selection of predefined examples in an SV tool’s library.<br />

Own cases is defined as above, except that the learner can choose inputs or other parameters that<br />

significantly affect what the target software does. Example: choosing a data set for an algorithm, entering<br />

inputs that affect loop termination during a program visualization that illustrates control flow. Merely<br />

typing in some relatively arbitrary input does not count as own cases.<br />

Modified content means that the learner engages with a visualization of given software which they have<br />

already modified themselves or may modify while using the visualization.<br />

Own content means that the learner engages with a visualization of software that they wrote themselves.<br />

A note on the 2DET<br />

I have introduced the 2DET primarily to help me produce a nuanced and yet succinct and systematic<br />

description of the learning activities supported by different program visualization systems. In this chapter,<br />

I have used the taxonomy only as a classification tool for structuring my review of program visualization<br />

systems. I feel that it allows a clearer expression of modes of visualization use than the OET or the EET.<br />

I will further use the 2DET to describe the functionality of our own PV system in Part IV.<br />

The 2DET could be used in the future in research that tests hypotheses about the role of engagement<br />

in software visualization, and could serve as a basis for a wider and more detailed review of software<br />

visualization in programming education. Such initiatives may establish how useful the taxonomy is in<br />

general, but are beyond the scope of my present work. That said, I do expect that both kinds of<br />

engagement highlighted by the two dimensions of the 2DET can help bring about the “purposeful perusal”<br />

of program visualizations that Petre called for (p. 144 above).<br />

In the end, perhaps it matters less which classification system you use than how you engage with the<br />

one you do use.<br />

11.3 Many existing systems teach about program dynamics<br />

This section describes a number of program visualization tools for introductory programming education, as<br />

delimited in Section 11.1 above. A summary of the tools appears in Tables 11.5, which gives an overview<br />

of each system, and 11.6, which goes into more detail on the systems’ visualization and modes of user<br />

interaction. The preceding Table 11.4 provides a legend to the other two tables.<br />

11.3.1 Regular visual debuggers are not quite enough<br />

Tools that reflect code-level aspects of program behavior, showing execution proceeding<br />

statement by statement and visualizing the stack frame and the contents of variables [. . . ] are<br />

sometimes called visual debuggers, since they are directed more toward program development<br />

rather than understanding program behavior. (Pears et al., 2007, p. 209)<br />

Programming experts – and novices, though not as often as many programming teachers would like –<br />

use debugging software such as that shown in Figure 11.4 to find defects in programs and to become<br />

familiar with the behavior of complex software. These tools are not particularly education-oriented or<br />

beginner-friendly, but can still be useful in teaching (see, e.g., Cross et al., 2002) and may be integrated<br />

into otherwise beginner-friendly environments such as the BlueJ IDE (Kölling, 2008).<br />

Typical visual debuggers have significant limitations from the point of view of learning programming<br />

fundamentals. They generally step through code only at the statement level, leaving most of the<br />

educationally interesting dynamics of expression evaluation implicit. The visualization and user interface<br />

controls of a ‘regular visual debugger’ are geared towards programming-in-the-large, not towards<br />

explicating programming concepts and principles such as assignment, function calls, parameter passing,<br />

and references, all of which the user is assumed to understand already. Only information essential for<br />

an expert programmer is shown, with the goal of helping the programmer to find interesting (defective)<br />

stages of execution in as few steps as possible while ignoring as many details as possible. The target<br />

151

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!