uid   User Interface Design Group


The User Interface Design group develops and studies new user interface techniques, primarily focusing on the following areas:
  • Web automation and customization: helping web users to improve their experience of using web sites and web applications.
  • Web publishing: helping small-scale web page authors present and manage data in rich, interactive ways.
  • Automated text editing: managing repetitive editing tasks and doing them accurately.
  • Usable security: rethinking computer security so that it is usable and understandable, not just secure.
  • Software development: making professional programmers more productive by designing tools with appropriate user interfaces.

Web Automation & Customization

Chickenfoot is an extension for the Firefox web browser that supports end-user automation and customization of web pages -- without having to look at the page's HTML source.

Keyword programming, also known as sloppy programming, is a new programming paradigm that eschews rigid syntax and strives to parse suggestive and loosely grammatical expressions.

Smart Bookmarks introduces the idea of automatic retroactive macro recording, which allows you can create a bookmark for any point in your web browsing, even dynamic or hard-to-reach web pages where the URL alone does not recover the correct page.

Inky is a sloppy command line for the Web, using keyword commands instead of rigid syntax, and rich graphical feedback.

Froggy is a Firefox extension for improving the readability of web pages.

Web Publishing

Exhibit creates interactive, data-rich web pages without programming or database tools.

Potluck is a web user interface for making data mashups from multiple Exhibits -- no programming or data modeling skills required.

Automated Text Editing

Mass Edit is a web user interface for rapidly editing many lines of a file at once, using multiple cursors.

LAPIS is an experimental text editor/web browser that demonstrates a range of novel techniques for automated text editing. Most of the techniques below are implemented in LAPIS.

Simultaneous editing is a method for automatically editing repetitive text, using multiple cursors at the same time. As implemented in LAPIS, this technique is more powerful than Mass Edit.

Outlier finding reduces errors in large-scale editing by directing the user's attention to unusual or inconsistent data.

Cluster-based find & replace improves the standard find & replace interface by clustering matches by similarity, so that whole clusters of similar matches can be replaced at once while outliers can be judged individually.

Usable Security

Kangaroo (originally called Facemail) is a Firefox extension that tries to reduce the chance of misdirected email by automatically displaying the faces of an email message's recipients while the message is being composed.

Phishing defense studies seek to understand why people fall for phishing attacks (fake emails and web sites that lure unsuspecting victims into revealing their passwords, credit cards, or other private information) and reproduce their behavior using laboratory user studies, so that new defenses can be tested before deployment.

Web Wallet is a browser sidebar that helps manage a user's sensitive information, with the goal of reducing the effectiveness of phishing by making safe actions easier than unsafe ones, integrating itself into the user's workflow, and respecting the user's goals.

Secure email is a series of studies aimed at understanding why secure email is not more widely adopted, despite its wide availability.

Software Development

Relo & Strata is a plugin for Eclipse that provides incremental, interactive exploration of code using familiar graphical notations (UML class diagrams for Relo, layered architecture diagrams for Strata).

Quack is an Eclipse plugin that applies keyword programming to Java, using keywords to direct automatic code completion.

Codetrail is a system that shares information between Eclipse and Firefox so that documentation and other web resources can be easily and automatically connected to source code.

User-Directed Sketch Interpretation is a system for creating structured diagrams from hand-drawn sketches, particularly for software diagrams.

Courses

6.831 User Interface Design and Implementation introduces principles and techniques of user interface design, using a semester-long user-centered design project.

6.005 Elements of Software Construction is a foundation-level course teaching essential principles of object-oriented programming, functional programming, and software engineering, using the Java programming language.

6.470 IAP Web Programming Competition is an intense four-week experience in which students learn modern web programming technology and some principles good web design, and then apply what they learned to build a highly-interactive, database-backed web site, for cash prizes.

Acknowledgements

Research in the User Interface Design group is supported in part by the NTT/MIT collaboration, the National Science Foundation (award number IIS-0447800), and the Quanta TParty project. Any opinions, findings, conclusions or recommendations expressed herein are those of the authors and do not necessarily reflect the views of the sponsoring organizations.

Contact: Rob Miller (rcm@mit.edu)

Computer Science and
Artificial Intelligence Laboratory
Massachusetts Institute of Technology