3.1. Introduction to Debugging

“The art of debugging is figuring out what you really told your program to do rather than what you thought you told it to do.”  — Andrew Singer

This chapter will spend some time talking about what happens when errors occur as well as how to fix the errors that you will inevitably come across.

Before computers became digital, debugging could mean looking for insects impeding the functioning of physical relays as in this somewhat apocryphal tale about Admiral Grace Hopper, a pioneer of computer programming.

Nowadays, debugging doesn’t involve bug guts all over your computer but it can still be just as frustrating. To cope with this frustration, this chapter[f] will present some strategies to help you understand why the program you wrote does not behave as intended.

Many people think debugging is some kind of punishment for not being smart enough to write code correctly the first time. But nobody does that, failure in programming is part of the deal. Here’s a fun video to keep in mind as you learn to program.

CC BY–NC–ND 4.0 International Ted.com

3.1.1. Learning Goals

  • To understand good programming strategies to avoid errors
  • To understand common kinds of exceptions and their likely causes

3.1.2. Objectives

  • Given a piece of code identify the Syntax errors based on error messages
  • Given a piece of code find the (ValueError, TypeError, SyntaxError, ParseError, NameError)
Next Section - 3.2. 👩‍💻 Programming in the Real World