Next: Language and design recipes Up: Subject Matter Previous: ``Good'' Programs

Kinds of Knowledge

A first programming course is in some sense an almost impossible task. In one semester, you'll be asked to learn several different kinds of knowledge:
  1. How to use the computers and the software on them
  2. The grammar, punctuation, and vocabulary of a programming language
  3. How to analyze a problem and design a program to solve it, so that the program is both correct and easy to write, read, modify, and repair
  4. How to plan your time, and what sequence of steps to go through, in designing, writing, testing and debugging a program
  5. Application-specific knowledge (e.g. to write a program that draws geometric shapes on the screen, you have to know something about geometry.)
It is easy for a student (or a professor or a textbook author, for that matter) to get caught up in the details of the first two at the expense of the rest. I urge you not to fall into this trap, because the specific kinds of computers and software, and to some extent the language, you learn this semester will almost certainly be obsolete by the time you leave Adelphi. The much more interesting and lasting knowledge is at levels 3, 4, and 5 (and I'll try to minimize the time we spend on level 5 because it's not specific to computer science). In short, although all five kinds of knowledge are necessary in order to write a good program, I'll try to concentrate on levels 3 and 4.


Next: Language and design recipes Up: Subject Matter Previous: ``Good'' Programs
2002-01-24