When Trouble Comes:
The Basics of Debugging
No one is capable of writing a flawless program of
more than several lines on the first try.  Therefore,
algorithm design, programming and any other logical
activity will require debugging or trouble shooting.