Sign In

Communications of the ACM

Table of Contents

Raising ACM's Digital Library

While the ability to find and access information remains a critical goal of the ACM Digital Library, it will move to a space in which interaction becomes a possibility. The space will contain people, datasets, software, simulations …
DEPARTMENT: Letters to the Editor

Make Abstracts Communicate Results

ACM should make its publications communicate more effectively by insisting abstracts include a summary of results and key concepts, communicating important information even when readers skip or skim the rest.

'As We May Think'

Despite the wonders of the human brain, it does not appear to have a convenient way to grow processing capacity while we can achieve that objective with our artificial computers by adding memory or adding processors.

Advice on Teaching CS, and the Learnability of Programming Languages

Valerie Barr considers how attitude can impact teacher effectiveness, while Mark Guzdial suggests the ultimate focus in teaching programming languages should be on usability.

Automating Organic Synthesis

A machine that could create organic molecules on demand awaits appropriate software and analytical components.

Car Talk

Vehicle-to-vehicle communication is coming. Are we ready for it?

Python For Beginners

A survey found the language in use in introductory programming classes in the top U.S. computer science schools.
COLUMN: Legally speaking

Copyrightability of Java APIs Revisited

A recent case challenges the long-standing view that application program interfaces are not protectable under copyright law.
COLUMN: Broadening participation

Reaching a Broader Population of Students Through 'Unplugged' Activities

Introducing children to fundamental computing concepts through Computer Science Unplugged.
COLUMN: The profession of IT

A Technician Shortage

In our elation about rising CS enrollments, we are overlooking a growing shortage of computing technicians. Our education system is not responding to this need.
COLUMN: Computing ethics

Humans in Computing: Growing Responsibilities For Researchers

Considering the role of institutional review boards in computing research.
COLUMN: Viewpoint

The Real Software Crisis: Repeatability as a Core Value

Sharing experiences running artifact evaluation committees for five major conferences.

Why Did Computer Science Make a Hero Out of Turing?

Comparing the legacy of Alan Turing in computer science with that of Carl Friedrich Gauss in mathematics.
SECTION: Practice

HTTP/2.0: The IETF Is Phoning It In

Bad protocol, bad politics.

Meta II: Digital Vellum in the Digital Scriptorium

Revisiting Schorre's 1962 compiler-compiler.
SECTION: Contributed articles

Who Owns IT?

What was once centralized or federated technology governance is increasingly participatory.

Designing Statistical Privacy For Your Data

Preparing data for public release requires significant attention to fundamental principles of privacy.
SECTION: Review articles

Privacy Implications of Health Information Seeking on the Web

A revealing picture of how personal health information searches become the property of private corporations.
SECTION: Research highlights

Technical Perspective: Image Processing Goes Back to Basics

In "Local Laplacian Filters," Paris et al. made a surprising move. They chose to build a system on the Laplacian pyramid, which is a very simple multiscale representation that predates wavelets.

Local Laplacian Filters: Edge-Aware Image Processing with a Laplacian Pyramid

In this paper, we demonstrate that state-of-the-art edge-aware filters can be achieved with standard Laplacian pyramids.
COLUMN: Last byte: Object Lessons

Q&A: Object Lessons

The creator of the Eiffel programming language discusses his career in industry and academia, "Design by Contract," and his views on Agile software development.