Sign In

Communications of the ACM

Table of Contents


Moore's Law and the Sand-Heap Paradox

Many of us have lived with Moore's Law for all of our professional lives. We knew that it cannot continue forever, but the end always seemed to be beyond the horizon. No more. We are witnessing the denouement of an extraordinary …
DEPARTMENT: From the president

Sometimes It Takes Some Time!

Too often one gets the impression of tacit expectation that scientific research has to produce results within some predictable time. But many examples illustrate that it may take some time to validate the results of theoretical …
DEPARTMENT: Letters to the Editor

Know Your Steganographic Enemy

"Trends in Steganography" (Mar. 2014) included a good survey of the history of data hiding and a comprehensive list of methods for inserting bits into cover objects but omitted an important actor from the scene — the enemy …

ACM's 2014 General Election: please take this opportunity to vote

Meet the candidates who introduce their plans — and stands — for the Association.
DEPARTMENT: BLOG@CACM

Rethinking How to Teach Programming to Newcomers

Judy Robertson reviews what happened when she decided to introduce Android development into the curriculum for first-year computer science students.
COLUMN: News

How Computers Are Changing Biology

Sophisticated computer models and simulations are replacing test tubes and beakers. This revolution in biology research is redefining medicine, agriculture, and more.

The Forever Disc

Can our digital data represent us a million years from now?

Technology Confounds the Courts

Despite the need to make decisions relevant to technologies, the U.S. Supreme Court is not the most techno-savvy group.
COLUMN: Economic and business dimensions

Why Bitcoin Has Value

Evaluating the evolving controversial digital currency.
COLUMN: Law and technology

What Happened to Video Game Piracy?

How video games thrive in a world of piracy.
COLUMN: Historical reflections

Tom Kilburn: A Tale of Five Computers

Reflections on a British computer engineer who influenced several important machines, including the first stored-program computer.
COLUMN: Education

Building a Virtual Community of Practice for K-12 CS Teachers

Bringing educators together and focusing their interests toward improving computer science education in high schools.
COLUMN: Viewpoint

Robots Are Coming

Considering the societal implications of the robotics revolution.
SECTION: Practice

The NSA and Snowden: Securing the All-Seeing Eye

How good security at the NSA could have stopped him.

A Primer on Provenance

Better understanding data requires tracking its history and context.

Don't Settle for Eventual Consistency

Stronger properties for low-latency geo-replicated storage.
SECTION: Contributed articles

Cloud Security: A Gathering Storm

Users' trust in cloud systems is undermined by the lack of transparency in existing security policies.

Reducing the Software Value Gap

How to cope with the growing demand for software solutions at no extra cost.

The Community Source Approach to Software Development and the Kuali Experience

Participating educational institutions get a much more cost-effective result compared to the commercial off-the-shelf alternative.
SECTION: Review articles

Understanding the Empirical Hardness of NP-Complete Problems

Using machine learning to predict algorithm runtime.
SECTION: Research highlights

Technical Perspective: The Interplay of Neuroscience and Cryptography

An ideal scheme for password storage would enable a password with more than 20 bits of randomness to be input and output from the brain of a human being who is unconscious of the process and thus unable to give away or reveal …

Neuroscience Meets Cryptography: Crypto Primitives Secure Against Rubber Hose Attacks

We present a defense against coercion attacks using the concept of implicit learning from cognitive psychology. We use a carefully crafted computer game to allow a user to implicitly learn a secret password without them having …
COLUMN: Last byte

Puzzled: A Sort, of Sorts

Sorting is one of the most fundamental, and most studied, computational tasks. The problem is typically to put n items in order. The objective is to minimize time, space, number of comparisons, or number of rounds of comparisons …