This is a unique, possibly risky, proposal based on outcomes of research into a new software system development paradigm. The scope of the project is to develop a system that supports a novel programming environment for introductory programming courses that treats software development as an application domain rather than a text-centric encoding activity. The project is in keeping with research outcomes in software development that address the next step after current Object-Oriented approaches. As an improvement to Integrated Development Environments (IDEs), the programming environment transferred into the undergraduate classroom by this project is based on a fresh approach to supporting the programming process and several related research innovations. The approach is to raise the level of abstraction by treating the programming process as an application domain. This elevates the unit of discourse for software construction by providing direct manipulation of semantic elements, so that programming abstractions become the primitives of expression. In turn, this enables a transition from loosely-coupled umbrella IDEs to tightly integrated development environments (TIDEs), in which awareness of program structure creates opportunities for ensuring program consistency and supporting truly live software development. The thrust of this project's research is to treat programming as an application domain, amenable to the same human-computer interface design principles that have been applied successfully to other types of applications. Central to these principles is direct manipulation of domain-specific entities. Research in visual languages has produced systems supporting direct manipulation of program entities, but the emphasis of that research has been on finding new ways to think about computation that are particularly well-suited for visual expression. In contrast, the goal of this project is to provide application-level support for already widely accepted programming practices. Rather than create new languages, this project aims to leverage years of evolution in programming language design by applying human-computer interface design principles to the problem of providing domain-specific support for programming in existing high-level languages. Computer science departments in colleges and universities are continually faced with difficulties in effectively communicating deep intellectual content in introductory courses, recruiting a diverse population into the field, and reaching out to students in other disciplines who could benefit from computer science background. The educational impact of this proposal will be to address these difficulties by introducing into the undergraduate classroom a new learning environment that makes software development more tangible.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Network Systems (CNS)
Application #
0305954
Program Officer
Anita J. LaSalle
Project Start
Project End
Budget Start
2003-08-15
Budget End
2007-07-31
Support Year
Fiscal Year
2003
Total Cost
$514,996
Indirect Cost
Name
Washington University
Department
Type
DUNS #
City
Saint Louis
State
MO
Country
United States
Zip Code
63130