Edsger Dijkstra

Image Credit: Wikimedia Commons

The major cause of the software crisis is that the machines have become several orders of magnitude more powerful! ... [N]ow we have gigantic computers, programming has become an equally gigantic problem
-Edsger Dijkstra, The Humble Programmer (1972)

Image Credit: Computerworld

The Software Crisis (1968)

  • Over Budget
  • Over Time
  • Inefficient
  • Low Quality
  • Failed Requirements
  • Difficult to Maintain
  • Never Finished

Programming is Hard

Programming Well is Even Harder

Partial Solutions

  • New Programming Languages
  • Better Development Tools
  • Code Repository Tools
  • Code Style & Documentation Standards
  • Standardized Diagrams
  • Automated Testing
  • Standard Practices

A goal of this course is to instill some of these ideas and approaches into your programming practice.

By using these daily, you'll build good programming habits.

Solved? Maybe Not...

  • Denver Airport Baggage
  • Ariane 5 Explosion
  • German Toll Collect
  • Healthcare.gov
  • Meltdown & Spectre
  • Numerous bugs & vulnerabilities found every day