Sign In

Communications of the ACM

Table of Contents

Understanding ACM's Past

How do we gather stories about ACM's past before it's too late? The charter of the ACM History Committee is "to foster preservation and interpretation of the history of the ACM and its role in the development of computing."
DEPARTMENT: From the president

Computer Science Revisited

In a recent column, I questioned whether there was any "science" in computer science. This provoked a great many responses that provided some very valuable perspective. I have come away from this foray into computer 'science' …
DEPARTMENT: Letters to the Editor

Why Open Access?

Concerning the proposed Research Works Act, introduced in the U.S. Congress in 2011, Moshe Y. Vardi's "Editor's Letter" "Why ACM?" (Sept. 2012) left me a little confused as to Vardi's own position on both the law and open …

Levels of Abstraction; Pre-Teens and Career Choices

Mark Guzdial writes about the need for programming languages to support multimedia at all levels. Judy Robertson shares insights about 12-year-old students' lack of understanding about computer science.

Quantum Quests

Three breakthrough experiments involving photons have extended coherence times and indicated scalable production.

Zoom In, Zoom Out

Drilling down to more detail on a computer screen, or moving out to see the context, is basic. But it's hardly simple and, after 20 years, innovations are still occurring.

In the Year of Disruptive Education

As college tuitions soar, various online models vie to educate college students worldwide — at no cost.
COLUMN: Emerging markets

IT Innovation For the Bottom of the Pyramid

New ways to develop technologies for the emerging growth markets.
COLUMN: Historical reflections

Saving Private Gromit

Reflections on the legalities and economics of preserving animations and games in Europe.
COLUMN: Kode Vicious

Can More Code Mean Fewer Bugs?

The bytes you save today may bite you tomorrow.
COLUMN: The profession of IT


Recognizing and working with moods — your own, your team's, and your customers' — is essential to professional success.
COLUMN: Broadening participation

Why We Need an ACM Special Interest Group For Broadening Participation

A proposal for an international group focused on broadening participation.
COLUMN: Viewpoint

Alan Turing Remembered

A unique firsthand account of formative experiences with Alan Turing.
SECTION: Practice

The Essence of Software Engineering: The SEMAT Kernel

A thinking framework in the form of an actionable kernel.

Sender-Side Buffers and the Case For Multimedia Adaptation

A proposal to improve the performance and availability of streaming video and other time-sensitive media.

Anatomy of a Solid-State Drive

While the ubiquitous SSD shares many features with the hard-disk drive, under the surface they are completely different.
SECTION: Contributed articles

SPDYing Up the Web

Improved performance and a proven deployment strategy make SPDY a potential successor to HTTP.

Moving Beyond the Turing Test

Computers interacting with, not imitating, humans is the way forward.
SECTION: Review articles

Theory of Algorithmic Self-Assembly

The challenge of programming molecules to manipulate themselves.
SECTION: Research highlights

Technical Perspective: High-Level Data Structures

This lifting of data structure thinking to the relational level has long inspired computer scientists. In "An Introduction to Data Representation Synthesis," the authors aim at elevating data structure programming to the relational …

An Introduction to Data Representation Synthesis

We consider the problem of specifying combinations of data structures with complex sharing in a manner that is declarative and results in provably correct code.

Technical Perspective: Natural Algorithms in a Networked World

How do birds flock and fish school? How do individuals in a social network reach agreement, even though they are often only influenced by other like-minded individuals? How can one engineer a swarm of robots to behave like …

Natural Algorithms and Influence Systems

Algorithms lay the grounds for numerical simulations and, crucially, provide a powerful framework for their analysis. The new area of natural algorithms may reprise in the life sciences the role differential equations have long …
COLUMN: Last byte

Puzzled: Solutions and Sources

Last month (November 2012) we posted a trio of brainteasers concerning the use of a balance scale to determine the weight of various numbers of coins. Here, we offer solutions to all three. How did you do?

Q&A: As Good As It Gets

Sanjeev Arora talks about proof, intractability, and finding the best way to approximate problems.