Sign In

Communications of the ACM

Table of Contents

Giving Students the Competitive Edge

The annual ACM International Collegiate Programming Contest (ICPC) shines the spotlight on the next generation of problem solvers during their university years. Allow me to recap the highlights of the 36th Annual ACM-ICPC World …
DEPARTMENT: Letters to the Editor

Composable Trees For Configurable Behavior

I concur wholeheartedly with the composability benefits outlined in "Why LINQ Matters: Cloud Composability Guaranteed" (Apr. 2012) due to my experience using composability principles to design and implement the message-dissemination …

Machine Learning and Algorithms; Agile Development

John Langford poses questions about the direction of research for machine learning and algorithms. Ruben Ortega shares lessons about agile development practices like Scrum.

Cosmic Simulations

With the help of supercomputers, scientists are now able to create models of large-scale astronomical events.

DARPA Shredder Challenge Solved

The eight-person winning team used original computer algorithms to narrow the search space and then relied on human observation to move the pieces into their final positions.

Advertising Gets Personal

Online behavioral advertising and sophisticated data aggregation have changed the face of advertising and put privacy in the crosshairs.

Broader Horizons

ACM's Committee for Women in Computing (ACM-W) is widening its reach to involve women in industry as well as academia, including community college faculty and students.
COLUMN: Emerging markets

Inside the Hermit Kingdom: IT and Outsourcing in North Korea

North Korea has a sizeable IT sector. Some 10,000 professionals work in the field, and many more have IT degrees. They are already engaged in outsourcing contracts for other countries, and are keen to expand further.
COLUMN: Education

Will Massive Open Online Courses Change How We Teach?

Sharing recent experiences with the massive open artificial intelligence course developed and conducted by Stanford faculty Sebastian Thrun and Peter Norvig.  
COLUMN: Privacy and security

The Politics of 'Real Names'

Power, context, and control in networked publics.
COLUMN: Kode Vicious

A System Is Not a Product

Stopping to smell the code before wasting time reentering configuration data.
COLUMN: Economic and business dimensions

The Internet Is Everywhere, but the Payoff Is Not

Examining the uneven patterns of Internet economics.
COLUMN: Viewpoint

Internet Elections: Unsafe in Any Home?

Experiences with electronic voting suggest elections should not be conducted via the Internet.

The Ethics of Software Engineering Should Be an Ethics For the Client

Viewing software engineering as a communicative art in which client engagement is essential.
SECTION: Practice

Openflow: A Radical New Idea in Networking

An open standard that enables software-defined networking.

Extending the Semantics of Scheduling Priorities

Increasing parallelism demands new paradigms.

Multitier Programming in Hop

A first step toward programming 21st-century applications.
SECTION: Contributed articles

The Loss of Location Privacy in the Cellular Age

How to have the best of location-based services while avoiding the growing threat to personal privacy.

To Be or Not To Be Cited in Computer Science

Traditional bias toward journals in citation databases diminishes the perceived value of conference papers and their authors.

Process Mining

Using real event data to X-ray business processes helps ensure conformance between design and reality.
SECTION: Review articles

Quantum Money

Imagine money you can carry and spend without a trace.
SECTION: Research highlights

Technical Perspective: Example-Driven Program Synthesis For End-User Programming

As information technology has come to permeate our society, broader classes of users have developed the need for more sophisticated data manipulation and processing. The following paper focuses on an important emerging area …

Spreadsheet Data Manipulation Using Examples

Millions of computer end users need to perform tasks over large spreadsheet data, yet lack the programming knowledge to do such tasks automatically. We present a methodology that allows end users to automate such repetitive tasks …

Technical Perspective: Proving Programs Continuous

Proving a program's correctness is usually an all-or-nothing game.

Continuity and Robustness of Programs

Computer scientists have long believed that software is different from physical systems in one fundamental way: while the latter have continuous dynamics, the former do not. In this paper, we argue that notions of continuity …
COLUMN: Last byte

Puzzled: Find the Magic Set

Welcome to three new puzzles. Each involves a collection of items, and your job is to find a subset of them that is characterized by a particular property.