Advertisement

Research and Advances

Designing for cooperation: cooperating in design

This article will discuss how to design computer applications that enhance the quality of work and products, and will relate the discussion to current themes in the field of Computer-Supported Cooperative Work (CSCW). Cooperation is a key element of computer use and work practice, yet here a specific “CSCW approach is not taken.” Instead the focus is cooperation as an important aspect of work that should be integrated into most computer support efforts in order to develop successful computer support, however, other aspects such as power, conflict and control must also be considered.
Opinion

Computing in a less-developed country

Almost all of the nations of Latin America are so-called less-developed countries (LDCs). But unlike many such countries elsewhere, quite a few have recently attempted to install more democratic, or at least less authoritarian, governments that are permitting greater freedom of expression and information and encouraging market-oriented economic developments. The latter include decreasing protectionism and moves toward the privatization of state enterprises such as telecommunications companies. Given the land area, natural resources, and populations involved, these developments are potentially of enormous international importance. The information technologies (IT) could be used to accelerate and reinforce these political and economic changes.
Opinion

The human element

In past issues we have discussed various system-related disasters and their causes, both accidental and intentional. In almost all cases it is possible to allocate to people—directly or indirectly—those difficulties allegedly attributed to “computer problems.” But too much effort seems directed at placing blame and identifying scapegoats, and not enough on learning from experiences and avoiding such problems [1,2,5,6,7]. Besides, the real causes may implicitly or explicitly involve a multiplicity of developers, customers, users, operators, administrators, others involve with computer and communication systems, and sometimes even unsuspecting bystanders. In a few cases the physical environment also contributes, e.g., power outages, floods, extreme weather, lightning, and earthquakes. Even in those cases there may have been system people who failed to anticipate the possible effects. In principle, at least, we can design redundantly distributed systems that are able to withstand certain hardware faults, component unavailabilities, extreme delays, human errors, malicious misuse, and even “acts of God”—at least within limits. Nevertheless, in surprisingly many systems (including systems designed to provide continuous availability), an entire system can be brought to a screeching halt by a simple event just as by a complex one [4].
Opinion

Supercomputing policy links science and the “C” word

Competition, a concept nary whispered in pure science circles, might just have been the catalyst that finally drove the High Performance Computing and Communication (HPCC) policy over the Hill. It has taken many years, and countless government studies, to help legislators even comprehend and appreciate the potential of high-performance computing technology in the U.S. But toss in the competitive angle, and the story needs little translation.
Opinion

Technical correspondence

I read with interest Peter Pearson's article, “Fast Hashing of Variable-Length Text Strings” (June 1990, pp. 677-680). In it he defines a hash function, given a text C1 … CN, by Exclusive OR'ing the bytes and modifying each intermediate result through a table of 256 randomish bytes.
Research and Advances

CAPS: a coding aid for PASM

Programming parallel machines is very difficult. First, generating an algorithm requires the programmer to assimilate the interactions of multiple threads of control. Second, synchronization and communication among the threads must be addressed to avoid contention and deadlock. Then, once the program is executing on the parallel system and does not function correctly or performs poorly, the debugging of multiple threads is a complicated problem [21]. Additionally, debugging software is an activity that requires systematic attention to detail. Success is a function of the experienced individual involved and the tools employed. The ability to efficiently debug software requires the wisdom to know what questions to ask, the ability to analyze the answers received, and the knowledge to formulate the best next question. To aid in this interactive process, the programmer needs information about the run-time behavior of the program.
Research and Advances

The 21st ACM North American computer chess championship

After twenty years of traveling from city to city across the United States, the ACM North American Computer Chess Championship came back to the place of its birth, the New York Hilton Hotel, where the competitions began in 1970. This latest five-round event ended in a two-way tie for first place between MEPHISTO and DEEP THOUGHT/88. Finishing in a two-way tie for third place were HITECH and M CHESS. A total of 10 teams participated, and the level of play was at the low grandmaster level. A special three-round end-game championship was won by MEPHISTO, who also captured the prize for the best Small Computing System. A total of $8000 in prizes was divided up among the winners.
Research and Advances

Massively distributed computing and factoring large integers

Over the last 15 years the increased availability of computers and the introduction of the RSA cryptosystem has led to a number of new and remarkable algorithms for finding the prime factors of large integers. Factoring numbers is an arithmetic problem so simple to understand that school children are asked to do it. While multiplying or adding two very large numbers is simple and can be done quite quickly, the age-old problem of trying to find a number that divides another number still has no simple solution. Computer science has reached a point where it is starting to custom tailor the design of computers toward solving specific problems. This pracnique will discuss some of the more recent algorithms for factoring large numbers and how networks of computers can be used to run these algorithms quickly. Since this is a general exposition, we do not give detailed mathematical descriptions of the algorithms. We also allow ourselves to be somewhat casual with mathematical notation in places and hope that the mathematically sophisticated will forgive the looseness.
Research and Advances

Digital media and the law

Over the past two years, I have written seven “Legally Speaking” columns and one feature article for Communications about legal issues affecting computing professionals. These writings have covered an array of legal topics including: criminal and civil liability for hackers who breach computer security systems; first amendment issues arising in computing or electronic publishing markets; intellectual property issues, such as patent protection for computer program algorithms; copyright protection for look and feel of user interfaces; what the user interface design field thinks about such protection, and various theories by which a firm might claim to own interface specification information for software systems.
Research and Advances

An ACM response: the scope and directions of Computer Science

The National Research Council's Computer Science and Telecommunications Board (CSTB) chartered a two-year study on the scope and directions of computer science. As part of this study, ACM was asked to provide input on three important questions, the answers to which could have significant impact on the future direction of our discipline and profession.
Opinion

Could it have been predicted?

As everyone knows, the computer industry is passing through a period of great change. I was speaking recently to a senior executive in one of the large companies vigorously working to meet the developing situation. The question he posed was: “Could it have been predicted?”
Opinion

Technical correspondence

The column, “Benchmarks for LAN Performance Evaluation,” by Larry Press (Aug. 1988, pp. 1014-1017) presented a technique for quickly benchmarking the performance of LANs in an office environment. Our interest was peaked since office automation is growing in importance. As a result, an empirical analysis of the Press benchmark programs was conducted. The results indicated that these benchmarking programs were appropriate for the benchmarking of LANs in an office environment.

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More