Bar camps are awesome! They create an atmosphere where learning and sharing ideas is really, really fun! Two of the sessions I went to this year were about women in Computer Science (or, more accurately, lack of women in Computer Science). One of the big questions discussed was, “why are there so few women studying Computer Science?”
One of the most popular responses to this question had to deal with how Computer Science is marketed to students. When asking high school girls what they think Computer Science is, they tend to answer with either, ”I do not know,” or “it is something about video games.”
Both answers are understandable. After all, it is fairly obvious what people with degrees in Education or Pharmacy or Nursing do with their degrees. “Computer Science” as a term, however, can be rather ambigious. Am I doing experiments on computers? Am I going to be stuck in a lab forever, doing “science”?
The answer involving video games is equally understandable. How many video game lovers got into Computer Science because they wanted to create video games? As a second grader, I certainly wanted to do programming so that I could create games. Games are fun!
After having gone through both an undergraduate and graduate studies in Computer Science, I’d throw in a suggestion on how to define Computer Science:
Computer Science is both the art of figuring out how to solve a problem and the skill of telling a computer what steps it needs to take to follow the solution to the problem.
This definition requires some explanation. I’m sure you’re probably thinking, “what a wonderfully nonsensical definition, Dave. Could you be more ambiguous?”
First off, what “problems” are being solved by Computer Science? Any situation where you see that a computer being used is a problem that could be solved by having a degree in Computer Science. Of course, these are not the only problems that this discipline can be useful in solving. For instance, here is a problem:
Suppose that you are in a third-world country. In this country, they are wanting to create their first, nation-wide telephone network. For simplicity sake, say that there are four cities that need to be connected to this phone network. The costs between any two cities are not be the same. Below shows a picture of cities (the dots) and the cost to put a telephone line between two cities:
Your mission, should you choose to accept it, is to figure out how to connect all cities to the telephone network while minimizing the cost of the network.
After you figured it out, can you cook up a set of instructions to each a 7 year old to find the answer?
If so, then congratulations, you (probably) just recreated Prim’s Algorithm, which is taught in Computer Science undergrad courses.
Now, if you enjoyed wrestling with that problem you may really enjoy Computer Science. I promise that there are other, funner, problems to solve.:)