Computer Science

Computer Science is a field of study that has something, but not a whole lot, to do with the things we know of as "computers."

Definitions

Let's see how Computer Science fits in...

Philosophy
The search for fundamental truths of the universe using logic (reasoning).
Mathematics
Reasoning on a formal basis (symbol manipulation).
Computer Science
The science of automating the reasoning process.

What is automation / programming / scripting?

Computational Procedure
A step-by-step process for solving a problem described by a finite number of steps, where the execution of each step takes a finite amount of time. Steps can be of the form "go to step number n" so the process need not terminate.
Algorithm
A computational procedure which terminates regardless of its input.
Program (or Script)
An expression of a computational procedure in some language.

What Computer Scientists Do

In case anyone asks you, computer scientists:

Subject Areas

For what it's worth, the ACM identified these 14 subject areas in Computer Science way back in 2001.

Exercise: Has anything changed? Can you think of recent trends in computing that might warrant another category?

More Subject Areas

Here's a more expanded list of things one can study within Computer Science.

Recurring Concepts

Computer scientists need to "get" the following concepts. Note that not many of these are specific to desktop or laptop or mainframe computers that have keyboards and monitors.

Kinds of Software Systems

The term software system is often used in place of the term "program" to emphasize the fact that most programs do not have a single set of inputs fed in at the beginning and a single set of outputs on termination. Instead many programs are built up from many relatively independent components and interact with users. Here's a rough list of (overlapping) software system categories:

Related Fields

Computer science borrows from, and touches, a whole lot of other fields, including