13.1
The Art of Program Design
My emphasis on the art of program design has
determined the way in which the programs were presented.
They've generally progressed from a discussion of problems and
ideas, to pseudocode, to small groups of small, cooperating
subroutines, and finally to a close-up discussion of the code. At
several points you've seen more than one way to do the same
task. This is an important part of a programmer's mindset: the
knowledge of, and willingness to try, alternatives.
The other recurrent theme has been to explain the
problem-solving strategies programmers rely on.
These include knowing how to use such sources of information as
searchable newsgroup archives, books, and language documentation;
having a good working knowledge of debugging tools; and understanding
basic algorithm and data structure design and analysis.
As your skills improve, and your programs become more complex,
you'll find that these strategies take on a much more important
role. Designing and coding programs to solve complex problems or
crunch lots of complex data requires advanced problem-solving
strategies. So it's worth your while to learn to think like a
computer scientist as well as a biologist.