The President calls to offer Computer Science for all students

President Obama gave his final State of the Union Address in January and it was exciting to hear one of his education proposals.  While listing some of his recent education achievements he said, “"In the coming years, we should build on that progress, by ... offering every student the hands-on computer science and math classes that make them job-ready on Day 1."  After getting over the initial surprise of hearing such a goal and knowing the both the challenges and rewards of doing this almost daily for several years, a few questions immediately jump to mind.  What age groups will get this? Depending on the age group, what should the material be? How often will it be offered and how deep will it be? How will we train the teachers and/or volunteers required? Can we change the education system in a time of such political divide? These are just a few of the initial thoughts running through my mind. More great questions are also posed in the NPR article, “The President Wants Every Student To Learn Computer Science. How Would That Work?


The United States has no national curriculum for Computer Science, unlike a handful of other countries including the U.K. and Australia. The good news is that this gives us an opportunity to see what is working in those countries and adopt the best practices over time. The bad news is that it will take an awful lot of people from both technical and non-technical backgrounds to come together and agree on any standards. Over the last few years it has been exciting to hear about more schools offer some sort of coding and computer science classes, but the Computer Science Teachers Association still estimates that only 10% of high schools in the U.S. offer a computer science course even today.  Perhaps elementary and middle schools are getting ahead of the high schools and offering at least some sort of introduction. National efforts like the Hour of Code and online tutorials can get students exposed to the subject even if there is occasionally little depth or ability to answer questions like “Why does it work that way?”

In the NPR article, a well-respected computer science teacher, Alfred Thompson, pointed out three problems with getting something of this magnitude launched. Fitting the subject into an already full school schedule is the first challenge. Knowing my own kids homework load and daily course demands gives me some perspective on it from a personal side. I expect few teachers or administrators will want their subject to be pushed aside to make room for computer science if it’s not already on the course list. The second problem is finding the necessary teachers. There is more money to be made working in the tech industry if you are a good at computer science, and the demands on teachers today certainly don’t match their pay. Finally there is little professional development for computer science teachers according to Thompson. Learning computer science is one thing, but being good at teaching it is something else.

There is no doubt that students would be excited about the classes. No matter what the age group whether elementary, middle school, or high school this subject really connects with students and is more likely current than most other school subjects. When given the opportunity to learn to code with some creative freedom and a sense of play, students jump in readily and eagerly. They are likely using technology every day without a creative outlet and when given some room to do their own thing they are motivated and driven. This is the reason for the huge success of Minecraft  – creative freedom and room to grow.

With this in mind one risk of this effort is pushing too much at the students too early. We don’t need to teach complex languages to elementary students any more than trying to teach them higher-level math before teaching them the basics. Sometimes people think of tools like Scratch for the elementary age group as “not real programming”.  This could not be further from the truth. Scratch is such a good starting point precisely because it offers the creative freedom of Minecraft along with teaching coding concepts and the thought process involved. Younger students still have years before they are in middle or high school and there is plenty of time to learn other programming languages when the time is right (not to mention that languages keep changing with new ones appearing like Swift). There doesn’t have to be a hurry and by moving too quickly we run the risk frustrating the kids and turning them off about the subject. By the time students reach middle school and high school they are ready to start thinking more abstractly and then trying Python, Java, Processing, Swift, etc., with a greater chance of experiencing some success and having a positive experience.

On January 30th the White House announced a staggering $4 billion dollars in funding for the presidents Computer Science For All initiative. President Obama appears to be personally involved and interested in the subject during his last year in office. In a recent Popular Science interview, the president pointed out that being a called a “nerd” is a badge of honor today.  He remarks how today’s kids are  “proud to be smart and curious, to design new things, and tackle big problems in unexpected ways.”  We see this every day in our classes as well and it’s both exciting and inspiring to see.  When they see what their code is doing and they mix it up in new ways it turns on a light bulb and they start imagining what they could do next.  “I think America is a nerdier country than it was when I was a kid – and that’s a good thing!” – President Obama