There’s no doubt UC Berkeley’s computer science department is pretty amazing. Over the years, professors, staff members and students have gotten their hands dirty in all manners of computing, from developing some of the core technologies of the Internet to creating the underlying software of many modern operating systems. Each year, UC Berkeley students graduate from one of the nation’s top CS programs. As someone studying and teaching CS, I think we’re doing a pretty damn good job, but we’re missing a critical group of students.
The computer science department doesn’t really have a class directed toward the vast majority of students. These students are not computer scientists and do not aspire to be. They are not “hackers” or “hard-core coders.” They are everyone else on campus — students studying a variety of subjects, such as art, physics, economics or political science. We have reached a point at which computing is relevant to pretty much every student on campus, but so far we don’t even have a class that teaches programming and computers for use in the “real world.”
We do have two introductory classes, Computer Science 10 and Computer Science 61A. Fundamentally, though, these are CS classes. Neither class gives students both a practical basis for programming and an understanding of the effects of computing on our daily lives. They teach concepts and theories behind computer science, and while they’re awesome to me, these classes are not what many students want or need. Most importantly, they don’t teach the relevance of computing to the myriad of majors students have.
Students need a class that teaches them how to use a little bit of programming to do things they couldn’t do before or to show them simple tools that save time doing routine tasks. Everyone could benefit from learning basic programming. But computers aren’t just about programming: computers connect us to friends and family and manage our money. Understanding the effects software or technology could have on our decisions is critical to making informed decisions. We should give more students the opportunity to obtain the skills needed to control the devices they use every day, and to better protect themselves against problems.
To be fair, this problem is not specific to UC Berkeley. Millions of people, including Barack Obama, recently got behind the idea that everybody “needs to learn to code” through a non-profit called code.org. Since launching a new initiative in December, the site claims nearly 25 million students have been involved and nearly one billion lines of code have been written. No doubt, I’m excited to see more students (and adults!) learning how to program. However, is this really progress? The problem with trying to get people to learn to code is that it doesn’t really change anything. Our teachers have all told us that we need to become skilled at math, mostly by repeating calculations. We’ve been told countless times about the importance of math, but seldom told why math is important. The notion that everyone needs to learn to program repeats the same mistakes of convincing students to learn math. Programming, and computing as a field, is far more than just a screen full of commands. Getting people to simply write code is wonderful, but it’s more wonderful when we focus on what we all could actually do with all that code.
The focus should never be on the tool itself but rather what this tool enables you to do. As it turns out, you can do quite a bit! Studying art? Programming enables you to create new forms of art and visualizations different from most nonelectronic forms. What about research, be it bioscience or chemistry? Programming can be a huge boon for processing data, managing a research project or preparing papers. Perhaps you’re involved in extracurricular activities? Your group can benefit from a website or more effective ways of managing members or activities. Even if you have a webpage, there are probably a few ways to improve it. Do you have photos or essays you’d prefer not to lose? Understanding computers will help keep things safe from others and from yourself. The data our devices hold contain important memories all too easily lost, corrupted or damaged. Computer programming and a little bit of knowledge can go a long way. There’s so much information in CS classes on simply and effectively managing technology. But they aren’t for everyone, and they come with lots of material only computer scientists need. There are more than a few on campus student groups that can teach these skills. Ultimately, programming and effectively using a computer aren’t confined to those who study CS. They are skills that are often a bit tricky to learn without a guide. So where is such a class?
I hope you’re convinced that computing is relevant to your life. Now what should you do? CS 10, CS 61A and CS 61AS are excellent classes from which you can learn lots! If that’s not up your alley, I hear this Internet thing has lots of excellent resources.
“Off the Beat” guest columns will be written by Daily Cal staff members until the spring semester’s regular opinion writers are selected.