Sign In

Communications of the ACM

Table of Contents

Incentivizing Quality and Impact in Computing Research

Developing consensus on how the computing-research publication culture should be changed has proven to be exceedingly hard. The Computing Research Association has now addressed this issue head-on in its new Best Practice Memo …

Cascade Failure

Anyone with a collection of DVD or CD-ROM disks will appreciate that we cannot rely in the long term on specialized format devices being available. It is worth some effort to pay attention to the nature of these dependencies …
DEPARTMENT: Letters to the Editor

Abolish Software Warranty Disclaimers

Carl Landwehr was right to suggest in his Viewpoint "We Need a Building Code for Building Code" (Feb. 2015) that there should be a building code for software.

Introducing Young Women to CS, and Supporting Advanced Research Environments

Joel Adams talks about starting a chapter of Girls Who Code, while Daniel A. Reed considers an issue with cyberinfrastructure.

Is 'Good Enough' Computing Good Enough?

The energy-accuracy trade-off in approximate computing.

Putting the Data Science Into Journalism

News organizations increasingly use techniques like data mining, Web scraping, and data visualization to uncover information that would be impossible to identify and present manually.

Robots With a Human Touch

Empowering smart machines with tactile feedback could lead to tremendous new applications.
COLUMN: Economic and business dimensions

Life of IP

Seeking to balance intellectual property protection with incentives for investment in innovation.
COLUMN: Education

What Are We Doing When We Teach Computing in Schools?

Research on the cognitive, educational, and policy dimensions of teaching computing is critical to achieving "computer literacy."
COLUMN: Law and technology

Oracle v. Google: A High-Stakes Legal Fight For the Software Industry

Copyrighting APIs threatens significant harm to both consumers and the software industry.
COLUMN: Viewpoint

Teach Foundational Language Principles

Industry is ready and waiting for more graduates educated in the principles of programming languages.

Managing Your Digital Life

Everyone should be able to manage their personal data with a personal information management system.
SECTION: Practice

There Is No Now

Problems with simultaneity in distributed systems.

Parallel Processing with Promises

A simple method of writing a collaborative system.
SECTION: Contributed articles

Privacy Behaviors After Snowden

Despite continuing media coverage, the public's privacy behaviors have hardly changed.

Decoding Femininity in Computer Science in India

The benefits in school and the job market so far outweigh any potential gender bias that few women are deterred.
SECTION: Review articles

Optimization as Motion Selection Principle in Robot Action

Robots move to act. While actions operate in a physical space, motions begin in a motor control space. So how do robots express actions in terms of motions?
SECTION: Research highlights

Technical Perspective: Programming Multicore Computers

"Can Traditional Programming Bridge the Ninja Performance Gap for Parallel Computing Applications" advocates an appealing division of labor between a developer and a compiler to increase the opportunities for the compiler to …

Can Traditional Programming Bridge the Ninja Performance Gap For Parallel Computing Applications?

Current processor trends of integrating more cores with SIMD units have made it more to extract performance from applications. It is believed that traditional approaches to programming do not apply to these processors. We question …
COLUMN: Last byte

Upstart Puzzles: Strategic Friendship

Consider the following game (first posed to my close friend Dr. Ecco) played among several entities. Each entity Ei has a certain force Fi and a certain wealth Wi.