Essentially, "computer science" is a myopic name for what is really "process studies." It just so happens that defining processes to run on computers is forwarding the field more than any other. But in the distant future we will all understand the field to be about abstractly defining processes i.e. a series of repeatable steps to accomplish a task. Which would be independent of the mechanism used to execute the process.
Therefore programming is the act of defining a process. And programming languages are what we use to define them.
It is covered fairly intuitively in the first few minutes of the SICP video lectures as well:
Essentially, "computer science" is a myopic name for what is really "process studies."
Actually the name isn't myopic at all. Computers are basically entities that follow instructions. There was a time when the definition for the word computer was a person who did computation processes.
>in the distant future we will all understand the field to be about abstractly defining processes i.e. a series of repeatable steps to accomplish a task.
That's how CS started. Long before we had anything recognizable as computers, we had the likes of Turing providing formal mathematical formulations of abstractions that would be realized later.
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-9.html#...
Essentially, "computer science" is a myopic name for what is really "process studies." It just so happens that defining processes to run on computers is forwarding the field more than any other. But in the distant future we will all understand the field to be about abstractly defining processes i.e. a series of repeatable steps to accomplish a task. Which would be independent of the mechanism used to execute the process.
Therefore programming is the act of defining a process. And programming languages are what we use to define them.
It is covered fairly intuitively in the first few minutes of the SICP video lectures as well:
http://video.google.com/videoplay?docid=5546836985338782440