Getting Computer Science Into Middle School

My two girls finished middle school without ever learning how to write a single line of code. My son will finish middle school this year and he will be different because several years ago, we connected him with an ITP graduate who has taught him programming and also UX and UI design. But if we had left it to our middle school, he'd be in the same camp as my daughters.

This isn't entirely the fault of the school my kids go to. I've asked around and computer science classes in middle school are not very common.

That's wrong. 

We continue to teach our kids French but we don't teach them Ruby On Rails. Which do you think will help them more in the coming years?

The NY Times has a story this morning about this subject. Here's a quote from that article from Janice C. Cuny, a program director at the National Science Foundation:

Today, introductory courses in computer science are too often focused merely on teaching students to use software like word processing and spreadsheet programs. The Advanced Placement curriculum concentrates narrowly on programming. We’re not showing and teaching kids the magic of computing.

Introductory courses in programming should not happen in high school anyway. They should happen in middle school, around sixth grade. And they should allow kids to write software and make things happen with code.

I remember the first time I wrote some code, hit compile, then run, and the computer did something I had instructed it to do. It was as Janice says "magic". I was smitten and have remained so almost forty years later.

If the Obama administration wants to really do something about jobs and retooling America for the 21st century, it would fund the development of great middle school programming curriculum. It would fund training teachers to teach that curriculum. It would get millions of kids writing code before they have their first date. That would change a lot of things.

#VC & Technology

Comments (Archived):

  1. Jernej

    But on the other hand some people just couldn’t care less about writing code, will never even attempt looking at it and would prefer a course in art history or french (purely an example). The point I’m trying to make is that you could make a case for every subject imaginable, not just programming.The fact you’d like to raise your kids the tech/geek way is of course valid and understandable given your own interests but there are so many people with directly opposing interests that a public education system just cannot cater to them all. That’s why you take education in your own hands when and where needed.

    1. reece

      True, but I think Fred is saying that programming skills are becoming so valuable that they should be a basic subject.You can argue that some students couldn’t care less about ______________ (Math, English, History), but they are important building blocks for a well-rounded education.There’s a case to be made that programming should be taught as part of a core curriculum.

      1. fredwilson

        yupthat was what i was sayingobviously not particularly well

        1. reece

          I guess you were writing code when you should’ve been writing essays. πŸ˜‰

          1. fredwilson

            Ouch! But true. I’m self taught as a writer of words (code too)

          2. ShanaC

            best method for teaching thineself, because even in schools, you still end up teaching yourself quite a lot. (Fortunately or unfortunately)

    2. kidmercury

      i agree 100%. not everyone needs to be an engineer, and i agree a case could be made for every other subject. ask a person passionate about religion, they will tell you religion must be a part of education (hence the abundance of private schools with a religious component). what if people were taught about similarities between ancient religions, or history….there are lots of types of education that could change your life.but fred do you really believe obama is going to solve this problem….do you think it is his responsibility in the legal framework of the united states to solve this problem…..the real issue is that you have hte opportunity to give your kids the education that you think is best for them. private tutoring, some private schooling, and whatever else you and your family decide. why doesn’t everyone have this same opportunity? the main reason is economics; people can’t afford to take education in their own hands, because government is constantly robbing them, transferring wealth from lower classes to higher ones through money supply manipulation and monopolistic legislation. the fact that government is so excessively involved in the education market also hinders opportunities for free market solutions.

      1. Nick Oliva

        I have to agree with you. Not only is it not something for government to push, but there are no teachers that do it well. They teach programing in rigid, engineered, regimented ways that take much of the fun out of it. They set false metrics on which to measure results because they have no practial coding knowledge.No, it’s for interested philanthropists to fund courses where real-world programmers that have years of experience developing and mentoring others do the teaching… kids could take those as electives and everyone’s interests would be aligned. All the government has to do is create a program to allow these real-world (as opposed to ‘religion’ and every other idealogy) people to teach.The situation Fred describes where teachers are transformed into programmers is scary.

      2. marko

        Kid, I agree with you on most things but public education is definitely not one of them. We will all be impacted by the education that the next generation receives. I think there is huge common benefit in doing everything we can to ensure every kid has equal opportunity and starts on an equal footing to get the basics. And I think public education is the best framework doing this. I happily pay taxes for this. The benefits are exponential.And to stir the pot…..I think teachers contribute as much to our economy as bankers, so why do they make such a small fraction of the salary? πŸ™‚

        1. Aviah Laor

          well said. and CS/programming skills will also serve as great mobility tools. With these skills the road to decent income is shorter “teachers contribute as much as bankers” – you can insult the teachers!

          1. marko

            LOL. no insult intended πŸ™‚ …..just raising the issue of salary versus economic contribution….ideally there is some correlation….

          2. Aviah Laor

            Contribution is out. Bankers are getting paid according to their marginal… damage πŸ˜€

        2. kidmercury

          if public school was so great how come anyone with money sends their kids to private school…..public schools, like any govt service, are last to innovate, which is why fred needs to send his kid to a private tutor (and he already sends them to a private school, which shows how much govt regulation has slowed down private schools as well,….can you imagine how slow it must be at public schools, lol, thank god for the internet)also, because it is a govt run operation, public indoctrination camps (aka schools) are going to have a version of history that is very favorable to government. so they go to school, get their pro government education, then come home and watch football, to see ads for joining the military. if you tell these people 9/11 was an inside job, first they will hate you, then they will laugh at you…..this is because of how they were educated

          1. kenberger

            Totally true: my nephews are about 10 years old and go to some of the finest public schools in Westchester– among the wealthiest areas in the country. They felt “bored”. Now they’re switching to private schools and taking Mandarin, etc.

          2. marko

            china’s communist elite get preferential education to rule uneducated masses

          3. marko

            i hear ya….choice is good, room for improvement in public institutions, gov’t has an agenda, etc. I just think that things like private schools, private health-care, suburbia/innercity and increasing wealth disparity inevitably lead to divisions, classes, and hierarchy. These are the factors that caused the british empire to fade and be replaced by US ‘flat is good’ democracy. I love the line from Mark Twain, “History doesn’t repeat itself, but it rhymes” πŸ™‚ But this is a side rant….don’t want to to take attention from the main post….More CS into the school system is a great initiative!Fred for governor!

          4. karpov

            Fred, if you don’t mind. How much did you spend (as a benchmark) for your private tuition for daughters/son in computer science?

        3. fredwilson

          Its ok to disagree with the kid. I do it all the time. But he does make me think

          1. marko

            thats the reason we’re all here….wouldn’t be any fun if everyone just pressed the ‘like’ button and moved on πŸ™‚

    3. jimlindstrom

      Your point is well taken. Still, I think you can make a strong case that for most people, a basic comp sci course is more useful than a geometry course. Even for non-engineers, the amount of data now in the workplace incredible. The ability of people to manipulate that in {insert your favorite scripting language} or even VBA in Excel is a critical skill that probably surpasses conic sections and arctangents for most people.

      1. Henry Yates

        I agree – learning how to manipulate data should be in a core curriculum. That way students will get an invaluable skill AND get an insight into programming. I would add this to a Maths module – I would guess that creating a new compulsory subject called Computer Science would be 1. hard to get people to agree with and 2. be less successful (I realise Fred was not implying that this is what the government should do)

      2. JBalloonist

        I could not agree more. When I was in high school my dad told me I should major in something related to computers. I wish I had listened to him. What happened? I majored in accounting but am doing more with manipulating data and writing SQL queries than I am doing strictly accounting work.

      3. fredwilson

        Every time I help my kids with geometry, particulalry arcane geometry, I think the same thing

        1. ShanaC

          I loved geometry, and actually if taught well (I took the old NY Regents 1, 2, 3 system if anyone is familiar with that here) should introduce elements of proof style thinking. Which was interesting. I got confused when I took calculus in high school and they skipped all the rigorous definitions of proofs. It’s about learning to think abstractly across medium…You can totally see the difference in kids who can and who can’t.

      4. JLM

        Geometry and computer science are not in competition with each other. Both are important. The way to skillfully deliver the lesson does not have to simply be the classroom.I was a pretty good sailor before I studied engineering and I was a great sailor after I studied engineering.You do not have to know how to build an airplane to learn to fly an airplane. It is very, very helpful to know something about aerodynamics.Excel, like an airplane, is simply a tool to get you from point A to point B. Point B is where the pay window is located.

      5. GiordanoBC

        True, but this assumes that the role of middle school is to prepare students for the workplace. It isn’t: it’s to prepare them to be indipendent thinkers and human beings

        1. JLM

          While I agree completely as it relates to middle school, there comes a time that education should be preparation for life. Practical preparation.Just a bit of focus on becoming an independent, critical thinker does not exclude the ability to also focus on becoming a well rounded citizen — gainfully employed, taxpayer and participant in our democracy.

        1. fredwilson

          thanks!

    4. Aviah Laor

      very few topics can tool you with problem solving skills, systematic thinking and problems breakdown like programming. And it could be fun two, kids can program a game or something nice. You can build nice fairy websites as a final project:If (sleeping_beauty==asleep) : kiss(prince,1)else: prepare_marrige()return happily_ever_after;

      1. fredwilson

        Games are a natural way to do this

    5. ShanaC

      Fine for the art history majors, they still need to study and understand this piece:http://wwwwwwwww.jodi.org/Which was and still is revolutionary for its time. It’s not about code, it’s about thinking abstractly in different ways.

    6. JLM

      When you go to your 35th college reunion, you will find that the guys who have had the most “healthy” success were B+ students in mildly technical subjects, could get along with people, engaged in something competitive (sports, student government, etc.) and were leaders.Any talent they did not possess, they hired.They all had a identifiable thick vein of integrity, honesty and personality.They all had a bit of “IQ” but they also had more than a single portion of “I Will”.

      1. fredwilson

        i’ve never been to a reunion and will never go. i don’t look back.

        1. JLM

          Hmmm, you went to MIT and Wharton and would not go to a class reunion? We may need to get you to the therapist’s couch. There is something afoot there.While I suspect my personal experience having gone to a military school is probably more of a personal bonding experience, I am very surprised that your natural curiosity would not propel you to attend a reunion. Actually, I am floored.I often find myself continuing conversations which ended 20 years ago. Of course, trade school grads are very, very close because of the prison bonding experience.As to not looking back, that is simply not true given your many thoughtful observations about the legacy and history of the things you have written about in this blog. That is simple wisdom. And you have more than a bit of it.Having said that, give it a whirl and see what happens. It’s fun.

      2. karpov

        “thick vein of integrity, honesty and personality.”Like all our congressmen? Like our lobbyists? Like our Leaders? Everyone toe-ing the line for the system. I wish i could laugh all the way to the bank. Please don’t start propoganda on us..this is the self palliative that works for you..great. (as in I AM integral, I AM honest therefore I am successful etc ),Please Leave all of reality out of it.

        1. karpov

          all the integral honest hard working people who busy with daily chores, acquiesced into a convenient foreign war in Iraq? boming the hell out of 2M+ middle class civilians into regugees for no reason at all…the list is endless.

          1. JLM

            Okaaaaay? Sure, Karp, I don’t quite get what you are talking about but what the heck, Merry Christmas! Foreign wars, bombing, refugees — maybe you are looking for another blog? That reading comprehension bedevilment?Merry Christmas, Karp.

          2. karpov

            merry xmas.

        2. JLM

          Karp, babe, I was speaking of, ahh, real people. People that I actually went to school with and no, there were no Congressmen (a couple of State reps) or lobbyists. I was not speaking of the world at large or our President or the Congress. Focus on that reading comprehension a bit more tightly.And, yes, in my real world, integrity, honesty and personality have, in fact, been important elements in the attainment of success.And, Karp, Merry Christmas!

  2. reece

    Solid point.Most of my computer skills were self-taught and dependent upon access to new hardware/software. I wish I could’ve studied programming at an earlier age.Still, French was great for meeting girls. πŸ˜‰

    1. Farhan Lalji

      +1I taught myself while in University studying health. As a Canadian I was forced French – which is coming in handy now that we’re living in Switzerland.But man, basic programming would have been more useful over the last 10 years.

    2. ShanaC

      I would not be super-impressed with the French. Most impressive thing I’ve seen recently are some friend’s offices (grad students in Mathematics) Big equations up to the sky….

  3. David Smuts

    Fred you are just SO RIGHT about this. I commented on this to DaveinHackensack in your last posting.

  4. Aviah Laor

    A great idea, Fred. I never fully realized that: a “computer language” is now, literally, a “language”.But question is how schools can attract great coders to teach, when they can make much more $$$ as developers.BTW, it’s especially important for little girls. It’s a known fact, and experienced personally. It seems they loose interest in math too soon, on 1-2 grade. see http://www.girlsgotech.org

    1. fredwilson

      maybe we should teach teachers to code instead of teaching coders to teach

      1. Aviah Laor

        Funny. It didn’t occur to me. Stereotypes are tough to beat.

      2. CJ Westerberg

        One of the best lines today. Until we do this, everything else will be sneaky curriculum.

      3. MikeSchinkel

        That’s exactly what I was going to say! You can’t get students to learn unless the teachers can guide them (somehow, at least.)Ignore the government, what can we do to teach the teachers to code? A program that teaches teachers during the summer how to code things that would interest them greatly? Not sure what that would be exactly (never been a middle school teacher) but if we can get them excited it will translate to the kids.What can we do without waiting on the government?

  5. Aviah Laor

    and this can be a pivot move into problem-solving education in other areas as well

    1. Nick Giglia

      That’s true, but the whole linchpin of this will be teachers. In high school, I remember computer class as being a “throwaway” taught by whomever they could dig up. I was advanced for my age, sure, but there was no way I should have understood Excel and PowerPoint better than the teacher. I completely support your argument, but the only way to get there is to begin with fundamentally changing the idea of what it means to be a teacher and how a teacher is trained.

      1. Aviah Laor

        True.For reasons i don’t understand teachers are relatively low compensated sector, so it’s hard to attract the best people. Maybe to open schools to professionals who are not teachers, but are willing to give one day a week teaching while keeping their more profitable day job.

  6. CJ

    Programmers in my age group cut their teeth on Basic and Commodore 64 coding when they were in the 6th grade age group and that generation grew up to become the rock star programmers of today. While computer programming might not be for everyone, there is no better way to understand technology than to participate in creating it. Computer classes at all levels are woefully inadequate and it does the nation a disservice as we try to maintain our lead in information technology, we would do well to expose our kids to more of the nuts and bolts at an earlier age.

    1. Aviah Laor

      Sinclair spectrum. 16K RAM. 8bit 8Mhz CPU. To draw you poked bytes directly into the screen card memory in Assembler. I worked on the summer to buy a 48K RAM extension, getting whopping 64K RAM.

  7. Farhan Lalji

    Fred, do your girls feel like they missed out?

    1. fredwilson

      No they do not. But I do

      1. ShanaC

        Girls it’s harder. I disliked computers for a very long time. I’m not super-macho, and yes computers can be super-macho.I had to find a way to make them my own in my own mediums. I really want to and am looking forward to the quiet time needed to really learn coding (I’m thinking ruby and javascript and continuing on with the processing when I need to think how to do something, since you can see…): I know already that it has to be through me and my desires, which are not the same as my guy friends.Defintiely makes it harder. The best thing to do is to introduce all the alter-ego coding examples and let them experiment with coding on their terms. (Node-box for example http://nodebox.net/code/ind… Or processinghttp://processing.org/)It’s an abstract material like any other- just got to show them the way.

  8. ErikSchwartz

    My oldest daughter Ellie is now almost 8. She and I have been doing little exercises in Python since she learned to read a few years ago. The goal is not to turn her into a computer scientist (she wants to be either a ballet dancer or a fairy), the goal is that she understand what computers are. That they are merely machines, that follow a set of rules that people give them.Hypercard was brilliant for the level of CS that kids need to be able to understand what it is computers are. It was verbose and not arcane in syntax. Apple killing hypercard was a sad day for education. I think I have finally found a replacement for it in RunRev, which is another verbose high level language.

    1. fredwilson

      If all parents were like you erikSuch a good point about understanding not necessarily mastering

  9. David NoΓ«l

    Ha! I tweeted this 2 weeks ago:”Simple lines of code can change the world. Learning to code should be taught in every classroom.”http://twitter.com/David/status/6500326921I followed up with a short post titled Code vs. Mathshttp://david-noel.com/post/…Coding generates immediate results, encourages analytical thinking and drives creativity. Plus, it’s fun to mess around with. Isn’t this what school should be about?

    1. fredwilson

      Just like finding new music. You are way ahead of me

      1. David NoΓ«l

        Join the early fun, this album will be huge next year: Danger Mouse and Jim Mercer from The Shins: http://david-noel.com/post/

        1. fredwilson

          Oooh. That sounds great

    1. fredwilson

      What can I do to help?

  10. Nick Giglia

    Right on, Fred. I’ve always been an architecture guy so I now find myself scrambling to get an idea of coding as we move forward. You will likely have many disinterested students who do it because it’s a requirement, but a) as others have said, you could say the same about English, History, or Math, and b) they will still come out learning skills they can apply to the real world in meaningful ways.On the whole, what do you think should make up the core of it? I’d have to imagine Java, Ruby, SQL, and VBA would have to form the basis of any knowledge a student should have by the time they graduate high school.

    1. fredwilson

      I’d start with a highly visual, high level language and use it to build games

      1. Nick Giglia

        I like that – can’t imagine building games wouldn’t appeal to the average middle schooler.

      2. ShanaC

        Processing then- it works with Ardunio (robots!!), and has an open source community and textbooks.It can do very simple things, it can do very complex things (JVM that allows you to do pixel by pixel editing if you so choose. I’ve found it in tests easier to lay fonts as a result)

  11. RichardF

    It’s the same here in the UK, Fred, it’s not even taught at our equivalent of high school unless you opt for it later on. It is bizarre given how pervasive technology is in our life that the basics of computer science are not taught.

  12. Doug Covey

    Certainly building blocks…we teach children handwriting and long division as the foundation and yet we type just about everything and use computers to crunch numbers. The base knowledge, appreciation and understanding of how things work is slowly becoming a lost art. According to a survey by the Computer Science Teachers Association “nationally, the portion of schools that offer an introductory computer science course has dropped from 78% in 2005 to 65% this year. Chris Stephenson, ED of NY Computer Science Teachers Association said “Their knowledge of technology is very broad but very shallow”. My apologies in advance for this analogy, seemed relevant….Do we need to work the farm and milk the cow before we drink? Not necessarily, but we do need to understand and appreciate the base foundation on what goes into getting the milk on the table. Starting at a younger age makes a lot of sense.

  13. steveplace

    Learning BASIC and LOGO in the 4th grade changed my life.

    1. fredwilson

      LOGO – that’s one of the best ways to learn to program

    2. ShanaC

      I remember writing one program in Logo in summer camp. It was how to draw with squares a circle. That was cool until you figure out how the program did it…Then it was boring. I still feel that way.

    3. jarid

      I was just about to post the same exact comment. And I went to a NYC public school in the 80s. It’s mind-boggling that we haven’t come much further since then.Even though I no longer write code on a daily basis, the foundation that computer science gave me – i.e. the ability to think logically, understand technical complexities, and use simple programming tools like SQL and Excel VBA – makes me a better and more productive MARKETER today.Lastly, here’s a great recent post from GeekDad about how easy it is to get kids interested in programming:http://www.wired.com/geekda

  14. Bill Davenport

    Fred, I totally agree with you. Tech is a big enough part of life and the economy that learning some code can at a minimum help our kids understand how things get built and for those kids that like coding can start them down a fruitful career path. Although I don’t code myself, I recall taking an after school class in either middle school or around early high school where we did some BASIC programming and then played some computer games.There are some great options to get this background up here in MA outside of middle school — the Museum of Science offers some programming classes and I’ve heard MIT also offers some help with “Scratch” which I’ve read is an excellent introductory programming language. But I do agree with you that tech is core enough that this should be taught to all middle school students, at least at a basic level.I’m actually thinking about teaching math/comp sci down the road. I think I’ve got at least one other startup left though and have to improve my own skills and education before doing so.P.S. — Just tried using Facebook Connect to post this comment, didn’t seem to be working for me.

    1. fredwilson

      Sorry to hear about fb connect fail. I’ll make sure disqus sees thisTurning to teaching after doing startups seems like a great idea

  15. Jessica

    aauugh this is SO TRUE. And once the college engineering classes start, there’s always a huge disparity between who has programmed from an early age and who hasn’t. I definitely wish I had exposure to programming in junior high instead of immediately getting slammed with Java as a college freshman. I feel like programming is one of those things that needs piece meal introductions, so that it becomes this intuitive language. Maybe it’s just me, but I was so frustrated with it in the beginning, because it seemed SO FOREIGN, but I stuck it out and really enjoyed it by the time data structures rolled around.

  16. Chris

    Perhaps someday (and the Internet is making that day closer) we’ll have *private* competing schools. When a private company sees a high demand, or profitable opportunity, they jump all over it. Public schools have no such incentives. They can’t.When a private school sees that parents (and students) demand certain areas of study, they trip over themselves to provide it at the cheapest price.Neither the Obama administration, nor *any* administration for that matter, is ever put to the market test. The results are always the same.

    1. fredwilson

      Private schools are missing this oppty too unfortunately

  17. Saifi Khan

    Learning computers is not about ‘getting on the internet’ or ‘hanging around on some social networking site’.A good introduction to computing helps students understand stuff like assignment, storage, sorting, comparison, permutation and general algorithmic aspects that represent mathematics.i suspect that apathy towards computing and mathematics is part of a larger cultural problem.Is there a “American Idol” winner who is awesome at computing and mathematics ?thanksSaifi Khan.

    1. fredwilson

      Yup. Mark Zuckerberg

  18. Druce

    Computer science is a liberal art… makes you think about what is a problem, what is the connection between a problem and the way you express it, how do you think about solving problems.I wouldn’t teach them a framework like Ruby on Rails because it’s useful, but rather a programming language that’s designed for understanding algorithms and data structures (without needing to know what those are). At one time Logo was favored, maybe there’s something better – something graphical with a one-line ‘Hello World.’In olden times there was a hierarchy that started with math->physics (use math to describe physical world) -> chemistry (use physics to explain properties of matter -> biology (use chemistry to explain living organisms)now it looks more like information theory (what useful statements can be made/transmitted) -> computer science (what problems/processes can be described/solved) -> math (formal systems)There are always people who couldn’t care less about art/French/math/music/poetry. But that’s not a reason not to expose people who wanted to be educated to those subjects.

  19. rikin

    Agreed, just like shop class or home-ec, computer science needs to be integrated into our curriculum at an early age. But I think what’s even more disappointing than middle school level education is the lack of emphasis on the topic in highschool and even university.If you’re studying business, especially marketing, programming and design should be integral components of your course work. I studied marketing and only took one class on computer science, again mostly focused on Excel and Word. When they did get to teaching HTML, the teacher had such rudimentary knowledge of the language that we ended up creating sites that looked like they were from 1995. If she had only gone further and taught us about design in Illustrator or Photoshop and thrown in some CSS on top, we would have all known that we could create true websites.

    1. ErikSchwartz

      I don’t think they teach shop or home-ec anymore either.

      1. falicon

        sadly teaching less appears to be the trend these days…they start the kids earlier and earlier, but they expose them to less and less…even things like gym and music are getting cut (or drastically reduced) in many schools these days…Right now the education system seems to be stuck in the middle (a horrible place to be)…I feel like they should either kick it up a notch and expose kids to everything…or repurpose themselves and get more into the ‘apprentice’ paths of yesteryears where kids can still be exposed to various things, but have a more detailed path of focus starting much earlier than college…Given a choice for my own kids, I’m leaning towards more exposure…try more things…focus on ‘learning to learn’ than ‘learning a topic’…and have as much fun as possible of course πŸ˜‰

      2. ShanaC

        Sadly, I know people who need home ec. Home banking and personal finance…and how to mend a hem might be something more people need.

    2. ShanaC

      I dislike CSS, I always leave that for last…And teaching design is complicated. Really complicated. Both art and design most recently came from the Bauhaus. The most basic exercise for both is to draw pages of lines. That how you learn about markings and how they interact on a page. We haven’t reached that point in computing at all yet.

      1. MikeSchinkel

        Wow, I couldn’t agree more. Methinks CSS was designed by the decedents of those who designed the Iron Maiden.

  20. sweller

    My wife is a middle school teacher and I had the opportunity to observe her school’s computer class once. It was essentially a how-to class for using web browsers and word processors. Also, keeping kids attention at his age is like herding cats, which is another challenge all within itself. ;)@Jernej — I think this is less about raising kids the “tech geek” way — it’s more about introducing and exposing our kids to specific concepts early enough so that they become the foundation for other things.Fred, here is what would change a lot of things — I believe that 6th graders should be preparing for internships during junior high and that the earliest part of a high school experience should involve real-world work in an area of interest for the student. 50% classroom time, 50% application in the real world.

    1. fredwilson

      More exposure to the real world in middle school sure seems like a good idea to me

  21. LIAD

    10 print I ROCK20 goto 10 – the sum total of my coding ability – but when that page filled up with text – boy i felt cool!Fred – when are you going to give up this VC lark and run for Public Office?

    1. fredwilson

      I’m unelectableI hang up on important people πŸ™‚

      1. marko

        whether the medium is public office or venture or whatever……thanks for facilitating the important issues…..you have a knack (and stamina) for rallying a diverse group of people…

      2. JLM

        Actually, in NY, wouldn’t you have to step up your game a bit with the hookers, ho’s, escorts, porn stars and VIP hostesses? You have some ground to cover on Gov Spit, no?

    2. Sebastian Wain

      LIAD, you forgot the quotes πŸ™‚

  22. ryan singer

    All types of language are important; but Vocal and Code are important at different stages in life…Learning vocal languages should happen at very early stages (toddler and infant) and this will actually help children more able to quickly pick up code later on.. As a young child I was fortunate enough to be taught spanish. When I was in middle school it was mandatory and that was 24 years ago.. Like learning a language, learning code in middle school helps brain development and will they will benefit later in life by being able to make relational connections in more advance fields such as architecture and science, etc. As I type this I’m watching my toddler put together a large puzzle on his own and it’s pretty amazing. Everything helps development, even TV (but it should all be in balance).

    1. fredwilson

      I agree completely ryan

  23. Matt Edgar

    Great post, and not limited to the USA. I ran a discussion at Barcamp Leeds on the subject but the most persuasive argument comes from my seven-year-old son who said, β€œIt’s good because you can boss the computer around.” http://wp.me/p1bV4-9Z

    1. fredwilson

      I love that line. He’s a genius

  24. WayneMulligan

    Amen to that! Nothing like writing your first piece of code and “pulling back the curtain on Oz”. All of a sudden you can directly manipulate and have an influence on an environment you use every day — it’s a powerful thing. But if the public sector isn’t gonna do it, do I smell a business opportunity πŸ˜‰

  25. Kevin

    I’m curious if there are any educators in the reading audience and what their take on it is. I think that most teachers tend not to gravitate to or understand coding well. Most admins were likely teachers when they started off so probably fall in the same camp. As a result there may not be enough understanding of the significance of this in a curriculum. Perhaps I am over-generalizing; and if so my apologies. A more systematic strategy like what was suggested by Fred probably makes sense since it seems to me like it is unlikely for this to gain traction naturally within the teaching/education community.

  26. Isaac Sacolick

    My middle school had Commodore Vic 20’s and we learned basic programming. In fact, I helped teach the class at times. There is no reason – including funding – that prevents schools from teaching this curriculum.

  27. paulmartin42

    From over here in UK the teaching of CS has had a BBCbrilliant history, robotics indeed is still in there but otherwise there seems to be a similar stall in light of the panoply of politically pushed alternatives (green thru citizenship etc). I reckon that the problem lies in the pace of change which some teacher’s find in their isolation difficult to cope with, after all geometry has been around for thousands of years.

  28. falicon

    Being a ‘programmer’ myself I’m pretty passionate about this subject as well…but I think a traditional computer science program isn’t quite right for kids…and even a specific language won’t help that much…I mean personally it would be neat to have my kids get the choice of French, Spanish, Ruby, Python, Perl, etc. as elective but it’s really the logic and the form that I think they need exposure to.To me, kids really need a “Computer Logic” class…teach them the core concepts of programming like loops, conditionals, objects, classes, bits, bytes, etc. Tie it to the math classes as much as possible to show them just how important math really is in the ‘real’ world…and to make it fun for the kids, tie it to video games too (showing them just how much all the skills they are learning in school including English, Math, History, etc. are really needed to develop those games they love so much).Just my two cents…

    1. fredwilson

      Great points

  29. Robert Stewart

    Timely post for me. Yesterday, while shoveling a foot of snow off my driveway, I listened to this hour long key note talk titled “The Importance of Programming Literacy” by Robert Lefkowitz at PyCon 2007:http://advocacy.python.org/…I also recommend reading the preface to The Structure and Interpretation of Computer Programs, a classic MIT textbook that was used as the introductory text for Computer Science majors, from which I quote:”First, we want to establish the idea that a computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute.””We control complexity by building abstractions that hide details when appropriate.””Underlying our approach to this subject is our conviction that ‘computer science’ is not a science and that its significance has little to do with computers. The computer revolution is a revolution in the way we think and in the way we express what we think. The essence of this change is the emergence of what might best be called procedural epistemology — the study of the structure of knowledge from an imperative point of view, as opposed to the more declarative point of view taken by classical mathematical subjects. Mathematics provides a framework for dealing precisely with notions of ‘what is.’ Computation provides a framework for dealing precisely with notions of ‘how to.'”http://mitpress.mit.edu/sic…

    1. fredwilson

      Great stuff. I really like the notion that programming is more at than science

    2. ShanaC

      That’s true of any abstraction. One of the failures of not teaching any of these sorts of disciplines is teaching how they intersect. If you can’t teach how to think abstractly in any field, you are failing students.Just saying.

  30. anon

    Come on. Computer science != programming.Teaching ROR to high schoolers would not be smart because very possibly by the time they get out of HS ROR will be obsolete. What they do need to teach is _computer science_ and real math. Real calculus and linear algebra with actual proofs (many high schoolers can derive and integrate, yet I bet none of them know the epsilon delta definition of a limit, and none of them have ever seen the proof for the fundamental theorem of calculus.) And discrete math (+complexity), algorithms (CLRS), and more basic and interesting programming languages (scheme, python…).-a 17 year old who dropped out of HS to get a degree in CS.

    1. ErikSchwartz

      From my experience trying to hire engineers lots of universities don’t understand that computer science != programming either.

  31. Ezra Fischer

    By the time my brother and I were in middle school, he was spending hours coding at school… writing machine language on pads of graph paper when he should have been paying attention to the teacher! My time was spent more on world domination in the original Civilization computer game. Ironically, now I’m the tech-worker and he’s a musician. Computer-science would be great in schools, but don’t get rid of wood-shop! School should be about exploring and encouraging interests first and foremost regardless of whether they are practical or not!

  32. Niyi

    My fellow community members,I have a slightly different view on this matter. I’m not sure programming should be a required module in US middle schools. Offering it as an optional module is perfectly fine.Reasons:1. It is an increasingly commoditized discipline, and one in which the US doesn’t have a comparative advantage anymore. According to the Economist Intelligence Unit, there are almost 1mm new engineering graduates emerging in India and China annually, compared to about 70,000 in the US. Sure you can argue that the quality of education is higher in the latter, but that gap will eventually and inevitably close.2. Frankly, there is more upside in the classic sciences (Physics, Chemistry, Biology) and consequently finding a cure for the uncurables (cancer, Alzheimers, HIV etc), genetics, creating fuel efficient solutions etc.I believe it is more important to focus on solutions that can literally change the world and give the US a long term sustainable advantage.Programming is becoming one big red ocean.Note: I graduated magna cum laude in Computer Science and Maths from a top British university so I’m not biased against it.

    1. Matt Mireles

      You’re missing the point. The goal of early computer science education is not to become a nation of commoditized programming peon, but to have a deep understanding of how computers works. It’s the same reason we teach people how to read literature and write reasearch papers––not so they can all become writers or academics, but because they need to know how to communicate verbally on a page.Think much more cool shit would exist today if twice as many Americans had even rudimentary programming skills.

      1. Niyi

        Fair point – I can’t say I disagree with you.I spend a lot of time in Africa and I guess it has changed my perspective onwhat is “cool”.I think it’ll be a lot cooler if we had more brains with rudimentary (orbetter) knowledge of biology, chemistry and physics. Frankly, those subjectsare considered unsexy and I think we are worse off because of that.

    2. kidmercury

      most of the uncurables have cures, they are just suppressed. more money to be made keeping people alive and addicted to drugs.

      1. Niyi

        πŸ™‚ How’s that for a conspiracy theory..Love it

  33. Shripriya

    My dad did the same thing. He had an engineering grad student come in and teach me and my brother programming. I was 12 and my brother was 10 and back then it was BASIC, but still… One of the most useful things he did!

    1. fredwilson

      Whatever your dad did worked shri. You and your siblings are an impressive bunch

  34. Siminoff

    I can not tell you how often I am asked if I know a good Ruby guy, my response always is “if I know a good ruby guy I hire them”.You are so right, unemployment right now with programmers is probably -5%, just as much as we need stimulus we also need some retooling.

  35. Guest

    This is of course true, but I don’t think its as easy as the author makes it sound. To get the right kind of programming talent to teach these courses is not easy if possible at all right now. Good programmers, especially the kind that are able to teach, are facing an incentive structure which makes it an order of magnitude more attractive to work in the private sector.As to your political angle, we can’t even agree to treat our sick people in this country. Spending increases on education are going to be a tough political fight without any lobbyists on the right side. Its a shame, really, because think of how many programmer/teachers some minor cuts to our massive military budget could support.

  36. sigmaalgebra

    US K-12 is essentially just babysitting.If you want your kids actually to learn something, then guide them in some mostly independent study, send them to a good private school, or home school them. Learn calculus? Take freshman calculus at, say, Courant. Good grief: Calculus at Courant! Fantastic! Stochastic processes? Varadhan’s right there. Music? Learning to play the Bach ‘Chaconne’ should keep them busy for a while, and Juilliard is right up the street. Use a computer both to help in composing music and then performing it? Wish I had time for that.What is it about babysitting that’s difficult to understand? Just because it is a gigantic waste of time during the kids’ best learning years, a gigantic waste of money for our society, a gigantic degenerate, degrading, destructive, cultural cesspool, what’s not to like? You did K-12. I did K-12. You expected something else?Generally kids are just fantastic at learning at the knees of their parents. Sooooo, if you ran a deli, you’d know what to do! Yes, I wish my father had run a deli. For a VC firm, still, maybe you could have them in the office occasionally. Uh, bet your daughters would be fantastic at handling phone calls, e.g., “Please hold for Mr. Wilson”! Or, calling Le Cirque, “This is the office of Mr. Wilson calling for reservations for two at 8 this evening.”Once my wife enjoyed doing that: We both got good Ph.D. degrees; I wanted us to go to Lutece when A. Soltner was running it; so she played secretary and called for “Reservations for The Drs. …”! NO WAY did she want to be a secretary, but she played Mama in ‘I Remember Mama’, loved the theater, and was a good actress, so enjoyed playing secretary! I don’t know if Lutece was difficult to get into, but her effort worked. We had a good Corton. Soltner came to the table; nice guy. Good food.”… writing code before they have their first date. That would change a lot of things.” Yup, definitely spoken like a father with two daughters! You mean you didn’t like the movie ‘Mean Girls’? Uh, not nearly new, “idle hands do devil’s work”. So, keep them busy, say in the business. What is it about business too difficult for middle school girls!!!! College girls I can understand, but not middle school!

  37. Alan Shimel

    Fred, my son is going into middle school next year down here in Boca Raton. So this is something we have been looking at ourselves. Happy and surprised to report that down here at least, the school system has responded and we have an excellent program around computer science for middle schoolers. I have written more about it with links to the school curriculum, etc. at my blog at http://www.ashimmy.com/2009/12/computer-science

    1. fredwilson

      Wow. I’m jealous. Your school is to be commended

    2. fredwilson

      Wow. I’m jealous. Your school is to be commended

  38. maverickny

    There were no computers in high school for me or my brother 30 years ago either, but we learned to program games in Basic on a ZX Spectrum connected to the telly. It was awesome fun getting the thing play Pacman on the telly and learn to change colours etc. It’s probably why I went into science – curiousity killed the cat. The way to get kids involved and attentive is teach them to code games and be able to play with them.There was a huge difference at college between those who understood the basic concepts of code and those who didn’t. It’s stood me in good stead ever since, although sadly I stopped at Fortran and Basic – this post reminds me that maybe it’s time to get back on track an learn ROR and CSS.That said, I’m surprised that the school situation hasn’t changed in these modern times. We had a choice at 14 of doing science, liberal arts or languages; computing is an essential skill that could at least be offered as a choice.

  39. maxkalehoff

    Why middle school? Why not preschool? I have a 1.5 year-old and a 3 year-old. How can I get them started? I build mechanical things with my kids already, but don’t feel equipped to teach them code. (My strength is the written word, with enough background in statistics and computers to be dangerous, and I self-taught myself some computer programming.)

    1. fredwilson

      You can and you should

  40. BmoreWire

    It’s basically the typing course that people like me had to take in the 80’s. Foundation building.

  41. marko

    “We continue to teach our kids French but we don’t teach them Ruby On Rails. Which do you think will help them more in the coming years?”Couldn’t agree more. And its not that foreign languages are less important than coding….just that they should be seen in the same light. They are both about learning tools that broaden possibilities for communication and self-expression. Ex. when myspace opened up the ability to customize your page….it seemed like overnight, large portions of that generation had an incentive to learn the basics. So why not bring that dynamic into the classroom….

    1. fredwilson

      Exactly. The myspace point is so illustrative

  42. Jason L. Baptiste

    This is really important and I’m glad you’re giving it some attention. I was lucky. At the age of 4, my dad taught me some basic computer skills+CS and from then on I was hooked. I’m pretty sure that’s the foundation for a lot of what I do today. Now he volunteers time to teach courses to less privileged kids basic CS programming, lego robotics,etc. Those kids now have an upper hand. Would an after school program be enough to get started or would it have to be an actual part of the curriculum?

    1. fredwilson

      After school would work fine but then its optional

  43. Matt Mireles

    Right fucking on!

  44. Rich2001

    Code and Music. One of the very few regrets I have is not learning ‘code’ when I was younger. The others I can’t mention here. Bravo.

  45. Chris Conrey

    Wow, right on and very awesome. Teaching kids development skills early in life can only be beneficial. I took plenty of classes in French and Spanish that allow me to remember how to ask for a beer or where the bathroom is. I remember and use much more of the concepts that I learned with code. Reforming tech education is going to be a huge challenge but one that we must undertake.

  46. geekstack

    I think a more general question is how many middle schools offer a meaningful choice of electives? I shudder to think what a mandatory CS class would consist of and how much it would make people hate, rather than be ignorant of, CS. However, if students had the choice of CS, music, foreign language, martial arts, shop, etc, even if for just one period, then kids could get a much better exposure to new material and do it in a class full of students that are also interested, and therefore more engaged.

  47. CJ Westerberg

    Agree with Fred for a host of reasons. However, changing curriculum within any school is a daunting task, whether private or public. (I serve on a private school board and to make significant changes in this arena, it has to happen organically by academe, unless it is a completely different animal by design, such as Katie Salen’s school).However, we played around with this idea to circumvent the politics, since we also think kids should be creating and not just consuming digital, and we posted this call-out idea here:http://www.thedailyriff.com…Hacking Education is also mentioned, and we think some smart people can make this idea happen and it could eventually filter into the mainstream.

  48. Jennifer McFadden

    So true…and timely. I have been kicking around an idea for the past month about developing a new type of Girl Scouts–one that focuses on science, math and technology rather than baking, textile arts, knot tying, etc. I think that there is something interesting that can be done by applying the One Laptop per Child concept to US inner city girls. If you provide them with the motivation by incorporating social and gaming concepts, and distribute or provide access to computers at an early age, you might be able to radically change their outlook. The same idea of female-focused economic development theories can be applied to the US. Imagine a new generation of inner-city girls empowered by the magic and potential of technology.

    1. fredwilson

      what a wonderful idea

      1. Jennifer McFadden

        Thanks. Plan on hashing it out in January–once I’m finished with my gig with Jarvis at newsinnovation.com. If you’re willing to provide feedback, I’ll shoot you a copy of the plan once I’ve put it together.

        1. fredwilson

          Pls send it to me when its finished

    2. CJ Westerberg

      You may want to check out http://berkeley.edu/news/me…Berk is working w/Girl Scouts for a summer program –

      1. Jennifer McFadden

        Thanks. I’ll check it out.Best,Jennifer

    3. MikeSchinkel

      Great idea Jennifer. I hope you run with it!

    4. Brian Dunbar

      one that focuses on science, math and technology rather than baking, textile arts, knot tying, etc.I can’t speak for Girl Scouts – I’ve not had a girl in that organization. The basics taught in the BSA program (first aid, pioneering, leadership skills, etc etc) can serve youth well. The confidence that comes of being able to do the basics well can be a foundation.Look: Take a kid who can patch up a victim, find his way in the woods, make a dry camp, build a tower with nothing but rope and logs, use a compass … that kid will have the confidence to do anything. Including master technology.May I suggest you look into the BSA Explorer program? In particular the high adventure posts are all that and a bag of cihps. It’s co-ed and the girls I’ve met who were in that program were self-reliant individuals.

      1. Jennifer McFadden

        I agree that there are some amazing benefits that come from participating in either the Girls or Boy Scouts. And, there are some programs embedded into these organizations that introduce girls to technology. The values that they teach–including volunteerism and leadership–are very important and they have been doing great work for a long time. However, GSA and other similar programs are not geared toward solving what I think is a critical issue–getting girls engaged in math/science at a young age. This is evidenced by the ratio of males/females in science-related fields today or, for that matter, pursuing entrepreneurial fields.There are a confluence of factors that can lead to interest at an early age and continued interest throughout high school/college/careers. Getting girls involved in sports is critical. Getting girls interested in the outdoors via programs offered by the GSA/BSA can play a role as well. And, programs implemented within these organizations can help. However, I don’t think that this is the core competency of these organizations. And, having spent a considerable amount of time in the non-profit sector, I realize how hard it is to take a long-standing, large organization like the GSA and try to move it in another direction.There are some interesting organizations out there doing variations on this–Science Club for Girls is a good example, as is CampInteractive in New York. But I haven’t come across any that are geared specifically to inner-city girls and that combine a few other elements that I’ve been kicking around.If anyone has other suggestions, I would love to hear them at [email protected]. Also, I’ll definitely take a look through all of the other thoughtful posts.Best,Jennifer

    5. Nils Hitze

      This is a brilliant idea, maybe you can start with a “Programming Language” like Alice http://alice.org

      1. Jennifer McFadden

        Nils,I’ve seen Alice–it is definitely on my radar. Any other suggestions would be welcome! I am in the middle of brainstorming and would love to hear other ideas.Best,Jennifer

        1. Nils Hitze

          Have you seen HappyNerds (http://www.happynerds.net) ?Only a small Toollist, i know, but quite usefull.2010/1/4 Disqus <>:

          1. Jennifer McFadden

            No. I’ll check it out. Here is an interesting post today about the effect that “tinkering” can have in turning girls into engineers.http://holykaw.alltop.com/w

          2. Nils Hitze

            Ah that sounds interesting, thanks for posting it

  49. Apreche

    The reason for this is simple.Who is capable of teaching real computer science to kids? People who know real computer science.People who know real computer science are rare, and expensive. Schools don’t have enough money to pay someone who can do it. Also, computer people tend to be very strong minded, and won’t put up with a lot of the beaurocratic BS that schools, especially public ones, force on them.My dream job would be to teach computer science to middle or high school students. The problem is that almost no school will allow me to do it in the manner I feel is best. Also, they don’t want a teacher who only teaches computer. They will force me to be a math or science teacher who only does computer science one or two periods per day. They also won’t pay me anywhere near enough money. I’d be willing to work for less, considering I get summers off, and the job is what I want so badly. Even accounting for that, the pay is still a pittance compared to what I can make actually using my computer skills as opposed to passing them on.And this is why the nerdy computer kids in schools are always smarter than all of the teachers and staff when it comes to technology.

    1. fredwilson

      Good points. But I still think we should try

  50. Jschwa

    I’ve been thinking that teaching our youth to code is essential to replacing the disappearing manufacturing jobs in the US. I wonder if those with bodily-kinesthetic Intelligence would thrive in programming which has been dominated by those with logical-mathematical intelligence. The challenge would be to create languages, frameworks, or ways of creating code that would appeal to kinesthetic learners.

  51. dave

    Programming is math in motion.

    1. fredwilson

      I’m reblogging this comment on tumblr as soon as I get to a computer

  52. david_sp

    Not that happy that my 4th grader learns Word and Powerpoint in her ‘Computer’ class…and my 7th grader at a ‘gifted’ NYC school hasn’t done much either. Agree that delving a bit more into some of the underlying aspects of computer technology, even real basic stuff, could be helpful down the road. It might even help them understand what all those hours based on their iPod Touch are based on!However, perhaps it’s not that different from my high school days…nothing remotely addressed. I ended up taking a ‘Basic’ class over the summer at a local college.

  53. Rob K

    Fred- Great post. With my oldest child only 2 years away from middle school, this is an area I should have been paying attention to (but have not been). For me, the object is broader than just writing code, it is the new embodiment of problem solving (puzzles, math, etc.)

  54. Orian Marx

    I became a programmer thanks to the incredible computer science program at Stuyvesant High School in lower Manhattan. The program was started by Mike Zamansky who is brilliant and his been diligently expanding the available of wide variety of computer science education at the school. If you ever want to talk to a teacher about this issue, he is a must.

    1. fredwilson

      If I just emailed him, would he reply to me?

      1. Orian Marx

        Absolutely! zamansky [at] stuy . edu

        1. fredwilson

          Thanks

      2. Seth Blank

        I can’t recommend Zamansky highly enough. Definitely reach out to him!He fought for, and got, intro CS to become a required course for all freshmen at Stuy. As a result, a whole world of students got introduced to and excited about CS.

  55. sigmaalgebra

    It’s fine to teach Ruby on Rails to middle school students.But, more generally, it’s too easy to see too much connection between (A) our K-12 and university systems and (B) the need for people in computing to learn Ruby on Rails, PHP, Python, HTML, CSS, C++, .NET, C#, SQL, SOAP, SMTP, SNMP, etc.Now that Intel is shipping 48 core processors, there will be a lot of new emphasis on Dijkstra ‘semaphores’, Hoare’s ‘communicating sequential processes’, maybe non-uniform memory architectures, processor cache considerations, communications on the edges of n-dimensional cubes, and maybe some new such topics. Microsoft has already admitted that .NET has some bugs in the concurrency logic and will have to do some revisions. Generally Microsoft has been working to get ready for 48, 80 or whatever core processors.Actually, in the US computer industry, for such software topics, mostly people are just self taught. That’s been the case for decades. You taught yourself? Of COURSE you did; so did nearly everyone. Want to learn some more? Same old, same old.In fact, for this list of software topics, only a tiny fraction of university computer science professors have enough ‘skills’ even to get past a corresponding phone screen interview by an English major HR person.While a college computer science major can help, the community colleges have a better chance of teaching such ‘skills’. I believe that Hudson Community College near Albany recently got some money to set up such teaching. For Courant and Columbia, likely “digging in the wrong place”.More generally, the US computer industry has generally zip, zero, zilch respect for any university education in ‘skills’.E.g., once J. D. Edwards was looking for an expert in the mathematical optimization field ‘linear programming’. Good grief: My name is not Dantzig, but I learned from Nemhauser, Elzinga, Cunningham, taught graduate courses in the field, did challenging applications to US national security and in business, published peer-reviewed original research in optimization, and still didn’t get past the English major HR phone screen person who had just one question: “What is the largest linear program you have ever solved”. The question was so silly that I failed to respond that in principle some of my problems were infinitely large in size (they were non-linear and I was making iterative, linear approximations). They were looking for someone self-taught in practice and wanted nothing to do with someone well trained who had attacked challenging problems. It’s general: Business doesn’t like academic qualifications.Before Ruby on Rails, etc., it was CGI, Perl, etc. Generally the useful lifetime of such software ‘skills’ is shorter than that of butterflies.For an entrepreneur doing new things, they learn a few, recent such topics, use them a few times, and never use them again. The ratio of learning/use times is high. Uh, there’s a large fixed cost.Same for me: In computing, I’ve been entirely self-taught. I’ve taught courses in computer science in college and graduate school, done research in one of the world’s best computer science labs, published peer-reviewed original research in computer science, but took only one course, hardly more advanced than ones I had already taught, and saw enough new for, maybe, a 20 minute lecture. Make that 10 minutes. Two of the profs thought that I thought that I knew more about practical computing than they did: I did. They didn’t like that. The most advanced thing they did was teach AVL trees from Knuth; I’d long since read all three volumes. One of the profs had a summer research grant where he needed to know JCL. Lot’s of luck, guy! Have fun understanding just what is going on with DCB and RECFM, especially when the main access you have is batch with > 3 hours turnaround time and you don’t know the 370 assembler macros! Uh, don’t plan a lot more for the summer yet! Good luck with your ‘research’!Broadly ‘computer science’ tries to concentrate on ‘fundamentals’ of computing. Ones that are also useful in practice so far are difficult to find. E.g., can struggle with the question P versus NP and mostly leave people confused and rarely helped. As computing moves on, there WILL be some important material to teach and learn at the university level.A few people at Intel, Microsoft and a few others will need to know this material, but mostly people will just use the corresponding tools. Anyone who wants to use original work in such material as powerful, valuable ‘secret sauce’ will find that mostly venture partners are much more interested just in “traction and momentum” (i.e., ‘acceleration’, second derivative, not the first).Actually, for now, more important for the future of computing is just the topics commonly called the ‘mathematical sciences’. So, have middle school students race as fast as they can for the prerequisites for a freshman calculus course.If they can learn If-Then-Else and Do-While along the way, have fun making the computer do what they want, fine.I resisted posting these comments when Brad Feld mentioned teaching computer science. Since Fred has raised the subject a second time, I relented and posted!

    1. Dave Pinsen

      Interesting comment. Would be curious to read some knowledgeable feedback on it.

  56. kenberger

    Great point- Canadians get immersed in hockey while young– we too need to pick some national priorities!Humans tend to take the easiest to learning spoken languages when toddlers. Problem there is that you have no idea if that child will have the interest in the language later in life. Yes- learning to code earlier than high school is key, if for no other reason than to expose the child to it so they’ll have it as an option to consider early on.You mentioned you “hit compile”– a thought is to introduce a scripting language super early on (even grade school) that’s not compiled or object oriented (Basic or even Perl) to give that instant gratification, comparing it to a recipe. Ruby on Rails is an interesting choice for later on, because it’s object oriented but not compiled. OO is a novel paradigm that some minds might actually grasp easier when quite young, while some may be scared off if it’s in their first dose of programming.

    1. fredwilson

      Shhh. Don’t tell her. I’m just getting out of the doghouse for similar failings

      1. kenberger

        Your secret’s as safe as that of a Foursquare financing. Over WEP encryption. With a broadcasted key.

  57. Richard Jordan

    You’re right about the age for learning… I first programmed a computer about 11 years old, most of my peers started around the same age. But it was mainly something one did in one’s own time. I don’t know a huge number of people who first learned to program in their late teens or at college who went on to do it for a living, so there’s definitely something about getting the bug early.

  58. daryn

    My first “programming” lessons were using Logo on the Apple 2 when I was in elementary school (mid-80s). It wasn’t much, just typing in commands to move the cursor on the screen and draw lines and shapes, but it definitely sparked my interest, and pointed me towards where I’ve ended up today.

  59. Tim Armandpour

    I couldn’t agree more with the need to beef up what is being taught to children in middle school when it comes to computer science and programming. I remember being taught the Logo programming language (http://en.wikipedia.org/wik… while in the 4th grade on an Apple IIc. I don’t remember feeling like it was “nerdy” to writing down what I wanted the computer to do and watching it do exactly that! In fact, I recall it being a confidence booster – anything is possible. That experience got me very interested in math, science, and eventually helped lead me to getting a degree in computer science.We need to have our next generation ready to contribute to the next phase of technology innovation.

  60. quentoncook

    I am a long time reader and first time commenter. I actually found out about you and your company from my employers the Dolan-Zalaznick family. I am a computer science undergrad student at NYU and i also am the senior director of a summer camp in maine. As someone who loves both the computing and academic worlds i cannot agree with you more. Even in my high school there was very little exposure to that magic and it left me stumbling around looking for a major in college for two years. Just by chance i decided to take an intro to programming class and i never looked back. People wonder if english or chinese will be the language of the future. Neither. Computational language will be.

    1. fredwilson

      Do you teach the dolan-zalaznick children any programming?

  61. Darren

    In 1983, Altimira Middle School in Sonoma CA offered a computer science class. Mind you this was back in the day when Sonoma was still all about farming and wine. I was privileged enough to get to take the class where we learned how to program on TRS-80s. I guess it stuck as I’m still in the tech sector today. Granted I not have minded going into the wine industry, but that class definitely changed the course of my career history.What’s a shame is our educational system is still geared towards a manufacturing mentality that was built to power the Henry Ford era where most people worked in a factory. Our greatest educational efforts are still to get kids to pass bare minimum standardized tests each year. And these tests prepare them for what exactly? Not the world that exists today.Our children should have the bare minimums down by the time they are in middle school. High School should be about advanced curriculum for students who excel and learning a trade for those who don’t. A strong part of this entire process should be introducing real world skills and opportunities to our children. Skills like computer science/programming, finance and business administration, etc.

  62. ShanaC

    I’m the middle of putting parts of my portfolio online and I had to link to this:http://www.shanacarp.com/es…I’m not saying they are amazing, but my sum total background of coding before I decided to slowly and gentely de-scare myself was 6-7 weeks of a java/sql class (which was a nightmare, apparently the mistakes I was making were the kind of mistakes you would make if you had a lot of experience and just liked to sit around and hack at things, except I had no clue what was going on, which made the problem worse.)Yes, coding should be fun. It should explain to people, much like any other basic skillset, that it can transverse boundaries. Which is what the basic RRR can and do teach you. You don’t learn computing and coding to get along- you learn it to become more broadminded.That all being said, many people come to learn this stuff later in life, just like with the basic RRR. And we should create systems to support multiple avenues to support such endeavors. Not everyone will come to terms with every programming experience, or every book, or math problem in the same timeframe. We need multiple systems of approach.Otherwise you won’t get even people like me who are willing to try no matter how frightening it seems (and yes, when you are surrounded by engineers, mathematicians, and comp sci majors and you are going at this stuff for the first time, it is frightening.)

  63. Peter Evans-Greenwood

    The recent article on Scratch in Communications of the ACM got this right:”Digital fluency” should mean designing, creating, and remixing, not just browsing, chatting, and interacting.Teaching our kids how to use software, but not create it (even in a limited MUD/MOO or RoR sense) is like teaching them how to read but not how to write.r.PEG

  64. tanomsak

    I’m lucky enough to learn programing since sixth grade, started from BASIC and PASCAL. It’s invaluable to me. The programming class is not mandatory and we have to take class after school or in the week end. Only a small group of student take it, 20-30 out of 500. I’m in Thailand, and taking programming class is very rare at the time.I think if we looked from programmer or tech savvy point of view, considered how much programming skill impact our life and possibility that it could bring in the future, programming curriculum is a must and the earlier the better. As we trend to value what we have, the programming skill, more that other skills.Having said that I still think programing class shall be selective class as there are people who doesn’t meant to be programmer too. Force them to learn programming is more like forcing me to learn biology stuffs as Doctor may consider those stuff as important as we consider programming.I think your point on “fund training teachers to teach that curriculum” is most important. Building up infrastructure and education people to fully support education is the key, and it should be drive strongly.

  65. JLM

    As always an interesting topic. There is nothing more important than education and it has to be a life long journey.The width and breadth and depth of one’s education can always be improved but I caution against a single subject being championed v a great number of others. There is an issue of personal aptitude at work here.Having said that, we need more math, science, computer science, engineering, philosophy, art, music and dancing.The hard edges need to be softened and the soft edges need to be hardened.The world’s future will not be determined by the “average” knowledge or skill level of our population v our competitors.The world’s future will be determined by our top 5% v their top 5% — always has and always will be.This is why American exceptionalism is such an important concept in the world.

    1. ShanaC

      I have to ask, why dancing?

      1. JLM

        Because when you get the chance, I hope YOU dance!

        1. ShanaC

          Dancing is a bonus: Wisdom and a Morally Upright and Strong Person is a necessity. Been through enough to know that I need to respect the person before I need to dance with the person.

    2. thewalrus

      “The world’s future will be determined by our top 5% v their top 5% — always has and always will be. This is why American exceptionalism is such an important concept in the world.”I’m sure Chiang Kai Shek, Nicholas II, Batista, Louis XVI, Shah of Iran, and many others would fully agree with you…..

      1. JLM

        Marko, very interesting comment. I don’t quite get what you mean but I do recognize that those chaps are in the “naughty” rather than “nice” category.I was talking about the concept of academic or educational competition rather than politics.Help me understand what you mean by your comment. Thanks, Marko.Merry Christmas and Happy Holidays!JLM

        1. thewalrus

          just meaning the other 95% also impact the future equally. and if we view the future as being determined by the 100%……then the way forward is to make sure we grow the whole pie.+1 for dance. would have saved me on many, many occasions.

          1. JLM

            Whenever someobody says that the “average” anything relating to education, I simply observe that we are not in a competition — primarily an economic competition — in which we pit our average folks against their average folks.We pit our very, very best against their very, very best. It is our top 5% v their top 5%.In my view, the remaining 95% are almost irrelevant to the outcome. Sure, they participate but they are not the ones in control.Other countries can close the gap between their average folks and our average folks as long as our top 5% remain exceptional.Our internal struggle should be for self actualization and the attempt to realize our own personal potential. That is a worthy goal for all Americans.

          2. thewalrus

            “Other countries can close the gap between their average folks and our average folks as long as out top 5% remain exceptional.”- i disagree”Our internal struggle should be for self actualization and the attempt to realize our own personal potential. That is a worthy goal for all Americans.”- i couldn’t agree more

          3. JLM

            When there are limited resources (e.g. education) then the allocation of resources is very important. The top 5% will rightfully get more resources because they can produce and the return on educating and training them is quite large.It does not really matter if the average Chinese middle student is a slight bit better than his American counterpart as long as the American 5% elite is still better than the Chinese 5% elite.

          4. Dave Pinsen

            Herman Wouk’s description of the U.S. Navy in The Caine Mutiny (“a system designed by geniuses to be run by idiots”) supports your point about the importance of the top 5%. It’s also true of other large organizations. Wal-Mart is a great company because of its top 5%, not because of its bottom 95%. The same principal probably applies across most of the rest of the economy.

          5. thewalrus

            I think that is insulting to the servicemen/women…..they are pretty important ‘idiots’. What if they all stopped serving? ….whats happens next?I recognize the importance of leadership…but following is also a choice…true leaders understand the contributions of the team….

          6. Dave Pinsen

            Wouk’s point was not that the average sailor was an idiot. The average sailor isn’t an idiot — he’s average (or slightly above average today, given the selection effects of military aptitude tests). It was that the system was designed with procedures that obviated the need for a lot of thinking at the lower levels; also, that an intellectual who found who found himself in the lower levels of such an organization — and didn’t understand why it was designed that way — might chafe at that design.Yes, true leaders understand the contributions of the team. The geniuses that designed the system included many ways of recognizing those contributions and building morale. But JLM’s point about the impact of the top 5% still stands.

          7. JLM

            This is a fairly complex issue and at times has had a very complex answer. In the Army, as an example, elite formations (Rangers, Paratroopers, Special Forces, Delta Force) have served multiple purposes — to fight well, to provide a backbone of training to the Officer/NCO corps as a selection technique for excellence and to provide the Army at large with training in less elite formations via cross fertilization.In my day, Special Operations was not a branch specific (like Infantry, Armor Artillery, Combat Engineers) but was a specialization to which one was detailed, seconded or shanghaied. Ranger School and Airborne School was required of all Regulars and there were only approximately 1,500 Regulars coming into the Army each year. Only about half made it through Ranger school.Now Special Operations is a branch equal to the other combat arms and this has provided some traction to its members at promotion time. Now you can spend your entire career in Special Operations and not be at a disadvantage to a branch specific promotion board.It is very, very good for the Army to have young officers in particular to have Ranger tabs and jump wings when they report to their units. It reinforces leadership standards and provides real skill to units which are simply not elite units.There are just a few special units which are special because of their training level (just about every Marine unit) or their type (10th Mn Div) but there are some straight leg infantry and mechanized units which are just plain vanilla.Don’t get me wrong, the Army is the best we have ever had — all volunteer. Fights exceptionally well when well lead. Our special operations are the best in the world for no other reason than just the actual level of combat experience, battle hardiness, mission capabilities and training.In spite of this at any given instant the Army can identify its top 5% performers and these guys are being groomed to wear stars starting when they are Captains.They are given the plumb assignments — tough make or break assignments like company command — schools, commands and combat experience. The military system of spotting and developing talent is phenomenal.

          8. JLM

            One of the reasons that the Iraq and Afghanistan wars do not resonate fully with the American people is because we have a volunteer army (great for performance, less good for national pride and patriotism), the wars are fairly small, the casualties are very small — more men lost on D-Day than in both wars combined — and we have had to make absolutely no guns v butter decisions.I guarantee you that if the electricity were turned off in the US for an hour a day or car travel was curtailed two hours per day until the Iraq and Afghan wars were completed, we would emerge victorious within a year.

  66. Dave Pinsen

    “That would change a lot of things.”Perhaps it would help a relatively tiny handful of kids who aren’t autodidacts (as many successful tech entrepreneurs seem to be) but might still go on to become successful entrepreneurs. For most smarter-than-average kids though, the endgame of learning programming will probably be to see the work given to cheaper foreign workers instead.And what about the majority of American kids, who don’t have the chops to learn programming? This will be another subject they’ll struggle with in school. Better to re-emphasize traditional vocational education and enact policies to encourage the creation of more high-end manufacturing jobs in the U.S.

  67. Chris Dodge

    Fred,A topic close to my heart – I was fortunate enough to be a kid during the early stages of the personal computer revolution, back when one had to write software on one’s own in order to basically do anything.I wrote an essay about my experiences with my first computer (an early Tandy TRS-80) in Sherry Turkle’s book “Falling for Science”: http://www.amazon.com/Falli…Happy holidays!

  68. Albert Sun

    As it turns out, French class in middle school bored me so much that all my French class time was actually spent programming in TI-Basic on my calculator.

  69. dineshn

    Fred:’twas the first time where I got a wee bit surprised over the years on reading your blog – I live in the Bay Area where (unfortunately) due to generally mediocre public schooling (except in the real expensive housing districts) most parents resort to private schools — my daughter is in 1st grade at one of those academic sweatshops disguised as private schools, and she is already being taught programming in Logo. Nothing unusual amongst the average crowd here. That she loves it and is good at it has probably nothing to do with my being a programmer too, though I would love to think so ;-)Other than that, I do agree with your philosophy on this, it is an absolute must in this day & age…

  70. GiordanoBC

    While I agree that an increased focus on computer literacy is due, and also lots of fun for students (I remember compiling my first Basic code on my C64 when I was 6 or 7 – what amazing discovery!), I do think that it doesn’t necessarily apply to everyone: the majority of kids will not make use of it in their lives, as they embark in non-technology related professions, and school should first impart some universal teachings: literacy, for sure, but most important how to be an independent thinker, and how to shape your own world view.The most important courses for that? Philosophy, history, foreign languages (including dead languages). I majored in Latin and ancient Greek and, while I surely don’t use them every day in my (technology-related) job, those teachings are always with me and help me put things into the right perspective and make the right decisions. Italian education doesn’t really prepare you for specific jobs but, at least in the “classics” curricula, it prepares you to be your own person. Isn’t that the most important goal, ahead of creating people that can perform specific jobs?Computer literacy is very important, but I’m not sure that teaching programming to everyone should be the answer. Maybe allow people to opt for it, or start with the more matematically inclined pupils?Cheers, Giordano

  71. Saifi Khan

    Cultural stereotypes when patronized become ossified to create structural problems that no amount of legislation can address !Computing (ie. Programming), Algorithms, Mathematics and Physics are areas that fall under “stereotype threat”. Teachers are aware of this as much as the society. Celebrity yes, Cerebral no !Ladies and gentlemen, introducing the top 3 lady scientists:1. Prof. (Late), Britanny Murphy, PhD2. Prof. Beyonce K, PhD, DSc.3. Prof. Britany SpearsBarbara Liskov, who ?The only way out of this morass is to send one’s kids to schools which promote a culture of excellence in maths and programming. It will also require a family to re-structure its friends circle to have a social scaffolding where people are focussed in these areas.The tough question is, will you walk the talk ? (ie. do anything beyond this blog).thanksSaifi Khan.

  72. mattweeks

    We need more mad professors to inspire our youth.This is so important in a world in which kids can just presume someone else will be doing the heavy lifting and programming “for them.” Well, of course in a way that is true, unless our kids want to create, invent and get a little bit deeper inside how this stuff works.My story is around my daughter, now 8. She is conversant about what an operating system is, how different ones run different types of apps, what an app is, and what happens when you download one, or configure it for your own use. She has already configured her Gmail page and is looking for ways to customize it more.Games teach these digital natives most of the basics, and their curiosity gets them further down that path. To her, CS may just be another subject, and I don’t expect it to light her up unless she sees some real-world problem she wants to solve, and that is up to the brilliant teachers she will encounter. I hope it is a mad professor.One of them will show an example, and that will ignite her curiosity and the hands-on will lead to just plain good fun. In the 1970’s HP was kind enough to give our High School a big card-sorting, cassette tape- memory, noise-making computer to use. For boys it was a chance to make a lot of noise and show how to draw a polygon, or do simple subtraction or long division. This was “new” in those days for us. And we had a mad professor “Doc Hawk.” He let us take home the computer cards. He had fun with the confetti. We got to sit there and watch the thing run, and sometimes it jammed and all the cards flew around the computer lab. Geeks, perhaps, but even the football players had fun when the thing blew up and all the cards were flying around. Chaos.But for me it was still abstract. What the heck did I want to draw a polygon for? Only when, years later – I was in grad school (still in the pre-historic mid-80’s) did my moment come. I was in a computer lab doing linear programming. Still that was pretty abstract, even though it solved problems.But the hack. That was it! That was my mad professor moment.We had those old laserjet printers. Newfangled at that time. But they only printed in the default mode of portrait. We needed to print our visicalc (yes, visicalc) spreadsheets in landscape. What did we learn how to do? We learned to write several lines of basic code to tell the printer (for that print instruction only) to print the document in landscape. A mundane hack. But so satisfying- we got something to perform as instructed. A real world problem. Solved with CS instructions that we wrote. Ok a minor hack. But many of us never looked back. Computers were not intimidating, but were things we could control and we could make them do things we wanted. Power, creativity, and a bit of fun. Several years later learning HTML programming from some of the giants of computer science when I belonged to The Well was also fun, albeit somewhat tedious. And these guys really were mad professors.But when one of my online coaches said “see, just like wordstar — carrot, bold, carrot unbold– no big deal, eh?” “And here is some code for you to copy to get the form to appear in the center of the page…see those lines that tell it to stay in the center and what font to use?” And again, the Web was no big deal. Mad professors.In the next year or two my daughter will no doubt learn about how to plug into WiFi systems, and what it means to join two applications with an API, or how an RSS feed just sends stuff automatically… but the magic is that these things rapidly become deconstructed and lose their intimidation with the great tools we have today, and with the benefit of great teachers and mentors in the schools. They must be mad professors to work for so little pay, yet be so passionate about delivering inspiration and empowerment. And fun.Back to your point, I’d like to continue to see CS in middle schools at the latest. Perhaps we need to re-brand it as something more engaging real-world, and less abstract.When my HS Chem teacher made milk of magnesia in a big explosion and drank it to quell a hangover right in front of us, well what did we want to do? Of course. (well, we wanted to go drinking with him, but settled on making the magnesia). Now that’s not CS, but it is bringing fun, excitement (it was made in a big explosion) and real-world engagement into the “science” lab.Yes, we need more mad professors to inspire our youth.

  73. alexasamuels

    Fred, your post brought back memories of my mother’s efforts to introduce me to programming as a child… in 1982. Alas, it didn’t take, but kudos to her – and to you – for foresight.

  74. chipcorrera

    I couldn’t agree more with exposing kids to the “magic”. My daughter, 17 now, was part of an experimental laptop program in 5th grade. Every kid’s parent purchased a laptop and the entire year’s work was support via the laptop – homework was via an intranet, assignments were emailed (no google docs at the time) and some macro/simple programing.Even though my daughter has an unusually high exposure to technology at home, this was an enormous kickstart that has led her to some remarkable current capabilities that are true differentiators today. My two younger boys didn’t have the same in-school opportunity and the difference today is very noticeable.What I really learned was that the teacher was really the weak link. This teacher, a 20 year veteran, was seizing an opportunity too – but unfortunately, was not steeped in technology herself. Sure, the school invested in some training – but I think it is important to wisely investment in the teaching side of the equation too. The kids easily blew past her skills in the first month.

  75. feargallkenny

    Good idea but the downside is that there is the danger of pushing skills that are almost too marketable – to the point where kids will skip college to go straight into the workforce at 18 before they have had a chance to mature and figure out what they really want to do. Better to have that as the exception rather than the rule.

  76. coolass

    I think the most important thing to impress upon our children is a passion for building and learning, and helping them understand the difference between being a consumer and being a producer.

  77. Ben Thomas

    My nephew just told me that he was doing a 100 slide Powerpoint for his IT course. 100 slides ! Ridiculous. Pointless. Unimaginative. Learning applications is not useful. Office applications are designed to be easy to use and they largely are. A person of average intelligence doesn’t need to be taught how to use Powerpoint. Kids should be taught to solve problems and the office applications are the tools they learn to use along the way to solve the problems. If you were teaching a kid cabinet-making, you wouldn’t give them a hammer and a row of nails and get them to hammer them in one by one until they were good at using a hammer. What kids are being taught right now is no better than what they used to call ‘secretarial school’ and just aas limited in it’s application.

  78. Michael Lewkowitz

    Just struck me – we unschool our kids and they would totally love seeing some basic code spring to life. Now the question is where to start them. HTML? Will also probably push me to pick up a much better connection to code.

    1. fredwilson

      charlie crystal suggests scratch elsewhere in this threadhttp://scratch.mit.edu/

      1. Michael Lewkowitz

        now that’s cool – thanks!

      2. Ada

        Just a note: would be cool if your links could open in new windows/new tabs.

  79. Sean Saulsbury

    Coercive curriculum is not the solution, whether its for computer science or teaching the bible. Why is it that those fostering innovation — which requires freedom and who should know better — are so quick to support socialist agendas? Instead, let’s advocate, in this example, eliminating public schools and instead allow the market to innovate the best curriculums at the best price and serve the *customer*, i.e., students and parents, and not a political agenda pushed by Obama, Bush or even Fred Wilson.

  80. sigmaalgebra

    “I think this post is much more about high levels of abstraction as entry points for kids and first-time programmers.”Right. I was supporting that: I was saying that what I called (A) and (B) weren’t close and in particular that university computer science education is not close to teaching ‘skills’ but has some challenging things to do.

  81. Max Chafkin

    I completely agree with you that we should teach kids how to code in middle school, but I cringed when you said, “we continue to teach our kids French,” as if teaching foreign languages is some anachronistic practice, like the use of slide rules. Language class is probably one of the most useful things that kids learn in school–not only because it helps them navigate when they travel elsewhere–but because it helps kids understand that there is an “elsewhere.”I don’t know the demographics off the top of my head, but I’d guess that French class will become more relevant, not less relevant as the years go on, and as Francophone Africa becomes larger, more influential market. Moreover, in a world that is more globalized–and less dominated by American culture–language classes are probably going to be more useful 50 years from now than they are today.

    1. fredwilson

      a lot of people had that reactioni really wasn’t suggesting replacing french with programmingi was just making the point that all kinds of languages, including computerlanguages, are important

  82. Matt Middleton

    I know that in Canada, French is one of two official languages, and as such it’s required to teach it up to a certain point (Grade 9, last time I heard). I agree that a really neat Intro to CS class for that age group is a fantastic idea, but teaching another language is a good idea too. Since kids at that age still have such malleable brains, I think it’s important to expose them to lots of different options early on, to help them discover their natural talents.

  83. Jon Rohr

    When there is an ambassador to Ruby-land maybe your point will make more sense.When Ruby controls nuclear weapons maybe your point will make more sense.I completely agree that more computer science will help everyone – but NOT at the expense of anything else. The schools can’t find money for musical instruments and art supplies – so how do they chase the Upgrade Dragon? This has been the age-old problem since personal computers have existed.And WHAT computer language do you teach? Is teaching Java in the classroom today like teaching FORTRAN in the 80’s?

    1. fredwilson

      it doesn’t matter what language you teachthey come and gothe point is to teach kids the magic of writing software

    2. fredwilson

      and computers actually do control nuclear weaponsfortunately we have a human with the final control point

  84. Tom

    Why wait till middle school? I taught myself basic in 3rd grade. Children are expected to read when they enter kindergarten, so they should be able to write a for loop by 4th grade.

  85. the_real_fujun

    Completely agree with you, Fred. Computer science is an important and fundamental subject. What is even more important is that the earlier kids get exposed to it, the better – this may be true for most subjects, but especially true for languages including programming languages.Randy Pausch has an interesting project, Alice, dedicated to teaching kids programming in a fun way. http://www.alice.org/. For anyone who is not familiar with Randy, he was a computer science professor at CMU and passed away last year, but his speech “the last lecture” continue to inspire many people!

  86. Matt Montagne

    The beauty of the scratch platform is that kids actually experience coding the way it happens in the real world. eg, by sharing code, remixing code, etc and posting it to a community for others to comment on and remix themselves. The thing that makes scratch great is the online community that kids become a part of. Programming (especially open source coding) is an inherently social activity (unlike school, where students are not encouraged to learn in a social manner).What is key in any middle school computer science learning experience is that the teacher moves to the role of orchestrator of the learning environment-eg, if they teach in a traditional, top-down, linear manner, they will surely suck the life out of any enthusiasm in the students. However, if they move to a role where they guide the students and allow them to explore their passions in programming, we’re much more likely to see students who are jazzed about the world of CS.

  87. Eric Ries

    I couldn’t agree more. I also think this could have a meaningful impact on GDP: http://www.startuplessonsle

  88. Otto

    Given a choice between French and Ruby On Rails, then French is more useful. Hell, Ancient Egyptian is more useful than Ruby on Rails.Teach them a useful language. One that people actually use in the real world. C++. C#. PHP. .NET. Whatever, just something that isn’t total crap. I learned Pascal in college, how useful was that? Answer: Not at all except as a way to introduce concepts.Ruby on Rails is a language that is devoid of useful concepts because it is overly strict. Messy languages teach better, because you have to be able to shoot yourself in the foot in order to learn not to do that.

  89. Giles Bowkett

    Criticizing the Obama administration for not having the time to pursure your personal pet issue is a lot less useful for the world than starting a nonprofit to teach kids in middle school to write code. If you get that started, I’ll give it a few bucks, and so will the gazillions of other people who see it on Hacker News, Proggit, TechCrunch, and everywhere else. Be the change you wish to see. I’m serious, if you actually DO anything about this beyond talking shit about Obama, I’m down to help you in any way I can.

    1. fredwilson

      you consider that talking shit?i’m not sure a non-profit is the best structuremaybe a for profit or a zero profit business might work better

  90. Bill DAlessandro

    “It would get millions of kids writing code before they have their first date. That would change a lot of things.”Like whether or not they ever get a date πŸ˜‰

  91. LGBlueSky

    Going to sign my 9 year old up now for some iphone developer training…if he starts now, maybe, just maybe, he will have a marketable skill when he looks for a job. Great post.

  92. Andrea

    I think primary and middle schools should be dedicated to teach the fundamentals of human culture. Grammar and Literature, Maths, History, Philosopy, Music, one or two foreign languages (Chinese will be far more useful than ROR in the 21st century) and so on. Maybe some basis of CS, but more focused on what computers *are* (hardware and OS architecture) rather than just coding.Before being workers, taxpayers or “tools” for our countries, we are “cultural” and “social” beings so we have to be sure that we master the basic tools for living in a society and fully develop ourselves as human beings. High school seems a more proper place to teach programming and other pratical “real-world-oriented” subjects.

    1. michaelish

      Programming is not necessarily a “real-world-oriented” subject. Programming (taught correctly) teaches algorithmic thinking which is as fundamental a skill as math-based analytical thinking.

    2. Caitlin

      Students should know what computers are before they leave elementary; too many schools set students lose on computers without teaching about them first. If we don’t get kids engaged in programming in middle school, few will choose to do it in high school, where it is often an elective, one taken by “geeks” at that.As for Chinese being more useful, there are more learners of English in China than there are English speakers in the US; already one can successfully work in/with China without knowing Chinese (I say this having lived there). Chinese will decline in the 21st century, but computer languages will only grow.

  93. Keenan

    I hate being late to your best discussions. This one drives me crazy. My step son is a little engineer. He is not athlete, and is struggling to find something to do.More often than not I find him on the computer. He’s teaching himself how to hack a video game now. I’ve tried desperately to find him a programming class appropriate to his age. Not some community college class. It’s impossible.His Middle School, like you said is teaching him the applications, not Ruby.This needs to change. I’ve been saying for years, it’s the computer engineers who will run this world soon. We need more of them.

  94. Michael B. Aronson

    Fred couldnt agree more. I had two daughters go through a very exclusive private school, the first one was taught Logo to move the “turtles” from the MIT media lab and then went on to play around with Lego Mindstorms which was sort of the commercial version. Although she didnt stick with programming, she is a very creative person and curious about “how things work”. By the time the second one went through , the school had “moved” on to teaching MS Office, Powerpoint, etc instead of programming. I loudly told the headmaster that she was training the girls to be executive assistants and that they ought to be playing around with robotics and the Sony Aibo. My younger one uses PCs (Mac) all day long but she has no idea of why they do what they do.

  95. Ada

    Great post!

  96. Pete

    This is important, I would love to see it happen. I started programming around that age too (a little younger), but I really got into it in middle school. I consider myself lucky to have grown up before the internet, when my programs were the most interesting thing my computer was capable of doing. Today you can spend a tremendous amount of time with a computer and never feel moved to write a program. Constraints are good for creativity.(By the way, I love the fact that there are 256 comments on this post right now. I’m sorry to ruin that with my comment.)

  97. Cory Levy

    I would have loved to take a CS course in middle school. My high school has their WiFi protected from students. Before I head off to college, I am going to try to change the school’s policy.

  98. Benedict Evans

    I learnt… some sort of programming language on the BBC Micros we had at school in the early 80s. Zero practical value today. I also remember typing code to make my ZX Spectrum do things. Zero practical value today. And after 10 years in TMT, the only code I write is in excel formula bars…We should reach code the way we teach children how the internal combustion engine works – as something to understand in generality as part of the world.

  99. Diego Sana

    I would have loved to learn computer science in the middle school, but i’m not sure if it should be mandatory. Kids nowadays start using gadgets and computers so early that they dominate the tools and many of them will feel the natural curiosity to learn more. And they can do it on the web, because programming is free and all the necessary knowledge avaiable is way better and richer than any thing they could learn from a 40 year old teacher that probably doesn’t even program that often anymore.

  100. Brooke

    Thanks Fred -These threads are always amazing to follow … first time / long time ;)This will sound strange given that I develop software and my wife is a trained chef but we wish that Latin was still taught in school. We were both fortunate enough to have years of it in (different) private schools in the late 80’s and I still look back at it as one of the most valuable tracks of instruction in all of my educating. While the joke was and still is “why study Latin … nobody speaks Latin anymore” it taught us both, at a young age, how to solve a problem and think in terms of functions without being told that we were doing so.The problem, as I see it, is that kids are no longer taught how to learn or solve a problem other than how to get a better result on a test. Rather than learning a specific language per-se I think it would be better to teach a child how to quite their mind, approach a problem, test a solution and execute … not know Ruby which will most likely be out of vogue by the time that any of our kids are through school.If anything, it also helps with the NYTimes Crossword Puzzle and Jeopardy!

  101. karpov

    Programming is vocational. It is a DEtraction from other curriculum because kids can become good at it very readily and get sucked into it. It presents symbolic results very quickly. but the future innovation will NOT be in programming. kids will ignore math, science etc.

  102. TiredAndJaded

    “It would get millions of kids writing code before their first date”Well, the percentage of kids I knew that could code at that age had an incredibly hard time getting dates. So maybe it would kill everyone else’s chances too…

  103. Aruni S. Gunasegaram

    Fred – I don’t have time to read through all the comments and you may have addressed this already but why didn’t you connect your daughters with someone who could teach them after school or send them to a summer camp that could expose them to programming? I remember going to a summer camp that taught BASIC programming language. I didn’t become a programmer but I had a “basic” understanding of how that language worked which of course I’ve long since forgotten.I think it is important for both girls and boys to be introduced to this…whether in school or in an extracurricular activity or via game that I recently saw that a start-up was pulling together to help teach kids how to program.But as I think as some have mentioned knowing how to code without having some basic fundamentals of human nature, history, math & science, compassion, etc. would not be good.

  104. Adrian Palacios

    has anyone come across something like “video games for teaching programming”? i’ve been trying to learn php. before that it was action script. both times i’d get confused on the technical terms (parent? child? array? wtf?).an acquaintance of mine attended carnegie mellon’s entertainment technology center, and one of her projects was putting together a video game that taught students about human biology (digestion, cells, virus’, etc). maybe something like that for programming could be useful :/

  105. BrianSJ

    Only just got here. 278 comments and no mention of OLPC, which was about implementing ‘mindstorms’ by Seymour Papert. Get them learning Squeak young so they can think logically, understand recursion etc etc. The right mix of education and technical training.

  106. fudouri

    This post really struck a chord with me. I remember my first times coding was in 2nd grade. There were BASIC programs that were games you can find in 3-2-1 Contact. At the time, I just wanted to have something to play (it also helps to have parents who are programmers)If there was one skill which has helped me more than any other, learning programming is probably it. While I no longer develop full time, it has helped me immensely as a product manager. Quite frankly, I don’t know how you can do product management without it.I liken this to another skill I learned as a kid. Piano lessons. I am still horrible at music, but it isn’t about playing piano really well, but about being able to read music and understand chords.

  107. rbetts

    I love computers – work with them every day all day long .. but I’m voting for French. The world is bigger than a turing machine.

  108. sssrinivasan

    This topic is so timely! My middle schooler son is learning about histograms in math class, and one of my startups in Business Intelligence is doing KPI’s. So it’s not just algorithms, but also the interpretation of the data that can be introduced early in a fun way. Just like Scratch for the procedural concepts, we should have something equivalent for kids to experiment with analytical stuff. E.g. creating games based on probability distributions, etc.

  109. Ethan

    I am in 8th Grade know and I am struggling to learn coding through online tutorials. I would die for my school to introduce a Computer Science Program!

  110. edantoine

    Why wait for the government to spend millions? For 10k per month two people could create a course structure and start writing lessons plans. As a former Java developer, I’d love to offer a programming course. My learning center offers tutoring and ran a prep course for the SHSAT in a NYC public middle school this past Fall 2009. I’d offer the lessons to my clients immediately – and try to get the course into a school by this Fall.

    1. fredwilson

      great point

  111. RichardF

    +1 …agree with you Charlie

  112. Niyi

    Good comment. I agree with you.For me, learning to code has always been about learning to think logically.I reckon learned more about logic in my Discrete Maths class than inAlgorithms.

  113. sippey

    +1 Charlie. I’m working with our public schools here in Berkeley, and the #1 priority is getting the kids that are socio-economically disadvantaged up the curve on the basics — reading, writing, math. But the reason that I’m getting my daughters involved with computers early isn’t about teaching them to *code* per se, but instead about having them experience the rush of excitement / power that comes from learning what you can do with tools like these… I love your line “give kids the tools to create and experience their creations.”

  114. ShanaC

    Oh wow Charlie. Give them a way out of poverty.I agree, the better courses I took for this stuff were either very abstracted art courses or philosophy. I managed to figure out that the languages are all roughly similar and have a similar style…

  115. cjwesterberg

    Charlie, Larry Rosenstock from High Tech High is someone you may want to check out because he too talks in terms of tools (tech as tool) and creating, among other things, and not just for private school kids. We think this guy nails it – what do you think of our pick as person of the year in education? http://www.thedailyriff.com High Tech High is called ” a great liberal arts school in disguise”.

  116. fredwilson

    Yup. I see a lot of 20 something business guys doing that

  117. Geoffrey Lewis

    I’m a 20-something guy trying to teach myself Rails; definitely not a waste of time. Biggest handicap our startup has at this stage in lifecycle is my weak CS understanding… Wish I’d studied CS as an undergrad instead of what was “cool” at my school — you guessed it; business.

  118. Jason L. Baptiste

    why not target home schooled kids? each parent can make it mandatory instead of waiting for the education system to implement it, and more importantly implement it correctly.

  119. Jennifer McFadden

    I certainly will. I would welcome the feedback.Best,Jennifer

  120. JLM

    Education is the most important driving force in upward mobility in American society. Upward mobility in American society is a proxy for becoming a taxpayer and living a more rewarding and opportunity filled life.Education is a driver of wealth, freedom and opportunity.Michelle & Barack Obama are doing what without Ivy League affirmative action educations? What? He’s a drug dealer and she’s cutting hair.Affirmative action did pretty good on those two and I say AMEN! [Though I do not agree with a single political policy of this administration. Their American Dream story is as good as it gets.]I could care less about propping up GM and AIG — I want that money to go to the disadvantaged in America to create taxpayers even if they are Democrat slut dogs. Just no more poets or lawyers, please.

  121. fredwilson

    i’ve heard that recommended by a bunch of peoplei’ll dig into it

  122. ShanaC

    Ok more interesting that these are all MIT built languages, and these are all highly visual languages, and we are all identifying a need that they have to interact with people through multiple venues: they have to enrich multiple spaces of our lives.Just kind of interesting…

  123. fredwilson

    great question and great story

  124. fredwilson

    how can i help?

  125. ShanaC

    I much prefer processing frankly. You feel like you can get actual results. The *poof* magic moments, in other words. Plus I know the language will be well supported, they are trying to wrap it out into Javascript, scala, and a bunch of other projects…

  126. sigmaalgebra

    “I think this post is much more about high levels of abstraction as entry points for kids and first-time programmers.”Right. I was supporting that: I was saying that what I called (A) and (B) weren’t close and in particular that university computer science education is not close to teaching ‘skills’ but has some challenging things to do.

  127. Ada

    The math and reading literacy initiatives have dumbed down the quality of education in many schools. I think the story of your school experiences is very illustrative. Remedial math and literacy is required in many struggling inner city schools, but not exclusively for the vast numbers that are subjected to it. Many students would benefit from learning through the vast array of subject matter that show students what is possible, what is available. Most students really are only aware of what their teachers/adults in their lives expose to them. By focusing on reading and math students learn that its important to be able to understand written texts and that it is important to facilitate numbers for basic purposes. But these two alternatives are very limited sparks for future growth. In the absence of more direct teaching, young people will learn from their environments, parents, peers, popular media. At the end of the day, kids remain limited by what the adults in their lives have exposed them to.I worked in two schools in New York City as a NYC Teaching Fellow and in both schools I was exposed to creative, intelligent, motivated students, looking for strong leadership and inspired teaching. One school was in Inwood a predominantly Dominican neighborhood and one school was in Grammercy with an extremely economically diverse mix. Yes, there may be needier children at the school in Inwood, but kids are kids are kids and they are capable of amazing things if the teachers are committed, trained and empowered. I believe there are some important skills being taught in the Math and Literacy initiatives, but I think there are equally important skills which can be taught in all subject matter. As long as the outcome of a course is to genuinely develop the individual’s skills in a specific area, it is worthwhile. Middleschoolers should be learning the skills which will propel them into jobs and careers, their minds are perfectly available to incorporate learning which is useful and relevant. There is only a requirement to establish a compelling reason. Given the level of time kids spend online, the rationale for teaching programming, I am sure would be comprehensible to middleschoolers.