Despite our best efforts, we seldom write a program that runs correctly the first time. In most cases, there is at least one mistake (bug) in the program that will cause it to crash or produce incorrect output. In these course notes, you will learn techniques that will help you:

The notes are divided into the following sections: