Welcome to the personal blog of student,
writer and occasional bum Eli James. More...

Saturday, April 09, 2011

Things I Like About Computer Science


I bumped into my Form 6 Physics teacher Pn Loh late last year, while at St Thomas's to teach debate. She looked harried, but smiled and stopped for quick chat.

"Oh hello!" she said, "What are you doing now?"

"Err ... holiday," I replied. "Here to teach debate for the afternoon."

"Oh, no, I mean what are you studying?"

"Computer science. NUS."

Pn Loh's eyes popped. "Wahh!!" she exclaimed. "How did you get in ahh?!"

"I also dunno." I say, but amused. We talk a bit more, and then she went off. But not before turning and saying: "Oh you know, maybe you should come back and talk to some of our Form 6 student here. They don't really know — I don't think many people here know — this computer computer thing."

Well I do know a thing or two about this computer computer thing. Here are a couple of things I like about it:

1. The Newtons Are Still Alive
There's this thing in Computer Science called object-oriented programming. The person who sort-of invented it (or most of its current ideas, and in particular modularization) is a woman called Barbara Liskov, winner of the 2008 Turing Award. She was my professor's PhD supervisor at MIT.

Computer science is such a young field that most of its legends are still around, teaching in the faculties of the various universities worldwide (though most of them, admittedly, are in the US). This youth means two things:

1) Big chunks of what you'll learn in computer science is wrong. You know this, your professors know this, but it's still slightly exciting to think that so much about compsci are still things that are horrendously broken, and in need of a fix.

2) You are still able to talk to the legends. Physicists can't talk to Newton or Einstein, but if you're in computer science it's still possible to find the equivalents, learn from them, and take them out to lunch.

(While I was at the Internet Archive I bumped into Ted Nelson, the inventor of Hypertext. I was showing his wife the Archive's new Javascript-based ebook reader, when he came wandering over. His wife introduced us. "Hi, I'm Ted. I did Xanadu. I invented Hypertext. You know — HTML?" He was eating sushi.)

2. Nobody Really Knows What You're Doing
This is slightly frustrating, but also slightly funny. A famous introductory lecture at MIT describes Computer Science as such: "Computer science has nothing to do with computers. And it's not really a science."

To your friends and relatives, being in compsci means that you're the guy they turn to when they have a problem with their computers. I use a Mac, and often have no idea as to how to best fix their Windows machine. (Most compsci majors use Unix systems, by the way. That means Linux or Mac. Rarely Windows).

The simplest way I can describe computer science to a non-techie friend is to say that compsci's a lot like add math. In primary school, we weren't allowed to use calculators to do our math. In secondary school, we were — but the math problems became so difficult that using calculators didn't help us as much. Computers are the most powerful calculators of all. Like add math, we're more interested in the potential problems we can solve with them than with the calculator itself.

(An apt analogy is that calling computer science "computer science" is a little like calling biology "microscope science". Like many biologists, we can't really help you if you've got a problem with your microscope.)

3) Has Created The Most Number of Billionaires Under 30
During the railroad revolution a disproportionately large number of people who became rich were in the railroad industry (or in other complementary industries such as steel; see: Andrew Carnegie). The same thing is happening in the digital industry today: the people who are creating the most value in the world are the ones either working on or with the Internet.

There are a couple of reasons for this. Kevin Kelly, in his 1999 book New Rules For The New Economy, points out that the Internet is essentially a communications accelerator. This is important because communication isn't just one part of the economy; communication is the economy. In simple terms, anything that accelerates communication accelerates the economy (or at least disrupts the power structures within it). And this has proven to be true: almost every industry that has come into contact with the Internet has been irrevocably changed, often with chaotic, ugly results.

Newspapers are struggling to make money. Music labels are going to hell, and blaming digital piracy for the disruption of their business models (they're wrong, but this isn't immediately clear if you haven't been thinking about the problem for a long-enough amount of time). Publishing, which I work in, is being slowly disrupted by the coming ebook revolution, which prices ebooks at less than 20% of the current retail price.

This chaos presents an unparalleled opportunity for anyone with the guts and the brains to build the (digital) economic structures of the future. It's not going to happen immediately — I started writing and thinking about the digital book-future four years ago, and much of it has yet to happen — but if you're daring enough, and smart enough, you can very well shape the fabric of the future. (And get rich in the process; but that's secondary to making the world a better place, isn't it?)

4) Has The Largest Potential For Empowering Social Change
Exhibit A: in the aftermath of the 2008 Kenyan elections, blogger Ory Okolloh put a call out to her readers: “Guys looking to do something: Any techies out there willing to do a mash up of where the violence and destruction is occurring using Google Maps?” The NYTimes reports:
A few days later, Kenyans had a Web site that allowed people to text or e-mail reports and see them plotted on a Google map of the country. It became useful not only for rapid intervention, but — as the name suggests — to document the deaths, injuries and destruction when virtually all other media were blacked out.
The software they built is now an open source project called Usahidi. It's been used in just about every disaster since: two hours after the Haiti earthquakes, Usahidi set up a Haiti site and got a Usahidi compsci student at Tuft's University to organize a group of 300 volunteers. Radio stations in Haiti then got listeners to text in reports, which thousands of US-based volunteers then translated and aggregated to the maps on the Usahidi site. Any report requiring immediate action (from a trapped person, for example) was forwarded to the closest rescue team, again through Usahidi software.

Usahidi has been used to catalog and report election fraud in Mexico, report damage caused by the Gulf spill, and organize efforts around medicine shortages in Uganda. Something to think about: why haven't we used Usahidi to catalog and organize election efforts in Malaysia?

Accelerated, accessible communication changes just about everything it comes into contact with. Recent revolutions were powered by Facebook and Twitter (in Egypt, organizers got tips from Tunisian revolutionaries through Facebook as to how to resist tear gas). And the enablers of this change will very much be the builders of the digital world: the computer scientists, the engineers, and the programmers working on the technology to connect people in new and often surprisingly novel ways. Some of them are working in Google and Facebook, but many more in universities and startups around the world.

But what does communication have to do with computer science? There are a couple of things. For instance, as the web has become more 'real-time', so the technologies written to support it have to adapt to the speed of transfer. Facebook's feed, for instance, is updated so frequently it has to use a non-relational database system called Cassandra. NoSQL datastores are fairly new in computer science, and it's not entirely certain how they'd do in most production environments. (There are many more other challenges, but I'll not go into detail here)

The point is: I am a computer science student in an era where so many things are being thrown into chaos by a digital shift. It's exciting, it's young and it's scary, but it's also what I like most about my field.

No comments: