Sign In

Communications of the ACM

Table of Contents


Site-based management: saving our schools


Process cost and value analysis

After years of pursuing fragments of a solution to the challenges of software engineering, including the development of methods, tools, and the like, the software engineering community has come to realize that over-emphasizing …

In school or out: technology, equity, and the future of our kids

In January, Newt Gingrich proposed a tax credit for the poorest Americans to purchase laptop computers, forgetting for the moment that the poorest Americans do not pay taxes and thus a credit does them no good. In this case,  …

Cognition and software development

Not long ago, programmers controlled computers by arranging wires on a control panel built into the side of a large floor-standing machine. Today palm-sized pointing devices are used to drag and drop visual images on machines …

Why looking isn't always seeing: readership skills and graphical programming

Many believe that visual programming techniques are quite close to developers. This article reports on some fascinating research focusing on understanding how textual and visual representations for software differ in effectiveness …

Discovering the way programmers think about new programming environments

An interesting usability study of a prototype development environment for the Dylan programming language is presented here. This study's purpose is to determine just how close the prototype is to developers. New approaches to …

Cognitive bias in software engineering

Developer's thought processes are a fundamental area of concern. Cognitive scientist have discovered that people's intiative inferences and probality judgments do not strictly conform to the laws of logic or mathematics, and  …

From programming environments to environments for designing

Though there have been advances in end-user programming, complex applications still need professional developers. This inspired look at the future of creating complex software explores the shift from programming environments  …

Sixteen questions about software reuse

Software reuse is the use of existing software knowledge or artifacts to build new software artifacts. Reuse is sometimes confused with porting. The two are distinguished as follows: Reuse is using an asset in different systems …

Auction allocation of computing resources

Standard methods for allocating computing resources normally employ schedulers and either queue or priority schemes. Alternative methods utilizing marketlike processes are being investigated, with direct applicability to evolving …

Comparing data modeling formalisms

Accurate specification and validation of information requirements is critical to the development of organizational information systems. Semantic data models were developed to provide a precise and unambiguous representation of …

The first-course conundrum

Recently, the College Entrance Examination Board (CEEB) has decided to redesign the Advanced Placement (AP) examination in computer science (CS) so that AP courses will be forced to switch from Pascal to C++ starting around 1998 …

The first-course conundrum, why change?


Computer vulnerabilities: exploitation or avoidance

The online Risks Forum has long been a hotbed for discussions of the relative merits of openness relating to the dissemination of knowledge about security vulnerabilities. The debate has now been rekindled, and is summarized  …