Sign In

Communications of the ACM

Table of Contents


From the New ACM President

During my presidency I will work to develop new initiatives to ensure that ACM provides ever-greater value to the global computing community.

Star Struck in Lindau

Since 1951, there has been an annual meeting of Nobel laureates. It was decided last year to have a Nobel laureate address the participants of the Heidelberg Laureate Forum (HLF) and to have an HLF laureate address the participants …
DEPARTMENT: Letters to the Editor

Future Cyberdefenses Will Defeat Cyberattacks on PCs

Highly classified information on personal computers in the U.S. today is largely protected from the attacks Daniel Genkin et al. described in their article "Physical Key Extraction Attacks on PCs" (June 2016).
DEPARTMENT: BLOG@CACM

Inside the Great Wall

During a trip to China, Jason Hong watches for signs of new technologies.
COLUMN: News

Reinforcement Renaissance

The power of deep neural networks has sparked renewed interest in reinforcement learning, with applications to games, robotics, and beyond.

Open Source Software No Longer Optional

Open development and sharing of software gained widespread acceptance 15 years ago, and the practice is accelerating.

Smartphone Apps for Social Good

Mobile apps make it easier, faster, and cheaper to create massive impact on social causes ranging from world hunger to domestic violence.
COLUMN: Privacy and security

Computer Security Is Broken: Can Better Hardware Help Fix It?

Computer security problems have far exceeded the limits of the human brain. What can we do about it?
COLUMN: Education

From Computational Thinking to Computational Participation in K-12 Education

Seeking to reframe computational thinking as computational participation.
COLUMN: Kode Vicious

Chilling the Messenger

Keeping ego out of software-design review.
COLUMN: Viewpoint

Teamwork in Computing Research

Considering the benefits and downsides of collaborative research.
SECTION: Practice

Debugging Distributed Systems

ShiViz is a new distributed system debugging visualization tool.

The Singular Success of SQL

SQL has a brilliant future as a major figure in the pantheon of data representations.

The Hidden Dividends of Microservices

Microservices aren't for every company, and the journey isn't easy.
SECTION: Contributed articles

Smart Cities: Concepts, Architectures, Research Opportunities

The aim is to improve cities' management of natural and municipal resources and in turn the quality of life of their citizens.

Adaptive Computation: The Multidisciplinary Legacy of John H. Holland

John H. Holland's general theories of adaptive processes apply across biological, cognitive, social, and computational systems.

Skills for Success at Different Stages of an IT Professional's Career

The skills and knowledge that earn promotions are not always enough to ensure success in the new position.
SECTION: Review articles

Computational Biology in the 21st Century: Scaling with Compressive Algorithms

Algorithmic advances take advantage of the structure of massive biological data landscape.
SECTION: Research highlights

Technical Perspective: Toward Reliable Programming for Unreliable Hardware

"Verifying Quantitative Reliability for Programs that Execute on Unreliable Hardware" by Carbin et al. addresses challenges related to a bug, how likely it is to occur, and how it will affect an application's behavior.

Verifying Quantitative Reliability for Programs that Execute on Unreliable Hardware

We present Rely, a programming language that enables developers to reason about the quantitative reliability of an application — namely, the probability that it produces the correct result when executed on unreliable hardware …

Technical Perspective: Why Didn't I Think of That?

Until now, the database in a Web application has been treated as a global variable, accessible to all. In "Ur/Web: A Simple Model for Programming the Web," Adam Chlipala suggests a better approach.

Ur/Web: A Simple Model for Programming the Web

This paper presents Ur/Web, a domain-specific, statically typed functional programming language that reduces the nest of Web standards for modern Web applications to a simple programming model.
COLUMN: Last byte

Future Tense: Gut Feelings

Even a little genetic engineering can render us too comfortable for our own good.