Sign In

Communications of the ACM

Table of Contents

Boolean Satisfiability: Theory and Engineering

The Boolean Satisfiability Problem is a problem of central importance in computer science. At the same time, it is a paradigmatic constraint-satisfaction problem with numerous applications, including hardware and software …
DEPARTMENT: Letter from the President

What If It's Us?

If there are intelligent civilizations in our galaxy, why have we not yet detected any evidence of them? Noted science fiction writer David Brin has a particularly scary answer to the question. What if we are the ones who are …
DEPARTMENT: Letters to the Editor

Develop Research Culture in the Arab Middle East

The Arab Middle East needs a cultural revolution in terms of research, especially in computer science.

Capturing and Structuring Data Mined from the Web

Kate Matsudaira considers not only how to mine data from the Web, but what to do with it once you have it.

Reading Brains

The first steps have been taken toward enabling a computer to perceive one's thoughts.

World Without Wires

Capturing electricity from ambient RF transmissions can keep low-power applications off the grid.

Playing at Health

Developers try to tap the beneficial effects of video games.
COLUMN: Legally speaking

Mass Digitization as Fair Use

Considering the implications of the late-2013 ruling in favor of Google in the Authors Guild case.
COLUMN: Computing ethics

Why Software Engineering Courses Should Include Ethics Coverage

Encouraging students to become comfortable exercising ethical discernment in a professional context with their peers.
COLUMN: The profession of IT

'Surfing Toward the Future'

A new report from Chile about improving economic competitiveness advances a novel interpretation of innovation. Timing is everything.
COLUMN: Broadening participation

The Impact of the United Nations Convention on the Rights of Persons with Disabilities

Codifying human rights and inclusiveness in a technical context for people with disabilities.
COLUMN: Viewpoint

How to Build a Bad Research Center

Sharing lessons learned from experiences creating successful multidisciplinary research centers.
SECTION: Practice

Eventually Consistent: Not What You Were Expecting?

Methods of quantifying consistency (or lack thereof) in eventually consistent storage systems.

The API Performance Contract

How can the expected interactions between caller and implementation be guaranteed?

Scaling Existing Lock-Based Applications with Lock Elision

Enabling existing lock-based programs to achieve performance benefits of nonblocking synchronization.
SECTION: Contributed articles

Making Parallel Programs Reliable with Stable Multithreading

Stable multithreading dramatically simplifies the interleaving behaviors of parallel programs, offering new hope for making parallel programming easier.

Using Targeted Conferences to Recruit Women Into Computer Science

To inspire women to major in CS, take them to the Grace Hopper Celebration of Women in Computing.

Big-Data Applications in the Government Sector

In the same way businesses use big data to pursue profits, governments use it to promote the public good.
SECTION: Review articles

Trends in Steganography

Methods for embedding secret data are more sophisticated than their ancient predecessors, but the basic principles remain unchanged.
SECTION: Research highlights

Technical Perspective: Smartphone Security 'Taint' What It Used to Be

The TaintDroid project takes a runtime taint tracking approach toward analyzing Android apps.

TaintDroid: An Information Flow Tracking System For Real-Time Privacy Monitoring on Smartphones

Today's smartphone operating systems frequently fail to provide users with adequate control over and visibility into how third-party applications use their privacy-sensitive data. We address these shortcomings with TaintDroid …
COLUMN: Last byte

Puzzled: Solutions and Sources

Last month (February 2014) we posted three games in which you were asked to pick a positive integer. The question in each was: What is the highest number you should think about picking? Here, we offer solutions to all three.

Q&A: RISC and Reward

Having helped develop Reduced Instruction Set Computing and Redundant Arrays of Inexpensive Disks, David Patterson has set his sights on interdisciplinary research.