Dynamics of Change: Why Reactivity Matters
Software Engineering and Programming Languages
Incremental, Iterative Data Processing with Timely Dataflow
Efficient Parallelization Using Rank Convergence in Dynamic Programming Algorithms
Why Data Citation Is a Computational Problem
Technical Perspective: Jupiter Rising
A New Look at the Semantic Web
Designing AI Systems that Obey Our Laws and Values
Bad Software Architecture Is a People Problem
Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google's Datacenter Network
14 Years of a Learner-Centered Python IDE
Skills For Success at Different Stages of an IT Professional’s Career
Smart Cities: Concepts, Architectures, Research Opportunities
Verifying Quantitative Reliability For Programs that Execute on Unreliable Hardware
Ur/Web: A Simple Model For Programming the Web
Technical Perspective: Toward Reliable Programming For Unreliable Hardware
Technical Perspective: Why Didn’t I Think of That?
The Hidden Dividends of Microservices
Shape the Future of Computing
ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.
Get InvolvedCommunications of the ACM (CACM) is now a fully Open Access publication.
By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.
Learn More


















