Sign In

Communications of the ACM

Table of Contents

DEPARTMENT: Letter from the Editors-in-Chief of CACM and JACM

What is a Flagship Publication?

Communications of the ACM has become known as the "flagship magazine of the ACM." While ACM has an impressive collection of other high-quality journals and magazines, the flagship is not leading the fleet!
DEPARTMENT: From the president

Computer Science Education – Revisited

ACM has been pursuing an initiative to make computer science acceptable as a core science along with mathematics, physics, biology, and chemistry.
DEPARTMENT: Letters to the Editor

Is Computing Science?

Peter J. Denning's "The Science in Computer Science" (May 2013) explored the ongoing dispute over scientific boundaries within computer science. However, the boundaries separating the sciences, and knowledge in general, have …

Teaching Programming the Way It Works Outside the Classroom

Philip Guo offers programmers 'Opportunistic Programming' tips that typically are not shared in school.

A New Approach to Information Storage

Disk drives and solid-state drives have long served as the foundation for computer storage, but breakthroughs in molecular and DNA science could revolutionize the field.

Patient, Heal Thyself

New handheld medical diagnostic tools promise more efficient, lower-cost healthcare — but at what price?

Software Aims to Ensure Fairness in Crowdsourcing Projects

The debate rages on about whether crowdsourcing is a win-win for workers, as well as for employers.
COLUMN: Emerging markets

Ultra-Low-Cost Computing and Developing Countries

Raspberry Pi and its potential in the "global South."
COLUMN: Economic and business dimensions

Money Models for MOOCs

Considering new business models for massive open online courses.
COLUMN: Privacy and security

The Air Gap: SCADA's Enduring Security Myth

Attempting to use isolation as a security strategy for critical systems is unrealistic in an increasingly connected world.
COLUMN: Kode vicious

Cherry-Picking and the Scientific Method

Software is supposed be a part of computer science, and science demands proof.
COLUMN: Education

Success in Introductory Programming: What Works?

How pair programming, peer instruction, and media computation have improved computer science education.
COLUMN: Viewpoint

Overt Censorship: A Fatal Mistake?

Censorship of information often has the opposite effect by drawing attention to the censored material.
SECTION: Practice

The Antifragile Organization

Embracing failure to improve resilience and maximize availability.

Best Practices on the Move: Building Web Apps for Mobile Devices

Which practices should be modified or avoided altogether by developers for the mobile Web?

Rules for Mobile Performance Optimization

An overview of techniques to speed page loading.
SECTION: Contributed articles

Are We Free to Code the Law?

We should be, for the sake of millions of people with pressing legal needs.

How Productivity and Impact Differ Across Computer Science Subareas

How to understand evaluation criteria for CS researchers.
SECTION: Review articles

Evolutionary Robotics

Taking a biologically inspired approach to the design of autonomous, adaptive machines.
SECTION: Research highlights

Technical Perspective: Every Graph Is Essentially Sparse

The following paper by Batson, Spielman, Srivastava, and Teng surveys one of the most important recent intellectual achievements of theoretical computer science, demonstrating that every weighted graph is close to a sparse …

Spectral Sparsification of Graphs: Theory and Algorithms

Graph sparsification is the approximation of an arbitrary graph by a sparse graph. We explain what it means for one graph to be a spectral approximation of another and review the development of algorithms for spectral sparsification …
COLUMN: Last byte

Puzzled: Wins in a Row

Each of these puzzles involves game-playing strategy. If you are sufficiently clever — and sufficiently unmotivated to work hard at being clever — you can solve them all without resorting to algebra.