Computer Science Principles: The Story

Computer Science Principles is designed to teach basic computer science and computational thinking to a general audience, not computer science majors. But, why would someone want to know this information? Speaking as the creator of this course, this is my answer.

-- Larry Snyder, Professor Emeritus

CS Principles and Why To Take It

You have used computers your whole life. Mostly you don’t even think about it. Your phone has several computers in it, your iPod, your Kindle, your TV, your car has several in it unless it is an antique, and on and on. Most devices with an on/off switch contain computers these days. And they continue to be more widely used – planes fly without pilots, vehicles drive on highways autonomously, social media like Facebook and Twitter add features every month that allow new forms of interaction.

That list probably contains no surprises to you – it describes how the world is. You’re doing just fine with today’s technology. Luckily, this class isn’t about how the world is. The world will change. This class is about what you need to know for the world that hasn’t yet arrived, and which you will create.

I want to emphasize this point – the world changes and this class is about staying with it and contributing to it.


Who is this guy?Jack Dorsey photo

He’s Jack Dorsey and he changed your life. Everyone in this class can remember what life was like before Twitter. In 2006, Jack Dorsey invented Twitter. In 2005, no one had thought of the idea of Twitter. But Dorsey saw an interesting way to use computers, and he created it. Of course, he could program and build it himself, which is good, but it’s not the goal of this class. We don’t produce programmers here. It's possible to have an idea like Twitter without building it. But you must understand computatonal principles and think computationally to do it.

The goal of this class, therefore, is for you to understand enough about the principles of computing and computational thinking that you could:

  1. come up with a new idea of how to use computation to solve your own problem, or
  2. understand someone else's new idea on how to use computation, and see its value, or
  3. be the first user of a new computational idea, when most of the features don’t work.

If the world is changing because we are using more computers and using computation in new and exciting ways, you need to be thinking computationally. You need to use it and contribute to it. That’s what we teach in this class.

Now, you probably have another major in mind, not computer science. Terrific! (This class isn’t for computer scientists.) But, whatever your major and career plans are, it will certainly use computers much more than it does today. Is your major:

So, when I say, you need to understand computing principles and computational thinking deeply enough to come up with new ways to apply computers, I don’t actually mean something like Twitter. I mean use computation to solve a problem in your field that interests you.

You will know that this class was right for you when, for example, having majored in archeology, you figure out how to use computation cleverly to track the spread of STDs by Roman tourists around the Mediterranean in the second century AD.

It's your problem, and your solution. And probably a solution others can use to trace the movement of other diseases.

So, this class is computer science for everyone who will be living and working in the 21st century. That would be you.




Instructor (Wi18) Contact:   jhsia at cs dot washington dot edu
Creator Contact:   snyder at cs dot washington dot edu