Sign In

Communications of the ACM

BLOG@CACM



The Software that Led to the Lockdown
From BLOG@CACM

The Software that Led to the Lockdown

One of the key drivers for the decision to lockdown the U.K. in late March 2020 was a computational epidemiological model developed at Imperial College, London....

The Rise of the Data Engineer
From BLOG@CACM

The Rise of the Data Engineer

The combination of AI and cloud infrastructure is changing the roles of certain engineers and creating a new requirement that demands an entirely new engineering...

Getting a Program Right (9) (last)
From BLOG@CACM

Getting a Program Right (9) (last)

A correct program is one that works in all cases.

Getting a Program Right (8)
From BLOG@CACM

Getting a Program Right (8)

The power of loop invariants.

Clean Code Isn't Enough; It Must Be Crystal Clear, Too
From BLOG@CACM

Clean Code Isn't Enough; It Must Be Crystal Clear, Too

Writing clean code is a great start, but for programmers who really want to master their craft, you have to go further. You need to write clear code that other...

Getting a Program Right (7)
From BLOG@CACM

Getting a Program Right (7)

Have you run a program proof before? Now is your chance!

Getting a Program Right (6)
From BLOG@CACM

Getting a Program Right (6)

Thanks for your patience.

Getting a Program Right (5)
From BLOG@CACM

Getting a Program Right (5)

Are we there yet?

Getting a Program Right (3)
From BLOG@CACM

Getting a Program Right (3)

Attempt #3 to write a binary search program.

Getting a Program Right (2)
From BLOG@CACM

Getting a Program Right (2)

Trying to fix a binary search attempt.

Getting a Program Right (1)
From BLOG@CACM

Getting a Program Right (1)

Why it is good to have a systematic approach to software verification.

There is More Than One Way to Become a Good Programmer
From BLOG@CACM

There is More Than One Way to Become a Good Programmer

A recent Communications of the ACM article casts aspersions on the innovative concept of code academy, a fast-developing approach to teaching programming. The analysis...

Talented Programmers Don't Tolerate Chaos
From BLOG@CACM

Talented Programmers Don't Tolerate Chaos

Talented programmers will strive to structure chaos and write perfect code.

Not So Good After All? Don't Let 'Altruism' Kill Your Company
From BLOG@CACM

Not So Good After All? Don't Let 'Altruism' Kill Your Company

Altruism is often heralded as a panacea for management challenges, but it could actually be a death sentence for your team and projects. Here's why. 

Are My Requirements Complete?
From BLOG@CACM

Are My Requirements Complete?

Knowing the notion of sufficient completeness and the theory of abstract data types helps practitioners produce better requirements.

The Shortest Possible Schedule Theorem: Yes, You Can Throw Money at Software Deadlines
From BLOG@CACM

The Shortest Possible Schedule Theorem: Yes, You Can Throw Money at Software Deadlines

As close as we have to a universal law of software engineering management.

Hazardous Enthusiasm and How Eagerness Can Kill A Project
From BLOG@CACM

Hazardous Enthusiasm and How Eagerness Can Kill A Project

Many otherwise competent software developers and potential contributors end up being overwhelmed by "hazardous enthusiasm." They end up overwhelmed by their excitement...

A Design Perspective on Computational Thinking
From BLOG@CACM

A Design Perspective on Computational Thinking

Maybe we can just design away the need to teach computational thinking

Soundness and Completeness: With Precision
From BLOG@CACM

Soundness and Completeness: With Precision

The two key properties of program analysis are dual of each other.

An Agile Approach to Learning Programming
From BLOG@CACM

An Agile Approach to Learning Programming

The Super Simple Programming Book is one example to teach programming in an Agile way. In general, Agile concepts can lead to highly effective learning.
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account