acm-header
Sign In

Communications of the ACM

BLOG@CACM


bg-corner

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.

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.

­Using Independent Technical Reviews to Ensure Project Success
From BLOG@CACM

­Using Independent Technical Reviews to Ensure Project Success

By using independent technical reviews, management can have a third party audit software and ensure the dev team stays on track.

Why is Privacy So Hard?
From BLOG@CACM

Why is Privacy So Hard?

Why is privacy so hard? Why is it, after so much negative press about it, are we still being constantly tracked on the web and on our smartphones? Why is it, after...

What Is a Variable?
From BLOG@CACM

What Is a Variable?

A stab at a definition, for outsiders, of what we in computing mean by the term "variable" raises more questions than it answers.

The Formal Picnic Approach to Requirements
From BLOG@CACM

The Formal Picnic Approach to Requirements

A mathematical excursion will improve your requirements.

Scalable Intelligent Systems by 2025
From BLOG@CACM

Scalable Intelligent Systems by 2025

People are fundamental to a Scalable Intelligent System; there is no computer-only solution that can implement such a system.

How Did People Write Machine Learning Code in the Past?
From BLOG@CACM

How Did People Write Machine Learning Code in the Past?

Summarizes popular programming languages and libraries that have been used for machine learning throughout the past two decades.

Discovering Bugs, or Ensuring Success?
From Communications of the ACM

Discovering Bugs, or Ensuring Success?

Finding errors is not the same as making certain a software product works correctly.

Blame-Free Quality Control
From BLOG@CACM

Blame-Free Quality Control

How liable should programmers be for the quality of their software?

Discussing Empirical Answers to Questions of Software Engineering
From BLOG@CACM

Discussing Empirical Answers to Questions of Software Engineering

Focusing on what helps software developers.

A Software Architect Is the Person You Blame
From BLOG@CACM

A Software Architect Is the Person You Blame

How efficient is your current software project, and could it potentially benefit from the addition of a software architect?
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account