As many much smarter than I have said first, Computer Science is a very inadequate term for the concept it describes. Firstly, it is not a science: it is a little of engineering, math, and even art. Secondly, it may or may not have to do with computers. Computer science is the structured expression of declarative knowledge. It is a form of putting into existence things we know to be true. It is a declaration of logic that, with mathematical certainty, is formulated to create logical solutions working with any amount of data. Computers programming are a tools of computer science, as a ruler and protractor are tools of geometry. Programming is defined in Princeton University as
1.setting an order and time for planned events [syn: scheduling]
2.creating a sequence of instructions to enable the computer to do something [syn: computer programming] (1)
There is very little scientific reason about that definition, and following it, programming can very well be done on a piece of paper as well as a computer.
To explain different computer science concepts, I will talk about different programming techniques. Roughly speaking, I distinguish programming between the following stages (programming is best learned going down this list I think):
Unstructured programming creates small programs made up completely of a "main program" which contains a sequence of commands (or statements) which modify data that is shared with everyone (it is global) throughout the whole program (see fig.1). Programming in the TI-83, TI-86, and some BASIC languages limits you to this kind of programming. It is very limited and unorganized.
This programming technique provides extreme disadvantages once the program grows to be sufficiently complex. For example, if the same statement sequence is needed at different parts of the...