Reading, ‘riting, ‘rithmetic — and coding

Audrey Hagan, left, and Amelia Flint, both 8, learning to code last month at an event in Mill Valley, Calif. Jason Henry for The New York Times

Computer coding for kids is a “national education movement that is growing at Internet speeds,” reports the New York Times.

MILL VALLEY, Calif. — Seven-year-old Jordan Lisle, a second grader, joined his family at a packed after-hours school event last month aimed at inspiring a new interest: computer programming.

“I’m a little afraid he’s falling behind,” his mother, Wendy Lisle, said, explaining why they had signed up for the class at Strawberry Point Elementary School.

Code.org, a tech-industry group, is offering free curricula and pushing districts to add programming classes — and not just in high school. In nine states, students earn math — not elective — credits for computer science classes. Chicago’s public school system hopes to make computer science a graduation requirement in five years.

In Mill Valley, elementary school children and their parents solved animated puzzles to learn the basics of computer logic. Many parents see coding as “a basic life skill,” says the Times. Or perhaps the “road to riches.”

Some educators worry about the industry’s heavy role: Major tech companies and their founders, including Bill Gates and Facebook’s Mark Zuckerberg, have put up about $10 million for Code.org. The organization pays to train high school teachers to offer more advanced curriculums, and, for younger students, it has developed a coding curriculum that marries basic instruction with video games involving Angry Birds and hungry zombies.

The lessons do not involve traditional computer language. Rather, they use simple word commands — like “move forward” or “turn right” — that children can click on and move around to, say, direct an Angry Bird to capture a pig.

Computer programming should be taught in every school, said Hadi Partovi, the founder of Code.org and a former executive at Microsoft. It’s as essential as “learning about gravity or molecules, electricity or photosynthesis.”

I’m not convinced that everyone needs to learn programming in order to use computers. And it’s not the only way to learn logic.

My three-year-old nephew was playing Angry Birds on his tablet today, prepping for his future as a high-tech zillionaire. That 7-year-old in Mill Valley is so far behind.

About Joanne

Comments

  1. As someone who has worked in IT for almost 32 years, and has written a fair amount of code in those years, I can tell you that this concept is doomed to failure.

    Mr. Partovi assumes (incorrectly) that every student must know how to program, which is asinine. Additionally, how many of these students will be good at writing code N years from now.

    Most employers would prefer to see high school graduates be able to read, write, problem solve, handle basic math, think critically, and understand time management and be able to work independently.

    Sadly, many employers report that the very skills that they need from high school or college graduates is sorely lacking these days.

    A student who has a good grasp of reading, writing, and math can pick up programming in middle or high school, there is no need to learn it in grades K-5 (and I’d be skeptical that they’re actually learning how to code at this grade level) since it usually requires basic logic and other skills which probably haven’t been mastered yet.

    Reminds me of the LOGO programming language craze of the mid 80′s

    • Jerry Doctor says:

      When I got a Masters degree in Computers in Education one of the required classes was LOGO. I already was fairly competent in Fortran and BASIC and knew a little PL1 and COBOL. This class was absolutely painful. Anyone that has been exposed to LOGO is familiar with the “turtle.” I don’t think I scored any points when I put a sign on my monitor, “Turtles are for soup.”

      As to the main point, there were quite a few elementary teachers in this and the other classes I took. These women (Sorry if anyone is offended but all the elementary teachers in the classes were female.) didn’t have a clue what they were doing. Most of the programs they wrote were simply a rehash of examples from the textbook. Frankly, the bulk of the secondary teachers weren’t any better. The thought that they would try to teach coding is absolutely frightening.

      • palisadesk says:

        ” I don’t think I scored any points when I put a sign on my monitor, “Turtles are for soup.”

        Heh, as a passionate amateur herpetologist, I would have soaped your windows or something similar.

        But, having taken a semester of intense coding instruction in COBOL and C I think your point is well taken apart from the chelonian put-down. Real programming is very difficult, requires a lot of planning, separating the program into parts, testing and retesting, attention to detail, and ability to see both the big picture and the minutiae at the same time. Very challenging, and I came to it with GRE scores in the high 1500′s. I don’t think many students, OR teachers, will find it either useful or rewarding. I was glad I studied it because it gave me new insight into complex systems, and I loved the AHA moment of getting it right. However, it didn’t tap into many other interests and skills so I didn’t pursue it further.

        I do remember the hype about LOGO, and found it rather overdone. My students were more interested in learning elementary BASIC so they could adapt existing programs of the day even if they didn’t go out and create their own (which some did).

        There was also a fad for a while of teaching kids to make decision tree diagrams (requiring a special stencil) for all kinds of things, mostly unrelated to computer programming or even science generally.

        As a self-selected “enrichment” activity, fine. Most students I see could afford to spend a lot more time on rigorous literacy and math however. When we keep “adding” things to the school day, what are we “taking away?” It’s a zero-sum game.

  2. Speaking as someone who has been programming professionally for about 35 years, I see the average Joe learning to code much the way I see the average Joe learning analytic geometry or calculus: most folks will never need to use those in any personal or professional capacity, but studying a formal system and learning to use it with rigor and correctness is useful to everyone. Computer programming is much the same, plus perhaps a smidgeon of “learning how the larger world works.”

    That said, I’ve seen little evidence that technology in the classroom does much good. This mostly seems to be because schools and teachers aren’t technology experts and are often given little training or understanding of the systems they are expected to employ.

    I’m against it as a required course and, if it’s going to be taught as an elective, I would much prefer it be taught by someone actually qualified to do so. Since this is unlikely to be the case, I’m generally against it altogether – bad habits can be hard to break.

  3. Very few people can write good clean secure computer code (I know, having had to fix a LOT of broken code in a lot of stuff in the last couple of years).

    That being said, I’d say that to find qualified computer science instructors in middle or high school would be very difficult, as they can usually make a lot more at the college level, or in private industry.

    As Rob knows, there is a reason why all accred. computer science programs have a defined course of math which includes calculus, linear algebra, diff eqns, abstract algebra, applied stats, numerical analysis, philosophy (intro and symbolic logic) and Digital Logic.

    How many of these students at the ES level will actually get to a point where they can handle all this math at the college level?

    Weinberg’s 2nd Law:

    If carpenters built buildings the way programmers wrote programs, the first woodpecker to come along would destroy all of civilization :)

  4. Roger Sweeny says:

    This is a wonderful idea. I mean, don’t we already require all students to learn auto mechanics? Just about everyone uses a car and needs to know how it works and to be able to fix it. Auto mechanics teaches important problem-solving skills, as well as being intellectually challenging and interesting.

    • cranberry says:

      Cars are becoming more computerized with every year. Software errors have caused recalls.

      So teaching software skills is teaching students about one aspect of modern auto mechanics.

      • Cranberry,

        That’s not even the same thing, since computers in cars are issues with embedded systems programming, which in many cases is a Upper division course in many EE and CS majors.

        It is much harder to code for embedded systems than it is for a mainframe/server/PC with gigabytes of RAM and a ton of hard disk space.

        The AGC (Apollo Guidance Computer) had a whopping 32K of RAM in it (Block II’s) and it was still a challenge to get everything to work properly :)

        • cranberry says:

          The point is not to claim that elementary students can learn to code as well as professional programmers. The point is to lay the groundwork for future study.

          I would expect the top students to head to the exciting new areas in programming, once they reach adulthood. However, we are building so many areas of our economy upon computer systems. Much of that code will become legacy code. It will all need people to keep it running.

          Ideally, it should be added to the high school curriculum, either as a science or a language.

          • Good point, though a lot of legacy code still involves FORTRAN and good old COBOL (which aren’t even taught in colleges, or anywhere else for that matter) :)

            Legacy systems indeed, since some are so old that they have to keep people working on that specific system since no one else understands it (talk about job security) :)

  5. Sounds like a case for putting proofs back into high school geometry.

    • So proofs have been removed from high school geometry? What’s the point of studying geometry if you don’t do the proofs? Haven’t we been using Euclid for a couple thousand years?

      • Mark Roulo says:

        It appears that proof-based geometry may be the exception. Quoting an op-ed piece by Barry Simon: “One of the pleasures of being on the faculty at Caltech is interacting with our bright undergraduates. For the past two years, I’ve asked the incoming freshmen in my calculus/probability class whether they had proofs in their high school geometry course. About 40% have not, and more than half of the remainder had at best a cursory few weeks. So less than one-third have had the kind of rigorous theorem/proof course I had back in James Madison High School in Brooklyn more than 30 years ago.”

        http://www.math.caltech.edu/people/oped.html

  6. cranberry says:

    My children’s private high schools are gradually integrating programming into the math curriculum. It works, in part because most of their students come from families which encourage their children to use computers.

    Everyone expects these students to have mastered basic academic skills before the end of high school. Many of the parents work in the local tech industry. There are several user-friendly, free computer languages which allow children to play with the basic concepts of programming. Alice. Scratch. BlueJ. (etc.) If the parents are introducing their children to such tools at home–and they are in our towns–there’s no reason to think it’s too complicated for children in school.

    • School would have to change so that more are able to think logically. Students who are repeating Regent’s Integrated Algebra multiple times are not going to find programming something they can master while in high school. Districts here are putting their money into sped and remedial, not electives for the rich.

  7. Michael E. Lopez says:

    Teaching programming is like teaching anything else.

    You can do it on a concrete, practical level — but on a practical level, we just don’t need everyone to know C++, or Java, or whatever particular language you want to teach kids. Note, though, that on a practical level, the language chosen matters a great deal. There’s absolutely no point in teaching everyone PASCAL at this point. The flip side to that, of course, is that in five or ten years, it’s possible that some young hotshot will have invented a new language that is the “must learn” language of its time.

    Or you can teach programming on a more theoretical level with concrete implementation — in which case what you’re really teaching is logic and set theory, using some programming language or another (it really doesn’t matter which one) as the vehicle for that teaching. This is admittable of degree: you can have a more or less theoretical course, depending on your goals.

    Or you can do it on a PURELY theoretical level, and dispense with the programming entirely. Just teach logic and set theory and algorithms.

    Now here’s the kicker: you have to KNOW what you want to teach if you want to teach it well. You have to understand where on this spectrum of theory and practice your instruction falls.

    My guess is that most people advocating the teaching of programming have in mind very lofty, theoretical goals, but the people actually doing the teaching are going to be working towards practical mastery so that their students can graduate, having “demonstrated competence” in the chosen language.