CS 100 (Learn)CS 100 (Web)Module 00


Note: This content is for informational and background purposes only. You will not be tested on this content.

What is Computer Science?

In the welcome message, we said that the primary focus of CS 100 is not Computer Science.

However, that begs the question: "What exactly is Computer Science?"

If you were to put a dozen Computer Scientists in the same room, they probably wouldn't agree on a specific definition of Computer Science. So any definition I give you will be imperfect.

We might as well just see what Wikipedia says. At the time this module was made, Wikipedia said the following:

"Computer science is the study of processes that interact with data and that can be represented as data in the form of programs. It enables the use of algorithms to manipulate, store, and communicate digital information. A computer scientist studies the theory of computation and the practice of designing software systems."

Well, that was an impressive mouthful.

At it's heart it is about processes that interact with data.

But not all processes that interact with data is computer science. When you learned how to do simple arithmetic that was a process that interacted with data.

So it's also about "processes that interact with data that can be represented ... in the form of programs".

In other words, how do we formalize the process of interacting with data and break it down into a set of well defined instructions.

The second sentence is also pretty important. Computer Science is the use of algorithms to manipulate, store, and communicate digital information.

In this course we'll learn about digital information, but we won't spend a lot of time learning about algorithms.

You've probably heard this last term before: "algorithm".

An algorithm is simply the procedural description of how to solve a problem.

For example, a classic example of a straightforward algorithm is a recipe in a cookbook. If you want to make potato soup, you follow the procedural description of how to make potato soup.

That's a pretty simple algorithm, but algorithms get much more complicated. For example, Google Maps uses an algorithm to find the shortest route between two locations and Amazon uses an algorithm to recommed items for you to purchase.

Returning to our wikipedia description, the last sentence gets us pretty close to the way I want to characterize Computer Science. Instead defining CS, let's look at examples.

Computer Science can be loosely broken down into three core areas: theory, systems and applications. Even this division isn't perfect, as there are many CS topics that exist in the intersection of these areas, but it works pretty well.

The theory area is probably the most mysterious to people outside of CS.

Founded in mathematics, theoretical computer science is full of abstract concepts that almost transcend the computers we use every day.

It covers a wide variety of topics including:

Understanding theoretical computer science is too big a topic to cover in a short introduction.

The other two areas of Computer Science are systems and applications, and they are usually easier to grasp.

In the area of computer systems, it helps to understand what we mean by a system, which is one of those ubiquitous terms that are a bit hard to define, but we'll try:

A system is a combination of smaller parts interacting and working together as a whole.

So the area of computer systems includes:

The last area involves computer applications, and includes:

So this is probably a good way to describe Computer Science, by looking at lots of examples.

One final question people often ask is: Is Computer Science a "real" Science, or is it more like "Political Science" and some of those other "soft" sciences.

Well, my first reaction is: "dude... why are you trying to label us?"

To be clear, Computer Science is not one of the natural sciences that studies existing natural phenomena that are observable in the universe.

Computer Science exists at the the intersection of Mathematics and Applied Science. It deals with both the theoretical world of Mathematics and the practical development of new technologies as in the Applied Sciences.

In the end, it's a pretty cool place to hang out.