The Natural Programming Project is working on making programming languages and
environments easier to learn, more effective, and less error prone. We are
taking a human-centered approach, first studying how people perform their
tasks and then designing languages and environments around people's natural tendencies. We focus on all kinds of programming, including professional programmers, novice programmers who are trying to learn to be experts, and end users, who program to support other jobs or hobbies, such as multimedia authoring, simulations, teaching, prototyping, and other activities supported by computing.
We're affiliated with the EUSES consortium, which is a group of universities working on end-user software engineering.
Adding Zest to Undoing and Restoring Improves Textual Exploration
A plug-in for Eclipse that facilitates backtracking (undoing) of code.
GRAphical Palettes Help Instantiate
Types in the Editor.
A plug-in for Eclipse that supports type-specific palettes that help
users enter code more easily.
Full of Low-level User Operations Recorded In The Editor.
A plug-in for Eclipse that records the low-level user and Eclipse events to enable analysis.
Plugin for Firefox that helps you understand how parts are implemented.
Eclipse Users' Keystrokes Lessened by Attaching from Samples
Construction And Language Completion Integrated Throughout Eclipse
Helping developers discover properties of software architectures
Helping developers discover when code is executed
Java Documentation with Extra Information Tacked-on for Emphasis.
Associative Perusing of APIs That Identifies Targets Easily.
End User Centered Language, APIs, System, and Environment.
Understanding how interaction designers think about interaction
Whyline for Java
a Workspace that Helps You Link Instructions, Numbers and Events
A data model to help end-user programmers validate and manipulate data
A Java Aid with Sets of Pertinent Elements for Recognition
Basic Abstractions for Rapidly Implementing Structured Text-editing Applications
Clarifications Regarding Your Software using a Toolkit, Architecture, and Language
Makes Interfaces Clear and Accessible
a language for Creating Interactive Tools that Reshape and Utilize Structure
a Spreadsheet Language that Accentuates Type Errors
Human-centered Advances for Novice Development of Software
Scripting an Intelligent Video Editor
Lightweight Structured Text Processing
Copyright © 1996-2012 - Carnegie Mellon University - All Rights Reserved.