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.

Python in the browser: Jype and the Online Python Tutor<br />

Jype is a web-based integrated development environment for Python programming (Helminen, 2009). In<br />

addition to serving as an IDE, Jype can be used for exploring teacher-given example programs and as a<br />

platform for the automatic assessment of given programming assignments. Jype is intended specifically<br />

for CS1 use and has a number of beginner-friendly features. Among these is support for program and<br />

algorithm visualization.<br />

Jype uses the Matrix framework (Korhonen et al., 2004) for visualizing data structures such as arrays<br />

and trees automatically when they appear in programs. Jype also visualizes the call stack in a richer way<br />

than a typical visual debugger, as illustrated in Figure 11.26.<br />

Another new, web-based system for visualizing small Python programs is Online Python Tutor (Guo,<br />

n.d.), shown in Figure 11.27. Like Jype, it allows the user to step forward and backwards in a Python<br />

program at the statement level, and supports the distribution of teacher-given examples and small<br />

programming assignments with automatic feedback.<br />

Functional programming: WinHIPE and others<br />

WinHIPE is an education-oriented IDE for functional programming that includes a program visualization<br />

functionality (Pareja-Flores et al., 2007). WinHIPE visualizes an execution model of pure functional<br />

programs that is based on rewriting terms (no assignment). The user configures each animation by<br />

selecting which aspects are to be visualized and in what order term-rewriting proceeds in the visualization.<br />

Using this facility, teachers can produce and customize dynamic visualizations of selected examples, which<br />

can be exported for students to view. When a visualization is being viewed, the evaluation of expressions<br />

is shown step by step, and the user can step back and forth in the evaluation sequence.<br />

Unlike many of the other visualization tools in this review, WinHIPE is designed to scale up to handle<br />

larger programs. WinHIPE is not specifically directed at CS1 – the authors have used it in more advanced<br />

courses (Pareja-Flores et al., 2007; Urquiza-Fuentes and Velázquez-Iturbide, 2007) – but is a plausible<br />

choice for beginners as well.<br />

An earlier system for visualizing the dynamics of functional programs (in the Miranda language) was<br />

presented by Auguston and Reinfelds (1994). Mann et al. (1994) reported a study using LISP Evaluation<br />

Modeler, which traced the evaluation of LISP expressions. They found positive transfer effects from the<br />

use of the system for debugging, and their students were eager to use it. ELM-ART (see, e.g., Weber and<br />

Brusilovsky, 2001) is an intelligent LISP programming tutor for beginners, which features a component<br />

that visualizes expression evaluation. The DrScheme/DrRacket IDE for the Scheme language also uses<br />

some visual elements to present program dynamics, among its other beginner-friendly features (Findler<br />

et al., 2002).<br />

Visualizing before writing: CSmart<br />

CSmart (Gajraj et al., 2011) takes an approach to visualization that is quite different from all the other<br />

tools reviewed here. Instead of visualizing the execution of an existing program, the focus in CSmart is<br />

on already visualizing each statement of a C program to the student before the student types it in.<br />

CSmart is an IDE with a particular pedagogical goal: to assist the student in duplicating teacherdefined<br />

example programs, thereby practicing programming fundamentals. The system knows exactly<br />

what program it requires the student to write in each assignment. It instructs the student at each step<br />

using text, graphics, and audio. Some of the guidance is teacher-annotated into the model solutions,<br />

some generated automatically. Various visual metaphors have been built into the system to illustrate the<br />

runtime semantics of the programming language. An example is shown in Figure 11.28.<br />

Gajraj et al. (2011) report that their students liked it.<br />

175

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

Saved successfully!

Ooh no, something went wrong!