Teaching Computing in Middle School

8:23 AM 0 Comments

My oldest is in the 3rd grade right now, so it seems like a good time to start pounding the pavement with the fact that kids should be taught serious computing as early as the 6th grade.

My kids use Scratch and love playing around with it.  They take the game examples from a Scratch book I bought for them and tweak them to do different things.  I want to start taking it to a more formal level, but right now I'm happy to let them tinker.

Born to Code

That's what I did when I was a kid.  Tinker.  When I was 12, my dad showed me how to change the color of the DOS prompt, and I was immediately intrigued by the idea that I could tell the computer how to do something, and it would do it.

I wrote my first program in QBasic when I was 13, and took a Pascal programming class from Robert Czapla at West High School when I was 14. I remember the textbook being one that I couldn't put down.  (How many textbooks can you say that about?)  I would read it at home, at school, and in the car.  I couldn't wait to get my hands on a computer and try something new.

By the time I had graduated high school, I had added C++ to my tool belt.  I was programming games, using algorithmic thinking, and am a better problem solver today in general because of it.

By 18, the year 1999, I also had learned Java.  I applied for a Java programming job at the Park City Group.  I was hired and spent the next year coding there for $13/hr (compare this to my counterparts who were making $7/hr at Wendy's), saving up money to serve an LDS mission.

Raising Students to the Engineering Expectation

I was very lucky to go to a school that offered me computer programming at a young age.  In my opinion, it could have been a couple of years younger, and I would have been just as avid.  In fact, with new programming languages like Scratch and Alice, introducing computing and programming concepts has never been easier and the minimum age requirements have never been younger.

The most forward-thinking schools are starting to teach computing with Lego Mindstorm robots, Scratch, HTML, and Alice when the students are a mere 11 years old.  Other schools are stuck with the idea of teaching the students typing, word processing, excel, etc. at that age.  These are skills that I am teaching my kids now at the young ages of 6 and 8.  While they are absolutely vital skills, schools that aren't offering more advanced computing in middle school are leaving today's tech-minded families in the desert.

These forward-thinking schools are responding to the writing on the wall.  Computing needs to be a core competency like Math, Science, and English.  Computers are in virtually everything, and the United States is not producing enough Engineers to fill the need.  In my current workplace, I am a 1 in 10 minority with about half my co-workers being from India, another quarter from Asia, and another roughly sixth from other countries.  While I appreciate and enjoy the diverse culture, what does the demographic say about how many engineers the United States is producing?

In 2011, NCWIT reported that 1.4 million computing related jobs would be added to the U.S. by 2018.  The years leading up to that are the years that our middle schoolers are formulating into adults that can fill those jobs.  If schools don't produce enough engineering-minded students over the next 5 years, the market will fill it with more engineers from other countries as it is doing today.

Raising Social and Cultural Beings

One concern that I heard recently was that in middle school, students should be learning how to be social and cultural beings, not productive workers.

I am a big fan of Ken Robinson.  He is the presenter of a somewhat famous TED talk as well as the author of a very excellent book that I'm just about to finish called The Element.  In these works, Robinson propounds the idea that our schools today are killing creativity by focusing too much on the right answer and not allowing for subject matter that requires greater mental flexibility on the part of the teacher and learner.

Computing is one discipline that is an answer to Robinson's call, if done correctly.  The adage that there are one hundred ways to skin a cat is true with computing:  There are a hundred (or even a million) ways to write a Microsoft Windows USB Driver, a Honda Civic Fuel Injection routine, the next Facebook, or the next World of Warcraft.

Certainly, computing has its standards, and I myself have been known to cause my co-workers grief by holding them strongly to good craftsmanship.  However, the necessary aptitude for problem solving and taste for variety are found in levels in computing that I have not been able to find elsewhere.

I am a big proponent of teaching Math in school as well.  Unfortunately, the math curriculum has turned into one less of discovery and finding unique ways to make advances and more of finding the one right way to do things.  Again, understanding the fundamentals is important, but one only needs to watch the creative videos by Vi Hart to see how far astray our math curricula are from what is possible.

Such could happen with Computing in a school system of right and wrong.  If that does come to pass, then the above concern is valid.  However, if done correctly, computing is an excellent vessel for sparking creativity in our youth.

Computing also teaches algorithmic thinking, which is another important social and cultural trait.  The ability to create efficient, scalable, extensible, robust systems are useful skills well beyond the realm of computing and engineering.  Climate change, diminishing natural resources, and disease, just to name a few, require kids that not only know how to think analytically but how to think in algorithms.

The adults that solve the worlds problems of tomorrow are the kids that are learning computing today.

Other Points of View

Clearly, I'm not the first nor the last that means to talk about the need to bring computing into our middle schools.  There has been a lot written over the last few years about the need to introduce computing more rigorously to younger students.

A simple Google search will reveal several fantastic articles that explain in greater detail the need our country has for teaching computing at younger ages:

Why Girls Should Be Encouraged to Tinker

New Programs Aim to Lure Young Into Digital Jobs

Getting Computer Science Into Middle School

Homegrown Computer Science for Middle Schoolers

Middle School Computer Science:  An Interview with Laura Blankenship

Existing Curricula and Other Solutions

Again, a brief search on Google evidences a wealth of proven resources that teachers have at their disposal to bring computing into the classroom at young ages:

Happy Nerds - A site of resources for teaching computer science to younger students

Bootstrap World - A curriculum for teaching computing alongside algebra and other math subjects

Scratch - A programming language for introducing programming to younger students

Alice - A programming langauge for introducing programming to younger students

Lego Mindstrom Program Setup Guide - A guide for setting up a LEGO Mindstorm program

"Exploring Computer Science" curriculum - An entire curriculum for teaching computer science (note: this is targeted at high schoolers)


Educators, begin today.  The kids need it, our future needs it.

Josh Cummings

"I love to teach, as a painter loves to paint, as a singer loves to sing, as a musician loves to play" - William Lyon Phelps