Recitation 1: Welcome

Computer Science?

The response I hear quite often when I tell people I study computer science is something akin to “Oh, gosh I could never do that I’m so bad with computers in general”.

When I first started I would quite often correct them, but by now the response is so ubiquitous that I’ve more or less given up. It’s not even that they mean much offense by it – I do believe they genuinely believe this to be true. It’s just sad that there is such a misperception when it comes to what computer science really is. And it’s not their fault.

The term computer science is rather misleading: it is not the science of computers. Strangely enough, computer science has virtually nothing intrinsically tied with computer as we know them to be in the modern era.

Let me put this way: Saying you cannot do well in computer science because you do not know how to set up your TV is like saying you couldn’t be a doctor because you can’t get this one EKG machine to work all the time. The CS degree is not about figuring out how to fix your grandmother’s computer. It’s not about knowing the solution to why your Microsoft Word crashes all the time. Not even close.

At its heart, computer science is about how to solve problems. Developing algorithms, or procedures, to tackle various problems. What kinds of problems, you might ask. No, not like how to install the latest game on your computer. That’s tech support, but you’d be wise not to think lowly of them either.

The kinds of problems I’m talking about are some of the following:

This is computer science.

Diversity

When most people think computer science, the word cubicle is not far behind. People assume computer scientists just sit around and code all day long. I wonder won’t why people don’t think doctors all just sit and prescribe medicines all day long? We computer scientsts have likely marketed ourselves rather poorly.

There is an incredible diversity within computer science. Our very own Professor Jayanti is an incredible algorithms expert; he specializes in theory. He is known for proudly proclaiming that he hasn’t coded in nearly a decade!

On the other hand, there are the newly burgeoning fields of Artificial Intelligence and Machine Learning, headed by Professors Balkcom and Torressani.

Our very own Professor Farid is something of a genius when it comes to image analysis (check out his photo forensics course – it’s a whole course on how to tell whether an image is photoshopped or not!).

And many other fields like security (Professor Smith,) compilers (Professor Cormen,) smartphones and networks (Professor Campbell), and so many others that even I don’t know!

The point is that if you think all computer science offers you is a desk job where you sit and code in front of a computer all day, you’re sorely mistaken.

Intimidation

I’m not saying that the field of computer science is not without its own exclusivity. It, like all other fields, has its own problems. But a major issue that many people feel is that unlike the stereotypical Asian male who’s been programming since he was eight years old, they don’t know about computers, so they can’t cut it.

Let me tell you: yes, you can.

When I first came here I was hell-bent on never taking a CS course. Why? Both my parents are computer scientists. I didn’t know a darn thing about computers growing up, but I knew one thing – I sure as heck didn’t want to be like my parents.

All my friends played video games and would talk about their RAMs and GPUs and how cool their new hard drives were, and I would sit and twiddle my thumbs thinking “What the heck is going on?” I decided early on that I wasn’t good at computers, and coming to Dartmouth was no different.

The first time I programmed was freshman spring, taking CS5 (the old version of CS1). There were kids who had been programming for literally a decade longer than I had. But those kids aren’t going to be taking CS1; and even if they are, this class is not on a curve. Their success is not going to make you a failure.

I’m not saying it’ll be easy. I’m not saying that you can put in three hours of work a week and get an A. But the excuse that you haven’t been programming while others have been is irrelavent: this is designed to be an introductory course that assumes no knowledge of programming. None.

Professor Cormen has famously said this multiple times, and it’s quite true:

Can you read? Can you use computers well enough to send an email? If so, you’ve met the pre-requisites for this class.

That’s it.

Welcome to CS1! :)