What is Computer Science, Really?
Hello, there!
This is a transcript of one of my motivational speeches I gave during my sophomore year of college. The audience of this talk were around 300 students in an introductory programming course at UC Davis (ECS 40, Object Oriented Programming).
In my talk, I told a story about the biggest breakthrough I’ve had while learning CS.
Enjoy!
[SPEECH TRANSCRIPT]
Hi, Everyone!
Speaking here feels like deja vu. It was only four months ago that I was here, in this very room, speaking to at least half of you back in ECS 30.
For those of you who don’t already know me, my name is Raisa, and I am a second-year CS major.
And for those of you who know me and have reached out to me, I’ve had the utmost pleasure of sharing my experiences. While you were in ECS 30, you asked me questions such as these:
“Is ECS40 a weeder course?”
and
“Is computer science going to get harder from here?”
I feel terrible for not giving you a well-thought out response on the spot. So I thought about these questions for some time, and today, I’m going to give you a well thought-out answer.
**
Before I begin, I want to congratulate you all for making it to this class.
Right before I took ECS 40 with Sean Davis, I was told by my ECS 30 instructor that 40 was going to be a tough weeder course. And he was absolutely right. On the third week of ECS 40, almost half of the students dropped the course, and I was traumatised.
But that.. was the past.
To be honest, I don’t like the word “weeder”, or the phrase “weeder class”, so from now on, we shall throw that word out the window. I’ll tell you why.
**
For an entire year, I didn’t know what computer science was. In other words, I was floating around taking CS courses not knowing what I was doing! Damn!
Last year, for one of my CS assignments, I was asked to add two unsigned long integers, and I had no idea how to do it. I remember Matthew, your instructor, telling me:
“How does a person do it? How does Raisa do it?” he asked me.
I have no fucking idea, I wanted to tell him. Instead, I was nice and polite and smiled, just like any of you would with your instructor.
But... I still had questions. Not about my assignment, but about computer science.
And what I discovered was mind-blowing.
With doubts in my head, I talked to Matthew again, and what he told me… changed my outlook on CS and my attitude towards programming. And right now, I’m going to share them with you.
First of all, computer science, it turns out, is conceptually simple.
Computer science, at its heart, is solving problems with computers.
I never quite thought of myself as a problem-solver. So I asked Matthew,
“How do you problem-solve?”
**
Before I move on, I have a question for you: what’s the first thing that you do when you receive a programming assignment? Raise your hands if you open your laptops right away and code.
*waits for response*
Chances are, you’re skipping an important step.
As Matthew told me, and I’m going to quote him word for word:
“You have to figure out what you are doing so you can tell the computer to do the same.”
So with my assignment on adding long integers, I tried adding them like you learned in second grade. I added two numbers just like a human would.
In other words, pencil and paper are your best friends.
But that’s not it.
Once you’ve gotten in the zone of figuring out how to solve the problem, write down the steps required to do so, and keep those steps fairly big.
When writing down the steps, pay attention to the words you use.
“If you find yourself saying if, then you’ll have an if statement.
For each is a for-loop.
Until is a while-loop.
And we can probably start translating your steps into code.”
First, create a skeleton based on your steps. Keep these steps fairly big, and each of these steps is likely to become a function.
Start at your first function and write down the steps needed to solve it. Keep repeating that process until you get to something small enough that you know how to solve.
By the end of the process, you will have broken down your complex problem into smaller and simpler problems until you can solve them.
And then… boom! You’ve solved your problem. And I thought… oh my God. How cool is that?!?! I can’t believe I missed out on one year of swag!
If you genuinely think that I’m a fool, feel free to laugh at me for a moment. That’s fine! I like to laugh at myself too!
And that, my friends, was how I started enjoying computer science.
However, if you’re wondering if your journey is going to get harder from here, the answer is yes. But if you ever feel intimidated by ECS40, please remember that all the complicated material you’ll be learning will only make you better problem solvers. And remember that you’re doing something conceptually simple: problem-solving.
And for those of you who took ECS 30 last quarter, you may have noticed me sitting in the front row, asking a bunch of questions. “That girl who did the speech on Day 1. Isn’t she supposed to be in ECS 60? Da hell is she doing here?” you may have asked.
In case you wanted to ask but were too scared, I’ll tell you that I was there to learn. After missing out on one year of swag, Matthew decided to give me a second chance and I was allowed to sit in his lectures, with you guys. In the beginning, I often felt embarrassed and was self-conscious, never raising my hand or asking questions. But towards the end, I threw my fear out the window and had fun.
And please… don’t ever feel embarrassed to seek help, whether it’s by raising your hand in lecture or coming to office hours, or even counseling, because we are all here to learn and have a great time. Just like last quarter, Matthew is giving me a second chance at swag, so I’ll be here in lecture, learning, problem-solving, and asking questions together with you guys. I look like a fool - an upper div student “retaking” this course, but that’s okay. We can all look like fools together.
We are going to solve problems.
We are going to have fun.
And we are going to get through this.
Thank you.