Abstract

jGRASP is a lightweight IDE that provides automatic generation of visualizations that directly support the teaching of major concepts in CS1 and CS2. These concepts include control structures, classes, interfaces, objects, inheritance, polymorphism, composition, and data structures. This workshop will focus on the new canvas of dynamic viewers which allows students and instructors to create custom program visualizations by dragging any primitive or object of a running program stopped at a breakpoint onto the canvas and then saving the canvas. The canvas then comes to life when stepping through the program. Participants are encouraged to bring programs from their own courses. jGRASP is freely available (http://www.jgrasp.org/). All educators who teach Java will benefit from this workshop. However, it will be especially suitable for instructors who teach introduction to programming (CS1) and/or introduction to data structures and algorithms (CS2). The overall objective of the workshop is to introduce faculty to the advanced pedagogical features provided by jGRASP for teaching and learning Java, with special focus on the new canvas of dynamic viewers. The participants will be guided through numerous scenarios to see how creating visualizations of their programs can make learning to program a more enjoyable experience. Since the canvas can be populated with viewers for any primitive or object created by their programs, including object viewers for traditional data structures (e.g., stacks, queues, lists, and binary trees), the visualizations constructed by faculty and students are only limited by their creativity. As they step through their programs in canvas/debug mode, all viewers on the canvas are updated dynamically, which provides the opportunity for a much clearer understanding of the program. When auto-step-in is selected, the canvas becomes an animated visualization of a program's internal behavior. Since the canvas can be saved, instructors can provide program visualizations with their examples for students, or students can create visualizations of their own programs and even submit them as part of their assignments. For example, when arrays are introduced, students may be asked to write a simple program that reads in values from the keyboard (or a file) to populate an array, and then prints out the values in reverse order. The students could quickly create a visualization by dragging their Scanner object and their array object onto the canvas. Then as they step through their program, they will see the tokens being consumed in the Scanner and the array elements being set as the input loop is executed. Finally, they will see the values in the array going to System.out in reverse order as the output loop is executed. Live textbook-like renderings of key elements in their programs can provide students with exciting possibilities for learning.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call