acm - an acm publication
Follow us on social media...

Peter J. Denning, Editor in ChiefThe digitally connected world has become a large, swirling sea of information stripped of context. We help our readers make sense of it, find meaning in it, learn what to trust, and speculate on our future.

Peter J. Denning,


Ubiquity Has Been Upgraded!

  • You can propose article ideas to our editors—see Make A Pitch.
  • We are seeking for high-quality, reader submitted video content.
  • The editorial board has been organized into topic areas.
  • We are beefing up the Next-Gen Panel. Volunteer!
  • Our blog is being phased out and will be replaced by opinion commentaries.



The changing culture of computer science: an interview with Marianne Winslett, part 2

November 2017
Interviewed by Richard T. Snodgrass

In this second interview with Marianne Winslett, our conversation mines the temporal and spatial aspects of the culture of CS research and development within academia, labs, and startups, delving into recent trends that are fundamentally changing our profession. ...

Communication Corner

How to say what you mean and mean what you say

October 2017
by Philip Yaffe

The fundamental building block of any good text is each individual word. The wrong word can completely change the meaning of the sentence. Here's how to construct truly effective sentences. ...


Art Scott and Michael Frank on energy-efficient computing

September 2017
Interviewed by Ted G. Lewis

Clock speeds of computing chips have leveled off dramatically since 2005, and putting more cores in systems on a chip (SoC) has produced more heat, adding a new ceiling to further advances. Mike Frank and Art Scott represent a new vanguard of this leap-forward. Is the future in reversible, adiabatic computing and simpler architectures using posit arithmetic? Keep reading to find out. ...


Computational design

August 2017
by Peter J. Denning

Computational thinking refers to a deliberative process that finds a computational solution for a concern. Computational doing refers to use of computation and computational tools to address concerns. Computational design refers to creating new computational tools and methods that are adopted by the members of a community to address their concerns. Unfortunately, the definitions of both "thinking" and "doing" are fuzzy and have allowed misconceptions about the nature of algorithms. ...