Computer science without math
There’s an ongoing debate about this article over on Slashdot right now. While I completely disagree with the author of the book that math shouldn’t be part of computer science, I do believe that a lot needs to be changed in traditional computer science education.
First off we need to look at the traditional definition of computer. Back in the day, the word computer referred to anything that performed computations, even a human. If I sat in a room and punched numbers into a calculator to perform computations, I was a computer. We then created mechanical computers that could perform those same calculations even faster than we could, and subsequently we created the electric computers that we all use today. But the basic word “computer” comes from something (or someone) that performs sequences of computations, and those sequences of computations are called algorithms. This is why when you major in computer science at a university, a good majority of the time is spent on analyzing algorithms and the math behind them.
So from a historical standpoint, I can understand why a degree in computer science is very math intensive. A pure computer scientist is only concerned with algorithms and how to compute them. However, computers have come a long way in the past several years and one could argue that even though there are underlying algorithms that power the programs we use, the majority of people do not use computers for computations anymore, but rather for communication. The computational aspect of computers has been abstracted for the most part.
For example, the average computer user only uses the computer to browse the Internet, instant message/e-mail friends, manipulate digital photos and listen to music. According to an NPR survey, 92% of Americans under 60 have used a computer, 75% have used the Internet, 67% have sent an e-mail and 68% use a computer at work. So while 20+ years ago the users of computers were mostly computer scientists performing calculations, today we’re in the minority of computer users. In my mind, this means that the field of computer science needs to be broadened beyond pure algorithmic study.
Due to the acceptance of computers and the Internet by the mainstream population, we now have a great deal of non-computational issues that should be discussed that deal with the communication, business, and legal aspects of computing. Things such as privacy, security, intellectual property and media distribution are things that are studied in grad school, but yet seem to have no means for discussion in the current undergraduate system. Should there not be discussion on what a computer scientist creates before they create it, and whether it should be created at all? A similar ethics question is typically posed to traditional scientists as well in regards to things such as the atomic bomb and cloning. Just because we can create it doesn’t necessarily mean we should, right?
I think that computers are becoming more than tools and are starting to actually shape society. People are using them for communication, personal connections, business and many other things. Even some people are proposing new job types such as Director of Metadata. Perhaps these things should fall under other fields of study such as communications, sociology and philosophy, but I find that those departments haven’t adopted studying these new technologies very quickly. What can we do to educate people about the new fields of study in relation to computer science?