Sign In

Communications of the ACM



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.

The Era of Hackers Is Over
From [email protected]

The Era of Hackers Is Over

The ability to hack algorithms and make data structures optimal was a virtue of programmers a few decades ago. The current reality is much different, with the ability...

End Anonymous Refereeing
From [email protected]

End Anonymous Refereeing

Who came up with this bizarre idea?

Examples of Phenomenology in Computing
From [email protected]

Examples of Phenomenology in Computing

The branch of philosophy known as phenomenology can broaden our understanding of what is really going on in the tasks we address with computing.

Time To End The vi/Emacs Debate
From [email protected]

Time To End The vi/Emacs Debate

If you still use Emacs, I feel for you. Perhaps it is time to give vi a try.

Mainstream Enough For Me
From [email protected]

Mainstream Enough For Me

The worst possible choice of e-mail recipient.

Why Code Comments Still Matter
From [email protected]

Why Code Comments Still Matter

Some believe that commenting code is bad, but comments still matter in our programs.

Tech Ethics at Work
From [email protected]

Tech Ethics at Work

Ethics for Tech must address how professional issues play out in the workplace, in real life.

Beyond Folk Pedagogy
From [email protected]

Beyond Folk Pedagogy

On evidence-based teaching.

Empirical Answers to Important Software Engineering Questions (Part 1 of 2)
From [email protected]

Empirical Answers to Important Software Engineering Questions (Part 1 of 2)

Beyond the lamppost

The End of Software Engineering and the Last Methodologist
From [email protected]

The End of Software Engineering and the Last Methodologist

Let's all do deep learning now.

Learning Programming at Scale
From [email protected]

Learning Programming at Scale

I summarize my first three years of research as an assistant professor on studying and building tools to support people who are learning computer programming.
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account