debugging certain is a pain.. but if you have a good design/algorithm/pseudo code, you pretty much reduce to the debug to typo, that's the idea situation, reality isn't like that, I know, but a good design will reduce the amount of debugging significantly.