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. Though debugging is very case-specific, there are some principles.