Sign In

Communications of the ACM

Table of Contents

DEPARTMENT: Editor's letter

Sustaining Open Collaboration in Universities

Increasing international tension and distrust, and its projection into universities, is eroding open collaboration and inquiry.


Machine learning has taken over the computer science world as the tool of choice for a great many applications.
DEPARTMENT: Departments

The Long Game of Research

Research is a long game; patience and endurance are necessary components.
DEPARTMENT: Letters to the editor

On Being 'Random Enough'

The concept of randomness is easy to grasp on an intuitive level but challenging to characterize in rigorous mathematical terms.

Why Programmers Should Curb Their Enthusiasm, and Thinking About Computational Thinking

Yegor Bugayenko ponders the dangers of "hazardous enthusiasm," while Mark Guzdial considers whether the need to teach computational thinking can be "designed away."

An Inability to Reproduce

Big data and modern analytics offer enormous possibilities for research, provided scientists can produce consistent results.

Augmented Reality Gets Real

Formidable optical challenges are yielding to intensive research, development.

Can You Locate Your Location Data?

Smartphone apps offering location data services may be desirable, but their ability to collect personal data that can be sold to third parties is less attractive.
COLUMN: Law and technology

Internet Immunity and the Freedom to Code

A call to preserve the capability of developing the next generation of Internet services.
COLUMN: Privacy and security

Online Voting: We Can Do It! (We Have To)

Seeking to make online voting more secure than today's flawed paper systems.
COLUMN: The profession of IT

An Interview with Andrew Odlyzko on Cyber Security

Is a "Cyber Pearl Harbor" any greater a risk than a natural disaster? How shall we prioritize our preparations for a cyber disaster?
COLUMN: Viewpoint

Bitwise: A Life in Code

Data science as a paradox.
SECTION: Practice

Surviving Software Dependencies

Software reuse is finally here but comes with risks.

Velocity in Software Engineering

From tectonic plate to F-16.

DAML: The Contract Language of Distributed Ledgers

A discussion between Shaul Kfir and Camille Fournier.
SECTION: Contributed articles

Computational Sustainability: Computing for a Better World and a Sustainable Future

Computer and information scientists join forces with other fields to help solve societal and environmental challenges facing humanity, in pursuit of a sustainable future.

Alloy: A Language and Tool for Exploring Software Designs

Exploiting a simple, expressive logic based on relations to describe designs and automate their analysis.
SECTION: Review articles

EarSketch: Engaging Broad Populations in Computing Through Music

EarSketch leverages the appeal of music to create a learning environment that allows students to be expressive with code.

Metadata-Private Communication for the 99%

Sketching the underlying system needed to facilitate metadata-private communication for several applications with a large user base.
SECTION: Research highlights

Technical Perspective: From Virtual Worlds to Digital Fabrication

The authors of "OpenFab" propose to revisit the processing pipeline that turns a 3D model into machine instructions in light of the solutions developed in computer graphics.

OpenFab: A Programmable Pipeline for Multimaterial Fabrication

We present OpenFab, a programmable pipeline for synthesis of multimaterial 3D printed objects that is inspired by RenderMan and modern GPU pipelines.
COLUMN: Last byte

Inspired by the Home of the Future

2018 ACM Prize in Computing recipient Shwetak Patel pushes old tools to new heights.