Despite years of research into human computer interaction (HCI), the environments programmers must use for problem-solving today--with separate modes and tools for writing, compiling, testing, visualizing, and debugging-derive their basic structure from historical accident, and take little advantage of HCI research into the cognitive issues of programming. Neglecting these issues is an impediment to the programmers' ability to produce reliable, maintainable software. In this paper, we describe a system in which programmers can modelessly steer as they specify, visualize, explore, and alter the behavior of a program while traveling through the program's logical time. This approach supports two often-neglected cognitive principles that programmers need for problemsolving.
John W. Atwood Jr., Margaret M. Burnett, Rebecca A