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: