How Young Can/Should You Start Teaching Programming?

Or perhaps how young should you try? And to top if off, why do you want to start them so young in the first place? I received the following from a teacher friend of mine the other day and it has had me thinking ever since.

Can you please tell me why anyone thinks it is a good idea for 6th grades or 7th grades to learn to program? I do not see them trying to teach physics or pre-calculus to them. Lord knows they are not looking at having 6th graders learn geometry. Now why do they think (not sure that word works here as that’s the underlying problem with teaching 6th graders to program) that students that have yet to understand problem solving in a class build to help them understand problems solving could start problem solving 2 or 3 years early? They do not have 6th graders read say Gatsby even though most of the basic vocabulary is there. I just don’t understand why you would want to show middle school students what goes into networking when adults with a better understanding of abstract thought have hard times working and using it? The idea of “Well we want to show them so they can get a feel for what is going on?” should then also work for teaching trigonometry or calculus. Or how about chemistry???

I am blessed  with a LARGE number of very bright (HS) students and I still have many who just start to understand what all is being asked of them. Tell me how they think a group of students with less on the ball and minds that are less focused can do what they hope to teach and not make bad habits or outright destroy any chance of learning programming? Any teacher after them will have to undo so much bad though and habits it would depress said teacher. And yes I know there are some kids that can do the material very well even at the 6th grade, but that number would be small to start with and those students would be in with the great unwashed masses of their peers, a heart breaking situation to force a bright student into.

I hear this from others as well. In fact I have run into the same attitude from university faculty talking about computer science at the high school level. The greater question, or more basic question, is “when are students ready to learn programming?”  It’s a fair question. We know that trying to teach concepts before students are ready for them emotionally, intellectually or other wise can be counter productive. We have also seen some good success with students learning programming in middle school (some guy named Bill Gates learned in middle school and did pretty well). Tools like Alice, Kodu and Scratch are widely used in middle schools and even younger. It seems like there are some good results there. But are we not hearing (or paying attention) to down sides? Do we focus on the students who do well with it and assume that all students are keeping up when in fact, perhaps, they are just precocious students leaving the rest in the dust?

In my  heart I want to introduce middle school students to the joy and excitement of computer  science and computer programming. They are making decisions at this age – consciously or unconsciously – about their academic futures. I want to see CS included in their thinking as an option. I think middle school is old enough for some of this. I have no data to support that idea though. It may exist somewhere or maybe it doesn’t. How about younger children? Remember Logo? That was used with still younger children. Kodu and Scratch have been widely used with elementary school students. Does it work out ok if we don’t try to do to much or go too deeply? Or are we going to force them into bad habits that someone will later have to break?

What do you think? At what age did you learn to program? How young have you taught programming? How young is too young as students are not yet ready?

Comments (13)

  1. Steve Dembo says:

    Aiden and I built our first Lego NXT robot the other day.  We programmed it together.  He's five.

    I also look at 'toys' like Cubelets.  Yes, they're extremely basic in functionality, but the concepts they're building as they put them together are the building blocks (pun intended) that develop into programming.

    Yes, I know this isn't FORMAL programming, but it's never too young for the kids to start developing those skills!

  2. Erica Roberts (iteachcomputers) says:

    I teach a Technology Exploratory in a 7th and 8th grade school. I teach "programming" to my 8th graders using Scratch and have just added Kodu to the mix. My background is Computer Programming (major in College, 20 + years of business experience before I became a teacher). ALL kids should learn programming in one form or another. It teaches problem solving,logical thinking and the fact that sometimes there is more than 1 right answer to a question. These are all things that are seriously lacking in other areas of their school experience!

    My own children (13 & 17) have TAUGHT THEMSELVES programming because I thought they were too young when they felt they were ready. My daughter is into HTML and Lego Robotic programming, and my son has been playing with Java, Javascript and HTML for almost 5 years. My kids were lucky; they have had access to technology their whole lives. Many of the students I teach don't and are missing out on wonderful opportunities.

  3. Liz Krane ( says:

    I played around with some really simply scripting in the game ActiveWorlds (it's still around, just a less fancy precursor to Second Life) and hex editing for the PC games Dogz and Catz (just switching out color codes and that was about it) when I was 10 or 11. I was starting to learn HTML and making ugly little websites, too. 🙂 So middle school students can DEFINITELY handle that and much more.

    I think kids should be introduced to the idea as soon as they're old enough to follow instructions, like making brownie mix using the recipe on the box. If you can do that, you can learn some very basic programming concepts. Ideally, of course, every kid would have access to technology and have the opportunity to see how fun it can be. The kids who grow up with a computer are the ones who are willing and able to start learning about programming at a young age. It's not so much a question of mental ability; it's more a question of just being comfortable with technology.

  4. I started programming in Logo in 4th standard but wasn't able to catch up with programming hence after. It was in 9th standard I had a good teacher who taught me what programming is (Language:Quick Basic) and how to think when writing programs. The way he taught, I felt it is one of the easiest things once you know how to think as a programmer. I was very good in maths and this programming too is very much like maths. I believe, if a student has a good teacher, then he/she can do programming from 6th standard with fun. It's the concept of declaring and accessing variables that I found hard to understand. A student who is good at mathematics will find it very easy to do programming and infact it's so joyful. It's the teacher who does make the difference here. About CS as an option, For a talented student, catching up with CS is a very easy task.

  5. Tobin Rysenga says:

    I learned basic programming at the public library at age 10. By age 12 I was porting printouts of games from my Mom's work VAX to my Atari.  I plan on teaching my son to program in some form or fashion as soon as he expresses an interest.

  6. Garth says:

    Our elementary tech teacher is using Kodu with 2nd graders with good results.  The periods are short so she does a concept a day.  I have done Alice with 7th graders with really good results.  I picked up those 7th grades again as sophomores and the amount of retention from the 7th grade was incredible.  I switched languages and all the skills transferred over.  Some people are too young to program and do problem solving at 18.  Does that mean we should not try programming at a younger age?  Is the 2nd grade too early?  For some definitely, for others no problem.  When it becomes a problem is when we try to fit the same shoe to every foot.  We teach reading and math in increments, we should be able to do the same with programming and problem solving.

  7. LJRL says:

    I was programming on a VIC20 at the age of 7 or 8. I understood the goto and selection control structures and made pretty complex programs all things considered.

    I think there are age-appropriate programming concepts that can be taught at any age. I've heard of Kindergarden kids programming simple logo-like robots (with instructions such as start, stop, turn). Scratch, Alice are great for older kids. We can leave semi-colons and typing until later for most kids, most of the time.

  8. Wow. I cannot express how much I disagree with your teacher friend. We've got 4th and 5th graders programming robots, simulations, and designing games that teach concepts they learn in the science class. AND THEY LOVE IT. Computer Science and programming are about as 21st Century as it gets. Problem solving, breaking down problems, expressing yourself, taking ideas from your head and implementing it……sound great? That's what it is. There are schools doing these types of things in firt and second grade. In todays day and age, Computer Science and programming are the new handwriting. We would we not start as early as possible.

  9. Laura says:

    I teach Scratch in 8th grade and I'm about to move that back to 7th.  I've even showed Scratch to 2nd graders.  We may not teach calculus to 7th graders, but teach them math.  IN fact, we start teaching most subjects in Kindergarten.  Surely, there are programming concepts and programs simple enough for younger kids to grasp.  And as someone else said, if they can retain the logic of programming by the time they get into HS, that's a huge plus.

  10. doug_eike says:

    I have no doubt that students can absorb selected elements of computer science at remarkably early ages.  Although it's true that they learn geometry later, students draw and color triangles, circles, squares, and other shapes in preschool.  Seven year olds may not be able to grasp the concept of a loop, but they certainly can become familiar with some simple principles, perhaps visual ones only, that will contribute to their computer-science abilities later. Thanks for the insights.

  11. Kris Pepper says:

    Students learn by playing. In Middle School, students have a great interest in the computer. Redirecting them from playing video games to designing programs is takes great advantage of their time and motivation at that age. Even if they only learn the concept of a variable and decision making, it is helpful when I later teach them in college. Sometimes students do not seem to get much out of it, but I never see it as a negative. I see it only as a plus.

  12. Age is matter for learning new? Students in young age are quick learners, they just need opportunity. Recently I have gone through Sugata Mitra's (Education scientist) speach in TED ,…/sugata_mitra_the_child_driven_education.html

    , he has proved this theory in my opinion. I would say teaching computers should start as early as 2nd grade but in steps.

  13. pcgeek86 says:

    I started doing some automation work when I was 18. I think the earlier you start them, the better chance they have to succeed. Think of it like an investment — the more time you give it to grow, the better.


    Trevor Sullivan

Skip to main content