cs for all

In Barack Obama’s address, he states:

“In the new economy, computer science isn’t an optional skill its a basic skill, right along with the three Rs.”

When I read this I imagine how I would feel if they replaced the word “computer science” with physics. I would be fucking terrified because I hate physics and I am bad at it. Physics is not for me.

Likewise, programming is not for everyone. As a TA I have seen students struggle through basic concepts and get very frustrated with programming to the point of helplessness. They hate it. I know they hate it, and they are actively bad at it. Coding just is not for everyone, and pitching it as such is a mistake. Just looking at the numbers, 30% and 60% of every university computer science department’s intake fail the first programming course. Some people just cannot do it.

However, I do think that everyone should be exposed to programming, and taught basic programming — and there is not enough being done about this. As Obama points out in his weekly address: “only about a quarter of our K through 12 schools offer computer science. Twenty-two states don’t even allow it to count toward a diploma. Just 6 percent of high schools are certified to offer Advanced Placement computer science courses. This sucks, but people are working on it.

This code for all movement has gained wide support, but it comes with challenges and unimplemented details. One of the major challenges to getting code into the curriculum is that there are not enough teachers. Along with who will teach the courses, there is also the unanswered questions of what will be taught, when it will be taught, and whether or not it will be required.

So what should this universal curriculum look like? This curriculum should teach basic programming skills in a relatively easy language (python). It should teach basic things (conditionals, loops, logic). It should be hard enough to deter people, but not hard enough to scare people. When I was a freshman, I had a general engineering course in which we learned Verilog. We programmed little robots. This was pretty easy, and a lot of people thought this was pretty cool and switch to the computer science major because of this. I think introducing tech in the form of cool little gadgets is somewhat dangerous. It gives people the wrong perception of the difficulty of computer science. With this you get people that really are not good at computer science but they get a false impression that they are because they were given a simple task. For this reason I think these coding courses should be moderately challenging. This intro course should sell computer science at face value, and let the cards fall as they may. Some will love it, some will hate it, but the correct group of people will be drawn to study it further.