The Blog of Curtis Chambers

Computer science without math

with 5 comments

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?

About these ads

Written by Curtis Chambers

July 8, 2007 at 2:27 pm

Posted in Technology, Thoughts

5 Responses

Subscribe to comments with RSS.

  1. Brilliant article! I too, having read through computer science courses, believe that with the changing face of technology from a tool to almost an social centre needs to be reflected in our education. Perhaps an new subject- social computing?

    Peter White

    March 17, 2008 at 1:24 pm

  2. Yes, there are many new fields emerging from traditional computer science, one example of which is Human-Computer Interaction. However, I still think the majority of new studies involving computers and society are entrenched in other departments, but the research of those departments could really help true computer scientists make better programs. Perhaps what we really need is more interdisciplinary work…

    Curtis

    April 6, 2008 at 11:46 am

  3. Thanks for the reply. I argee. Prehaps universities should, like you say, introduce interdisciplinary work. Maybe other courses should even teach basic programming skills? Maybe a bit extreme, until you consider that many companies are fighting hard to make programming open to all, even young child, if you take Lego Mindstormers as an example. It would be great, if Art students for example, could take a simple course and make truely interactive art work.
    Great blog by the way, love the Mac theme.

    Peter White

    April 6, 2008 at 12:14 pm

  4. If you want to see a great example of interdisciplinary work in the computer field, check out Danah Boyd’s research:

    http://www.danah.org/

    Curtis

    April 6, 2008 at 12:47 pm

  5. Really we just need to stop being afraid of the name software engineering. There are departments scattered across the country, but people seem to have a hard time making the switch. It’s as simple as understanding the difference between science and engineering- computer science curriculums teach what they should, as science can only be about understanding the basic nature of the universe, in this case in the area of computation and algorithms. However, there is no more low hanging fruit in the area, and of course it isn’t practical when building real world application (sidenote: in general, whenever anyone says some scientific field should be more practical, what they really mean is they want to create a corresponding engineering field; science by its nature is not practical, though sometimes the engineering gap is smaller). Scientists _discover_. Engineers are the ones who _create_. So most people should major in Software Engineering, where you learn the practical side of programming and such, and where HCI is treated as a legitimate field rather than being used as a euphemism for ‘stupid’. Admittedly, we need more schools to offer these programs (and probably many vocation oriented schools should just scrap their CS program to be replaced by an SE dept), but this is harder than it should be, I think because many people are wrongly accustomed to CS producing practical, usable, artifacts, just because so little engineering effort was required to make useful the scientific discoveries of the early years of the field.

    barry

    May 4, 2008 at 3:05 pm


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: