September 2004 - Vol. 47 No. 9

September 2004 issue cover image

Features

Opinion Editorial pointers

Editorial Pointers

There is a growing faction of software developers dedicated to empowering end users with the tools to become, in fact, software developers. And if this thriving group fulfills this plan as envisioned, end users should never be aware of the new role they’ve assumed. The goal of end-user development (EUD) is to provide users the […]
News News track

News Track

A group of 4,000 scientists, including 48 Nobel Laureates, has called for the "restoration of scientific integrity in federal policymaking," charging the U.S. government with imposing strict controls on researchers who want to share ideas with colleagues in other countries. The Union of Concerned Scientists issued a report in July claiming current government policies could […]
Opinion Forum

Forum

The dictionary defines a myth as an unproved assertion about history, politics, or religious belief used as justification for social action. Peter J. Denning’s "The Profession of IT" column ("The Field of Programmers Myths," July 2004) extended this idea to include unproved assertions about computer science. Denning claimed the assumption "computer science equals programming" is […]
Research and Advances End-user development

Introduction

As software becomes more ubiquitous in products and on the Internet, so does the need to develop it. It is estimated that by 2005 in the U.S. alone, there will be 55 million end-user developers compared to 2.75 million professional software developers [1]. End-user development (EUD) is about taking control—not only of personalizing computer applications […]
Research and Advances End-user development

Meta-Design: a Manifesto For End-User Development

End-user development (EUD) activities range from customization to component configuration and programming. Office software, such as the ubiquitous spreadsheet, provides customization facilities, while the growth of the Web has added impetus to end-user scripting for interactive functions in Web sites. In scientific and engineering domains, end users frequently develop complex systems with standard programming languages such as C++ and Java. However, only a minority of users adapt commercial off-the-shelf (COTS) software products. Indeed, composing systems from reusable components, such as enterprise resource planing (ERP) systems, defeats most end users who resort to expensive and scarce expert developers for implementation.
Research and Advances End-user development

Reducing Expertise Tension

As an explicit design topic, end-user development (EUD) is rather new to human-computer interaction (HCI), although it is implicitly embedded in many design projects. What makes EUD different from other HCI topics is that in traditional HCI terms, users are experts in their tasks, and good tools should match these tasks. Conversely, end-user developers are trying to complete development tasks in which, by definition, they are not experts. Therefore, the dominating design goal of EUD tools is to compensate for a discrepancy between the user's expertise and the development task to be performed.
Research and Advances End-user development

The Economics of End–ser Development

The productivity paradox raised concerns that IT investment rarely leads to productivity gains [1]. End-user development (EUD), however, may provide the answer to this concern if increased productivity can be demonstrated. Recent research has questioned the productivity paradox and substantially improved our understanding about how IT productivity may be influenced by the manner of change.
Research and Advances End-user development

Agent-Based End-User Development

The goal of agent-based end-user development (EUD) is to empower end users with agents they can instruct directly. This process of instruction is completely transparent to the user; that is, it is not based on opaque adaptation mechanisms. Conceptually, the idea of instructing agents includes what is often called end-user programming [3] that addresses some of the major objections users have toward agents, such as the lack of trust and the need to train them. However, it poses the huge challenge of creating development tools suitable for end users who possess no programming background or interest in learning how to program.
Research and Advances End-user development

Natural Programming Languages and Environments

Over the last six years, we have been working to create programming languages and environments that are more natural, or closer to the way people think about their tasks. Our goal is to make it possible for people to express their ideas in the same way they think about them. To achieve this, we have performed various studies about how people think about programming tasks, both when trying to create a new program and when trying to find and fix bugs in existing programs. We then use this knowledge to develop new tools for programming and debugging.
Research and Advances End-user development

End-User Software Engineering

End-user programming has become the most common form of programming in use today [2], but there has been little investigation into the dependability of the programs end users create. This is problematic because the dependability of these programs can be very important; in some cases, errors in end-user programs, such as formula errors in spreadsheets, have cost millions of dollars. (For example, see www.theregister.co.uk/content/67/31298.html or panko.cba.hawaii.edu/ssr/Mypapers/whatknow.htm.) We have been investigating ways to address this problem by developing a software engineering paradigm viable for end-user programming, an approach we call end-user software engineering.
Research and Advances End-user development

Component-Based Technologies For End–ser Development

Component-based software development (CBSD) involves multiple roles. Framework builders create the infrastructure for components to interact; developers identify suitable domains and develop new components for them; application assemblers select domain-specific components and assemble them into applications; and end users employ component-based applications to perform daily tasks [7].
Research and Advances End-user development

Natural Development of -biquitous Interfaces

A goal of natural development is to ease the building of interactive software systems. Some work has been dedicated to obtaining natural programming [3], which aims to support programming through languages understandable by people without any specific programming skills. On one hand, natural development implies that people should be able to work through familiar and instantly understandable representations that allow them to easily express relevant concepts, and thereby create or modify applications. On the other hand, since a software artifact must be precisely specified in order to be implemented, there will still be the need for environments supporting transformations from intuitive and familiar representations into precise---but more difficult to develop---descriptions.
Research and Advances End-user development

End-User Developers at Home

There have been many "homes of the future" demonstrations, in which intelligent appliances communicate with each other for the convenience of the homeowner. Manufacturers, wealthy celebrities, gadget lovers, and researchers think they are great. But now that transport-layer technology for highly networked homes is commercially feasible (whether WiFi or simply cheap cabling), it's time to ask why typical households need it.
Research and Advances

Calculating Error Rates For Filtering Software

Surveys in the U.S. have found that 95% of schools [4], 43% of public libraries [5], and 33% of teenagers' parents [8] employ filtering software to block access to pornography and other inappropriate content. Many products are also now available to filter out spam email.Filtering software, however, cannot perfectly discriminate between allowed and forbidden content, resulting in two types of errors. First, under-blocking occurs when content is not blocked that should be restricted. Second, over-blocking occurs when content is blocked that should not have been restricted. Steps can be taken to reduce the frequency of errors, and to reduce their costs (for example, by providing easy appeals processes, quick overrides, and corrections) but some errors are inevitable.
Research and Advances

Toward the Eco-Grid: a Harmoniously Evolved Interconnection Environment

The Internet, along with its myriad resources and users, constitutes a vast artificial virtual environment that benefits all of human society. But both the general public and the research community may be unaware of its developmental trend toward disorder due to the exponential growth of the numbers and types of its resources and users. By way of analogy, this trend can be explained with the help of the second law of thermodynamics, which states that if we regard the environment as a closed system with constant volume and energy, then every change to the system increases its tendency toward entropy.
Opinion Inside risks

The Big Picture

In this column we provide a high-level overview of some of the most pressing problem areas associated with risks to the constructive use of information technology. Although this may seem repetitive to those of you who have seen particular problems discussed in previous columns, each of these topics presents numerous challenges that must be urgently confronted. The primary message of this column is that the totality of all the interrelated challenges requires concerted efforts that transcend the individual problems and that reach agreement on viable actions for the future, even where strong disagreements exist today.

Recent Issues

  1. December 2024 CACM cover
    December 2024 Vol. 67 No. 12
  2. November 2024 CACM cover
    November 2024 Vol. 67 No. 11
  3. October 2024 CACM cover
    October 2024 Vol. 67 No. 10
  4. September 2024 CACM cover
    September 2024 Vol. 67 No. 9