Collaborative computing: collaboration first, computing second
Computing Profession
These articles on Collaborative Computing will seem out of place to a number of readers from the computer science community. Interesting articles perhaps, but what do they have to do with computers? Where is the science—that is, where is the mathematics, or the code? What have these issues to do with everyday practice?
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.
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.
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].
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.
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.
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.
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.
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.
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.
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.
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?”
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 InvolvedCommunications 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