It’s CSEdWeek, everyone! CSEdWeek is a nationally recognized celebration of K-12 computer science education. This week, CSEdWeek is December 9 to December 15, 2012.

Now, I am by no means an expert on computer science education. But I, along with several of my friends, started programming in middle school. I’m grateful for that. I truly think that that was the right time to be introduced.

Unfortunately, not many schools teach computer science as part of their formal curriculum. I couldn’t find statistics on middle school CS, but, at the high school level, only 27% of American high schools teach rigorous computer science courses. I’m sure the number for middle schools is stunningly small.

But you don’t need a “formal” introduction to CS. Really, a homegrown introduction to computer science is just as good (if not better). I want to share some ideas on introducing your daughter/son/sister/brother/niece/nephew/cousin/friend to computer science. (These were all suggestions that I made via email to a family friend who wanted ideas on how to get his 12 year old son involved with computer science.)

Ideas for Homegrown Computer Science

Lego robots. Many of my friends who are now studying computer science in college started out with Lego Mindstorm robots. The physical aspect is really satisfying for a lot of kids, though I always preferred programming to building. There are a variety of ways that these robots can be programmed–I first programmed them using a friendly, point-and-click graphical language, but many kids will quickly get frustrated with that and will want to move on to something like NQC (“not quite C”), a straight-forward imperative language.

Programming languages for kids. There are graphical programming languages out there, like Scratch or Alice, which are designed to help kids learn how to program in an unintimidating way. Google’s App Inventor, which is now maintained by MIT, is another good graphical option–it lets anyone with a basic understanding of programming concepts (like loops) build an Android app. App Inventor might lend itself to more tangible projects than Scratch or Alice.

Building websites. Building websites with HTML and CSS (and eventually JavaScript) is a great option for middle school students. I think its especially great because you don’t need to download any SDK’s or compilers or VM’s or anything. Literally, all you need to get started is a browser and a text editor (Notepad, anyone?). The barrier to entry is so low, and the possibilities for projects or goals are endless. I got started with HTML and CSS when I was 12, because I wanted to make a presidential campaign site for “Tofu for President, 2008.” (I was an avid vegetarian at the time.)

Online courses. Some of the more mature or ambitious kids might be interested in taking an online course, such as MIT’s Introduction to Computer Science and Programming, or Coursera’s Learn to Program: The Fundamentals. I offer this suggestion with some hesitation; I’ve never taken an online course successfully. But I know some people love them, and I imagine that a precocious middle school student could get a lot out of an online course.

Codecademy, Khan Academy or other interactive online programs. In the past year or two, websites like Codecademy and Khan Academy have sprung up. These sites mix interactive lessons and in-browser programming, which means that the barrier to entry is very low! I’ve never used either of these sites, but I imagine that this is a great, low-key option, and I’m jealous that it wasn’t around when I was learning to program.

Screen cap from Khan Academy

Of course, there are many other possibilities. I hope you’ll share some in the comments! These are just a few ideas, mostly inspired by my own experience. I hope you find them helpful.

So why does this matter?

Why Middle School Students Should Be Introduced to Computer Science

The world needs more computer scientists. 1.4 million computing related jobs will be added to the U.S. economy by 2018, many more than the number of computer scientists graduating before then. And not only do computer scientists play an important role in innovation, but they’re also compensated to match. As any current CS student can tell you, the market is already fierce–demand for programmers far outstrips supply.

An education in CS opens doors in a wide variety of other disciplines. The world is becoming increasingly computational. In fields ranging from biology to linguistics to political science, people are finding that computational skills give them an edge. A few years ago, a CS professor at a well-known public research university explained gleefully that all the biology researchers were coming to his department for help. Simple computer science skills will soon be critical in many fields.

Computer science education should start in middle school, because that is when kids start to get hooked. Middle school is when schools start offering electives to students. This is when schools begin separating students into gifted math programs. Many students will wonder, “Should I take orchestra or Spanish?” Students need to know that computer science is an option, too.

Students who start studying CS early are less intimidated when they get to college. I’ve addressed the concept of “technical entitlement” before, but it’s a sad truth that college CS courses often have a certain macho, know-it-all culture associated with them. To a newcomer, this can be quite intimidating. Students who come into college with a bit of CS knowledge will be more likely to hold their own, recognize the know-it-alls and the phonies for who they are, and will be more likely to continue studying CS in the future.

I speak from my own experience, as well. Many of my friends who now study CS in college started out playing with lego robots, or coding MySpace themes, when they were in middle school. My own positive experiences with simple web development, which started when I was in middle school, led me to become a CS major.

I’m grateful that I was introduced to computer science when I was still in middle school. I still think that it was the perfect time. I love CS, and I want to see more students study it. I hope you’ll find my suggestions useful!


I’m Tess Rinearson, a sophomore at Carnegie Mellon’s School of Computer Science. I’ve interned at Microsoft, Valve Software, and CloudMine.me. Come May 2013, I’ll be interning at The Obvious Corporation. If you liked this post, you may want to follow me on Twitter or post this to Hacker News.

Comments

comments

Powered by Facebook Comments