oct 2014 —

Our papers on InterState and Gneiss will be presented at UIST'14.

aug 2014 —

Our papers on Azurite and Gneiss were presented at VL/HCC'14.

aug 2014 —

Most Influential Paper Award at VL/HCC 2014, for "Estimating the Numbers of End Users and End User Programmers", Christopher Scaffidi, Mary Shaw, and Brad Myers. (Brad Myers is the only person to win three times!)

sep 2013 —

Our paper on Azurite was presented at VL/HCC'13.

sep 2013 —

Most Influential Paper Award at VL/HCC 2013, for "Six Learning Barriers in End-User Programming Systems", Andrew J. Ko, Brad A. Myers, and Htet Htet Aung,

may 2013

Our paper on Euclase was presented at the LIVE workshop at ICSE'2013.

dec 2012

Brad Myers is selected as an IEEE Fellow!

oct 2012

A paper about ConstraintJS was presented at UIST'12.

oct 2012

Our paper from 2002 was named a Most Influential Paper at VL/HCC'2012!

more news...

The Natural Programming Project is working on making programming languages, APIs, 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, APIs, 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-user programmers (EUPs), 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 researchers working on end-user software engineering, and with the project on Variations to Support Exploratory Programming.

Ongoing Projects

Allowing Quick Undoing of Any Marks And Repairs to Improve Novel Editing
Painting program to explore selective undo using the script model.
Cloud9 Recorder of Your Operations by Listening to Interactions in The Editor.
Gathering Novel End-User Internet Services using Spreadsheets
Uses a spreadsheet language to create interactive web applications using web service data.
(Formerly called: Euclase: End User Centered Language, APIs, System, and Environment.)
New tool to allow designers to author web behaviors using state machines and constraints.
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.
A JavaScript library that supports constraints combined with state transitions.
API Usability
Informing API design choices through empirical studies. Includes sub-project on eSOA API Usability.

Recent Projects

Studies of Designers
Understanding how interaction designers think about interaction
Studies of software development
By novices, end users, professionals and everyone between
Java Documentation with Extra Information Tacked-on for Emphasis.
Associative Perusing of APIs That Identifies Targets Easily.
Visualization tool that allows developers to search and explore feasible paths and answer reachability questions.
Eclipse Users' Keystrokes Lessened by Attaching from Samples
(Eclipse plugin for JavaScript, that helps with copying and pasting code.)
Construction And Language Completion Integrated Throughout Eclipse
Helping developers discover properties of software architectures
Update Paths
Helping developers discover when code is executed
Firefox extension to show the html and Javascript code responsible for behaviors on web pages
Plugin for Firefox that helps you understand how parts are implemented.
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
Whyline for Alice
a Workspace that Helps You Link Instructions, Numbers and Events

Past Projects

Human-centered Advances for Novice Development of Software
Scripting an Intelligent Video Editor
Lightweight Structured Text Processing

Copyright © 1996-2016 - Carnegie Mellon University - All Rights Reserved.