acm-header
Sign In

Communications of the ACM

BLOG@CACM


bg-corner

What Everyone Knows and What No One Knows
From BLOG@CACM

What Everyone Knows and What No One Knows

Who cares about logic?

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: Defined With Precision
From BLOG@CACM

Soundness and Completeness: Defined With Precision

The two key properties of program analysis are dual of each other.
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account