Sign In

Communications of the ACM



Are My Requirements Complete?
From [email protected]

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 [email protected]

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 [email protected]

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 [email protected]

A Design Perspective on Computational Thinking

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

Soundness and Completeness: With Precision
From [email protected]

Soundness and Completeness: With Precision

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

An Agile Approach to Learning Programming
From [email protected]

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 [email protected]

­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 [email protected]

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 [email protected]

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 [email protected]

The Formal Picnic Approach to Requirements

A mathematical excursion will improve your requirements.

Scalable Intelligent Systems by 2025
From [email protected]

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 [email protected]

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 [email protected]

Blame-Free Quality Control

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

Discussing Empirical Answers to Questions of Software Engineering
From [email protected]

Discussing Empirical Answers to Questions of Software Engineering

Focusing on what helps software developers.

A Software Architect Is the Person You Blame
From [email protected]

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?

The Goal of Software Testing
From [email protected]

The Goal of Software Testing

Finding errors is not the same strategy as making sure that a product works.

­Until the Craze Fades
From [email protected]

­Until the Craze Fades

Too much, perhaps, of a good thing?

Why Not Program Right?
From [email protected]

Why Not Program Right?

Not your grandmother's class invariant.

When Will  We Learn?
From [email protected]

When Will We Learn?

Massive software failure once again, with no lesson from past occurrences and no lesson for future systems.
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account