What You See Is What You Code: A "live" algorithm development and visualization environment for novice learners

  • Authors:
  • Christopher D. Hundhausen;Jonathan L. Brown

  • Affiliations:
  • Visualization and End user Programming Laboratory, School of Electrical Engineering and Computer Science, Washington State University, Pullman, WA 99164-2752, USA;Visualization and End user Programming Laboratory, School of Electrical Engineering and Computer Science, Washington State University, Pullman, WA 99164-2752, USA

  • Venue:
  • Journal of Visual Languages and Computing
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Pedagogical algorithm visualization (AV) systems produce graphical representations that aim to assist learners in understanding the dynamic behavior of computer algorithms. In order to foster active learning, computer science educators have developed AV systems that empower learners to construct their own visualizations of algorithms under study. Notably, these systems support a similar development model in which coding an algorithm is temporally distinct from viewing and interacting with the resulting visualization. Given that they are known to have problems both with formulating syntactically correct code, and with understanding how code executes, novice learners would appear likely to benefit from a more ''live'' development model that narrows the gap between coding an algorithm and viewing its visualization. In order to explore this possibility, we have implemented ''What You See Is What You Code,'' an algorithm development and visualization model geared toward novices first learning to program under the imperative paradigm. In the model, the line of algorithm code currently being edited is reevaluated on every edit, leading to immediate syntactic feedback, along with immediate semantic feedback in the form of an AV. Analysis of usability and field studies involving introductory computer science students suggests that the immediacy of the model's feedback can help novices to quickly identify and correct programming errors, and ultimately to develop semantically correct code.