Learning Computer Science Concepts via Interactive Visualizations

Susan H. Rodger, Duke University

At Duke University we use interactive visualizations to aid the learning process in a wide-range of courses including CS0, CS1, CS2 and Mathematical Foundations. We present two software tools we have developed, JAWAA and JFLAP, and show how we use them in teaching computer science concepts. JAWAA is a scripting language for creating animations easily over the web. JAWAA includes primitives, easy creation of data structures and operations on these structures, and an editor for easy creation of complex objects. We have used JAWAA in all four courses mentioned above. JFLAP is a comprehensive software tool for experimenting with concepts in a formal languages and automata theory course that is currently used around the world in over 40 countries. With JFLAP one can explore the concepts of automata, grammars, parsing, L-systems, and the conversion of one representation of a language to another. For example, one can enter in a regular expression, convert it to an NFA, then a DFA, then a minimum state DFA and then back to a regular expression. We will describe how JFLAP and JAWAA aid in visualizing and interacting with computer science concepts.