Graphics can be a very challenging topic for students, especially if the graphical program is being built from scratch in an industrial-level programming language like Java. Despite its challenge, in our experience students are very interested and excited about building graphical programs, likely because they interact with such programs far more often than with console-based programs. The Finch's inputs and outputs can be used to further enhance graphical programs.
Simple Control Programs
A good introduction to graphics with the Finch often involves building graphical panes with buttons or sliders to control the Finch. In these programs, events are easy to deal with - they come from clicking on a button or slider, and directly map to a simple output action on the Finch.
Visualizing Sensor Data
More complex graphical programs may involve visualization of the Finch's rich sensor suite. For example, one can imagine programs that turn a pane different colors based on the obstacle sensors or light levels. For a more complex program, one could create an assignment that turns the Finch into an input device for an on-screen graphical game; the accelerometer data can be used to move a cursor on the screen in two dimensions, and the obstacle or light sensors can be used as buttons. Feedback in the game can occur both in the graphical window and by actuating the LED or motors.