No Code Required: Giving Users Tools to Transform the Web

Paperback (Print)
Buy New
Buy New from
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 96%)
Other sellers (Paperback)
  • All (10) from $1.99   
  • New (6) from $19.95   
  • Used (4) from $1.99   


No Code Required presents the various design, system architectures, research methodologies, and evaluation strategies that are used by end users programming on the Web. It also presents the tools that will allow users to participate in the creation of their own Web.
Comprised of seven parts, the book provides basic information about the field of end-user programming. Part 1 points out that the Firefox browser is one of the differentiating factors considered for end-user programming on the Web. Part 2 discusses the automation and customization of the Web. Part 3 covers the different approaches to proposing a specialized platform for creating a new Web browser. Part 4 discusses three systems that focus on the customized tools that will be used by the end users in exploring large amounts of data on the Web. Part 5 explains the role of natural language in the end-user programming systems. Part 6 provides an overview of the assumptions on the accessibility of the Web site owners of the Web content. Lastly, Part 7 offers the idea of the Web-active end user, an individual who is seeking new technologies.

• The first book since Web 2.0 that covers the latest research, development, and systems emerging from HCI research labs on end user programming tools

• Featuring contributions from the creators of Adobe’s Zoetrope and Intel’s Mash Maker, discussing test results, implementation, feedback, and ways forward in this booming area

• Companion Web site features video demonstrations of each system (

Read More Show Less

Editorial Reviews

From the Publisher
"The web is becoming not only a venue for people to receive information but increasingly a place for them to create new forms of information and to share them. The transition in the role from being a passive consumer to an active consumer as well as contributor is made possible by exactly the kind of work described in this book." — Dr. Margaret Burnett, Dept of Computer Science, Oregon State University

"No Code Required presents … the latest thinking, research, and efforts to empower the masses … and provide people everywhere with the tools and capabilities to make the Web do what they want." - Chris Beard, Chief Innovation Officer, Mozilla

Read More Show Less

Product Details

  • ISBN-13: 9780123815415
  • Publisher: Elsevier Science
  • Publication date: 4/19/2010
  • Edition description: New Edition
  • Pages: 512
  • Product dimensions: 7.40 (w) x 9.20 (h) x 1.30 (d)

Meet the Author

Allen has provided, substantial contributions in the research, design, and implementation of innovative end-user applications. His primary interest is in creating simple interfaces for complex tasks, including intelligent interfaces, customizable software, user interface design, software design, and instruction. Edited the book "Watch What I Do: Programming by Demonstration", which was published by MIT Press in 1993 (3000 sold). He has created several successful end-user programming systems: Eager, Stagecast Creator, and CoScripter. Ph.D. Computer Science, Yale University, A.B. A.B. Mathematics, Princeton University.

Mira has been building web summarization and customization systems since 2005. Mira is interested in a variety of problems including managing, sharing, and repurposing Web content and visualizing heterogenous data. Her dissertation work was on interaction techniques for semi-automatic gathering and customization of web content. Mira is interested in creating systems that allow users to access the information they need quickly and easily. Ph.D. in Computer Science, University of Washington.

Tessa has been doing research on end user programming since 1997, resulting in more than a dozen technical papers on the various aspects of EUP. Tessa’s research goal is to develop innovative interfaces for enhancing human productivity and creativity through the use of techniques drawn from artificial intelligence. Her research interests include intelligent user interfaces, machine learning, artificial intelligence, human-computer interaction, programming by demonstration, and email classification. She also contributed a chapter about her SMARTedit system to the second EUP book, “Your Wish Is My Command”. PhD, University of Washington's Department of CS&E.

Jeffrey currently leads the Highlight project, which is building technology that allows users to easily create their own mobile versions of existing web sites. His research interests are in the field of human-computer interaction, with a specific focus on automated design, mobile computing, end-user programming, and ubiquitous computing. He received his Ph.D. in December 2006 from the Human-Computer Interaction Institute in Carnegie Mellon University’s School of Computer Science. His thesis described the first system to automatically generate interfaces that are consistent with a user’s previous experience and provided the first evidence from user studies that automatically generated interfaces can be more usable than human-designed interfaces in certain situations. He received a BS degree in computer engineering from the University of Washington in 2000.

Read More Show Less

Read an Excerpt

No Code Required

Giving Users Tools to Transform the Web

Morgan Kaufmann

Copyright © 2010 Elsevier Inc.
All right reserved.

ISBN: 978-0-12-381542-2

Chapter One

End user programming on the Web

Allen Cypher IBM Research – Almaden


This introduction explains who end users are and why they want to program. In the past 25 years, there have been two main approaches to enable end users to create their own programs: scripting languages and programming by demonstration. After outlining the challenges that confront these approaches, we shall see how the Web has removed some of the most significant barriers, opening the way for the recent progress that is detailed in this book.


For as long as there have been computers to program, there have been attempts to make programming easier, less technical, and available to a broader audience. The term "end user programming" proposes that although most computer users do not know how to program, they would appreciate having some of the power of programming, if only it could be obtained with little effort.

Back in the 1960s, using a computer meant programming a computer. There was no need for the concept of "end user programming" because all end users were programmers. By the 1980s, this was beginning to change. I had a friend who – in 1980 – wrote her comparative literature thesis on punch cards. She was not a programmer, but the ability to add a sentence and not have to retype a chapter was revolutionary and compelling, and she was willing to spend some effort to get some of the capabilities that had previously been available only to programmers. Then the Macintosh came out in 1984 and changed everything. Soon, computers meant "desktop computers," command languages were replaced by direct manipulation, and "end users" came into existence. These end users of computers had no desire to become programmers; they wanted to use computers to edit documents, create graphics, and, eventually, to communicate via email. Instead of programming, their goal was computer literacy, which meant knowing how to point-and-click in a word processor or spreadsheet.

Nonetheless – as we shall see – it is inevitable that end users will encounter tasks that are painfully repetitive, or that require an inordinate number of actions to accomplish a simple goal. In these situations, end users could simplify their interaction with the computer, if only they could program.

So, in the modern world of computer literacy, there is a need for end user programming. This chapter defines end user programming, summarizes the current state of the field, and shows how the Web has removed many of the obstacles to widespread adoption of end user programming.


Who are end users?

I consider the term end user to refer to the vast majority of personal computer users whose use of a computer consists of taking advantage of currently available software. The range of what they can do with a computer is determined by that software. The word end distinguishes this group from computer programmers, because programmers use computers to create tools and applications for others to use.

End users have jobs in real estate, retail sales, car repair, and the performing arts. In their spare time, they are gardeners, cyclists, sports fans, and knitters. They use computers to communicate with their friends, to manage their photos, to find information, and to buy things.

Why do end users want to program?

Let's begin with a variety of scenarios where end users could benefit from end user programming. These are situations in everyday computer use where it would be helpful if the computer could automate part of an activity. I will use real examples from my own experience, and I will briefly describe in more general terms the motivations for end user programming that these scenarios exemplify. Chapter 2, "Why we customize the Web," offers a different perspective on why end users want to program.

1) Forward phone to home

I frequently work from home, so I like to forward my work phone to my home number. Fortunately, we have VOIP phones at work, so it is possible to use a Web site to forward the phone. The Web site offers many capabilities and many options. But I only use one of those capabilities, and I use it often. This activity requires nine actions, with a great deal of waiting because the Web site is slow. I would like to be able to click once and let my computer take care of forwarding the phone. See Figure 1.1.

Motivation: Many capabilities and options. In general, Web site developers need to meet the needs of all of their users, so they need to include long lists of capabilities – such as "Configure your Cisco Personal Address Book" – that are useful for someone, but are just complicating clutter to others. And even a single activity, such as paying for a purchase, may require a variety of options to handle arbitrary user preferences, such as paying with Visa, MasterCard, or PayPal. Chapter 5, "Collaborative scripting for the Web," describes a tool for automating activities with many actions.

Motivation: Unique personal information. Even if there were a special Web page for forwarding one's phone, Cisco is not going to know my home phone number. It takes a custom end user program to create "Forward Allen Cypher's work phone to his home number."

2) Pay my monthly credit card bill

Every month, I look over my credit card bill on the Web, and then schedule an automated payment for 3 days before the due date. This activity requires 15 actions. What I would really like is to click once to see the bill, and then when I'm ready, click one more time to complete the activity. See Figure 1.2.

Motivation: Poorly designed applications and Web sites. Fifteen actions is an awful lot for paying a bill, and it's likely that your credit card company has a better Web site. One reason end users create programs is to streamline and improve poorly designed applications and Web sites. It may happen that a software developer will eventually fix the problem, but it's a problem for you now.

3) Send text alerts

I often forget to check my personal information manager for email, so I sometimes don't see an important message until it's too late. My iPhone makes an audible beep when a text alert arrives, so I would like to get a text alert whenever I receive an urgent email from a friend

Motivation: Triggering automated responses. Chapter 7, "Mixing the reactive with the personal," describes an end user programming system called Atomate that lets users automate a wide variety of tasks of the form "Do A when situation B occurs." See Figure 1.6.

4) Gather hotel information

When I planned a trip to Florence and needed to find a hotel, I wanted to consult a variety of Web sites, read some reviews, select various hotels that seemed promising, and gather information about their location and price, a photo, and a sentence or two from a helpful review. A single button wouldn't work in this case, but I would have appreciated assistance in the repetitive parts of this task, and I wish there had been a way to organize all of this information. See Figure 1.3.

Motivation: Information gathering. Information gathering is such a prevalent and important use of the Web that it constitutes a new genre of activities that can be supported well by end user programming. Chapter 12, on Web summaries, addresses this genre directly.

5) Add nutritional information

Whenever I see a recipe on the Web, I wish the ingredients were accompanied by nutritional information. That information is available on other Web sites, but it requires of great deal of repetitive effort to compile the information. See Figure 1.4. Another end user might want to add price information from a local grocery store.

Motivation: Mashups. End users may have personal needs that are not addressed by a single application or Web site, so they may want to "mash up" multiple sites. Chapter 4, "A goal-oriented Web browser," addresses this scenario directly, and mashups are considered in several other chapters as well.

What is end user programming?

As the examples above have illustrated, applications and Web sites are created to address specific needs and provide specific capabilities. But invariably, users find that in order to meet their own specific needs, they have to perform mundane, repetitive actions. Although it might be possible to meet these needs by writing a program, end users are not computer geeks, and one can't rely on the fascination of programming to lure them into learning a traditional programming language.

In short, end user programming is programming by people who are not professional programmers. The program is often something that only this one person wants. And because end users are engaged in performing real-world tasks, the solution often needs to be accomplished right away, while the user is performing the task.

The challenge to researchers in this field is to find ways to make limited forms of programming sufficiently understandable and pleasant that end users will be willing and able to program. The goal is to bring programming to "the rest of us," and advances in end user programming come when systems achieve an elegant balance between power and ease of use.

The gray areas

I would like to exclude solutions that are too limited in scope and power to be called programming. For instance, check boxes in a preference dialog can customize an application to better suit individual preferences, but they don't qualify as end user programming.

I would also like to exclude approaches that are too hard and technical to be considered an advance in making programming accessible to nonprogrammers. This includes cases where the users who adopt the approach do not represent typical end users; for instance, they may be scientists or accountants. There is good work in this area: LabView (see is a successful tool that enables end users to wire together laboratory instrumentation.

Another gray area is applications for end users that include programming as part of the application, to enable additional capabilities for advanced users. Adobe Photoshop includes a history mechanism that records each user action, and it is possible to group recorded actions into a macro for automation. Microsoft Word can be extended with the Visual Basic scripting language. But in neither of these cases is scripting essential to use of the application, nor is it a typical activity for the typical user. Perhaps one could call this amateur programming.


Excerpted from No Code Required Copyright © 2010 by Elsevier Inc. . Excerpted by permission of Morgan Kaufmann. All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.

Read More Show Less

Table of Contents

Foreword xi

Preface xiii

About the Editors xvii

Contributors xix

Part 1 Introduction

Chapter 1 End User Programming on the Web Allen Cypher 3

Chapter 2 Why We Customize the Web Lydia B. Chilton Robert C. Miller Greg Little Chen-Hsiang Yu 23

Part 2 Customizing and Automating

Chapter 3 Rewriting the Web with Chickenfoot Robert C. Miller Michael Bolin Lydia B. Chilton Greg Little Matthew Webber Chen-Hsiang Yu 39

Chapter 4 A Goal-Oriented Web Browser Alexander Faaborg Henry Lieberman 65

Chapter 5 Collaborative Scripting for the Web Allen Cypher Clemens Drews Eben Haber Eser Kandogan James Lin Tessa Lau Gilly Leshed Tara Matthews Eric Wilcox 85

Chapter 6 Highlight: End User Re-Authoring of Existing Web Sites Jeffrey Nichols Zhigang Hua Tessa Lau John Barton 105

Chapter 7 Mixing the Reactive with the Personal: Opportunities for End User Programming in Personal Information Management (PIM) Max Van Kleek Paul André Brennan Moore David Karger m.c. schraefel 127

Part 3 Mashups

Chapter 8 Clip, Connect, Clone: Combining Application Elements to Build Custom Interfaces for Information Access Jun Fujima Aran Lunzer Kasper Hornbæk Yuzuru Tanaka 153

Chapter 9 Intel® Mash Maker Rob Ennals 173

Chapter 10 Programming by a Sample: Leveraging Web Sites to Program Their Underlying Services Björn Hartmann Leslie Wu Kevin Collins Scott R. Klemmer 191

Chapter 11 A World Wider than the Web: End User Programming Across Multiple Domains Will Haines Melinda Gervasio Jim Blythe Kristina Lerman Aaron Spaulding 213

Part 4 Visualization and Exploration

Chapter 12 From Web Summaries to Search Templates: Automation for Personal Tasks on the Web Mira Dontcheva Steven M. Drucker David Salesin Michael F. Cohen 235

Chapter 13 The Temporal Dimension in End User Programming for the Web Eytan Adar Mira Dontcheva James A. Fogarty Daniel S. Weld 251

Chapter 14 Subjunctive Interfaces for the Web Aran Lunzer Kasper Hornbæk 267

Part 5 Natural Language

Chapter 15 Sloppy Programming Greg Little Robert C. Miller Victoria H. Chou Michael Bernstein Tessa Lau Allen Cypher 289

Chapter 16 Going beyond PBD: A Play-by-Play and Mixed-initiative Approach Hyuckchul Jung James Allen William de Beaumont Nate Blaylock Lucian Galescu George Ferguson Mary Swift 309

Chapter 17 Knowing What You're Talking About: Natural Language Programming of a Multi-Player Online Game Henry Lieberman Moin Ahmad 331

Part 6 Accessibility

Chapter 18 Social Accessibility: A Collaborative Approach to Improving Web Accessibility Yevgen Borodin Shinya Kawanaka Hironobu Takagi Masatomo Kobayashi Daisuke Sato Chieko Asakawa 347

Chapter 19 TrailBlazer: Enabling Blind Users to Blaze Trails Through the Web Jeffrey P. Bigham Tessa Lau Jeffrey Nichols 367

Part 7 User Studies

Chapter 20 The Web-Active End User Nan Zang Mary Beth Rosson 389

Chapter 21 Reuse in the World of End User Programmers Christopher Scaffidi Mary Shaw 407

Chapter 22 Mashed Layers and Muddled Models: Debugging Mashup Applications M. Cameron Jones Elizabeth F. Churchill Les Nelson 423

Chapter 23 How the Web Helps People Turn Ideas into Code Joel Brandt Philip J. Guo Joel Lewenstein Mira Dontcheva Scott R. Klemmer 439

References 453

Index 473

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)