Adding Coding to the Curriculum: Considering the claims

May 28, 2014 at 9:41 am 12 comments

There are lots of claims about the benefits of introducing computing early.  This article in the NYTimes (even just the quote below) considers several of them:

  • Important for individual students’ future career prospects.  That seems unlikely, that elementary school CS would lead to better career prospects.
  • Influence countries’ economic competitiveness.  There might be a stronger argument here.  Elementary school is about general literacy.  There is likely an economic cost to computing illiteracy.
  • Technology industry’s ability to find qualified workers.  By putting computing into elementary school?  Does industry want to hire kids who know Scratch and Alice?  As Elliot suggested, it’s mostly a video game to young kids.
  • Exposing students to coding from an early age helps to demystify an area that can be intimidating.”  I strongly agree with that one.  We know that kids have weird ideas about CS, and seeing any real CS has a dramatic impact (especially on under-represented groups).
  • Breaks down stereotypes of computer scientists as boring geeks.”  Maybe.  Not all exposure to real computing leads to breaking down stereotypes.  Sometimes they’re enhanced.  I think this can happen, but we have to be careful to make it work.
  • Programming is highly creative.” True.
  • Studying it can help to develop problem-solving abilities.” False.
  • Equip students for a world transformed by technology.”  Maybe.  Does teaching kids about technology when they’re 8 prepare them for entering the workforce 10 years later?  If computing literacy matters, that’s true.  But I don’t believe that playing with Blockly in 3rd grade “equips” you with much.  Most technology doesn’t look like Blockly.

We do have to make our message clear, and it should be a message that’s supported by research.  If the computing education policy-and-PR machine ignores the research, we’re showing more disrespect for the field of computing education research and makes it even harder to establish reforms.

Around the world, students from elementary school to the Ph.D. level are increasingly getting acquainted with the basics of coding, as computer programming is also known. From Singapore to Tallinn, governments, educators and advocates from the tech industry argue that it has become crucial to hold at least a basic understanding of how the devices that play such a large role in modern life actually work.

Such knowledge, the advocates say, is important not only to individual students’ future career prospects, but also for their countries’ economic competitiveness and the technology industry’s ability to find qualified workers.

Exposing students to coding from an early age helps to demystify an area that can be intimidating. It also breaks down stereotypes of computer scientists as boring geeks, supporters argue. Plus, they say, programming is highly creative: Studying it can help to develop problem-solving abilities, as well as equip students for a world transformed by technology.

via Adding Coding to the Curriculum –

Entry filed under: Uncategorized. Tags: , .

A stunningly beautiful connection between music and computing: Jason Freeman’s “Grow Old” Google finally discloses its diversity record, and it’s not good: Everybody else?

12 Comments Add your own

  • 1. davidk6  |  May 28, 2014 at 10:36 am

    Re ” “Studying it can help to develop problem-solving abilities.” False:” It has concerned me for a long time that many of those who promote CS education claim that it helps develop (general) problem-solving skills, (general) logical thinking, and (general) abstraction skills, when what it really does is “helps develop CS problem-solving skills, logical thinking about CS issues, and CS-related abstraction.” It has also concerned me that many CS folks don’t understand that physics, chemistry, biology, electrical engineering, chemical engineering, civil engineering, … , music, art, … all involve abstraction.

  • 2. gasstationwithoutpumps  |  May 28, 2014 at 10:39 am

    I don’t know why you say ‘“Studying it can help to develop problem-solving abilities.” False.’ There are lots of things that can help develop problem-solving abilities, and coding (especially debugging) is certainly one of them, though perhaps “practicing” is the key word, rather than “studying”. To many people “studying” means “reading about and memorizing”, which is not particularly useful for developing problem-solving abilities in any field.

    Or are you someone who believes that problem-solving abilities are innate, and not developed by practicing them?

    I might agree with you that problem-solving abilities picked up in learning to debug programs may not transfer well to other fields, and that most beginning CS courses do a terrible job of teaching problem-solving and debugging, but not with a sweeping statement that learning to code does not help develop problem-solving abilities.

    • 3. Mark Guzdial  |  May 28, 2014 at 11:49 am

      Yes, I mean that learning programming does not lead to problem-solving skills that transfer to other fields. When people say “problem-solving skills” without other specification or specialization, I think general, transferrable skills are employed. Problem-solving skills are developed, not innate. Problem-solving in CS classes develops CS problem-solving skills, as David suggests in his comment. There is little evidence that learning CS (or programming specifically) leads to problem-solving skills, though there is evidence that you can teach problem-solving skills (explicitly: general and transferable) through programming activities. But in classes that aim to teach CS and programming, general problem-solving skills don’t typically develop.

      • 4. gasstationwithoutpumps  |  May 28, 2014 at 12:11 pm

        I agree with your reply. I believe that programming provides a better medium for teaching problem-solving skills than many other fields do, but that standard intro CS courses (particularly Java-syntax courses) do a very poor job of teaching problem solving. Students are left to random mutation as their primary debugging technique, which is not only useless but harmful to their development of real problem-solving and debugging methods.

      • 5. Ben Waugh (@benwaughuk)  |  May 29, 2014 at 10:39 am

        Can you give a couple of pointers to the evidence here? I teach programming to university-level physicists, but as a parent and school governor I would like to know how transferable problem-solving skills can be taught using programming activities, and what evidence shows that this doesn’t come “for free” just by teaching programming.

        • 6. Mark Guzdial  |  May 29, 2014 at 10:41 am

          Ben, please see my comment to Austin. I linked to several of the relevant papers there.

  • 7. Austin Bart  |  May 29, 2014 at 2:10 am

    Honest question: do we have strong research that says one way or the other that coding at a young age leads to gains in other areas later on? There are many longitudinal studies on the effects of reading at a young age that clearly say it is a good thing to do. Can teaching Blockly/Scratch/Alice/whatever lead to long-term gains in CS or outside of it? It sounds like you can think of some studies that definitely say that teaching CS early doesn’t improve general problem solving (do you have a citation handy, by the way?); what about CS ability, quantitative reasoning, and other skills? Is it a sufficient enough improvement to justify integrating it into the curriculum?

    I’m a little concerned by the mention of “just a video game”. Obviously, writing a Scratch program is not really an authentic activity for a software engineer; but I wouldn’t think that reading Doctor Seuss is an authentic activity for an English major. And yet research indicates that that student was better off for having read it. I don’t think that Blockly is intended to equip you directly for the skills you’ll need 10 years later, but my expectation is that some groundwork being laid there, and there ARE elements of authenticity there (if I develop a mental model of a sequence of instructions as a child, I won’t have to learn it later).

    I wonder if the intent of that quote is being decontextualized a little – as you know, Dr. Soloway has a lot of publications in educational game design, and I wouldn’t think he’d consider “video game” to be a dirty word. In some sense, a good educational game is a way to trade some of the usefulness of a learning experience for increased engagement through interest and success. As long as work is done to suitably fade the scaffolding, it doesn’t seem like a bad thing to me if a child considers Scratch to be “just a video game” – and I’d really actually prefer to see the research that says that students can’t be told, “This is a lot like the tools that a real programmer would use, except we made it a bit simpler. You can actually do a lot of the same things, we just focus on making games and animations because they’re more fun.”

    • 8. Mark Guzdial  |  May 29, 2014 at 10:07 am

      You framed the issues well, Austin. No, we don’t have longitudinal evidence for the impact of learning programming early on. We do have David Palumbo’s 1990 Review of Educational Research paper which found no evidence on problem-solving from learning to program, but we also know (from work like Roy Pea’s) that few kids really learn much about programming from early exposure. We also know from Sharon Carver’s work that it is possible to teach general problem-solving skills with programming (Cognitive Psychology, 1988).

      I’m sure you’re right — Elliot would probably be unhappy with a “just” in front of “a video game.” I have no problem with kids playing with video games or Dr. Seuss. I’m confident that there are cognitive benefits of playing with video games, reading Dr. Seuss, and even more confident about working with Scratch, Alice, and Blockly. However, does that mean that such play has an impact on “Technology industry’s ability to find qualified workers”? That’s the part that I doubt.

      Transfer is really hard to achieve. Alan Kay just Friday reminded me that Jerome Bruner said that we need to understand what learners can do in their current position, then teach the closest thing to the real thing that you can. Is Blockly on the path to real computer science? Do students see those connections? Moti Ben-Ari has been doing a fascinating series of studies where he explores just these questions. Scratch does help students gain computer science concepts, but CS Unplugged doesn’t necessarily lead to students learning much about computer science, because they don’t immediately see it as CS. A big part of all of this is how you teach, not what you teach with. As GasStationsWithoutPumps pointed out, we can teach debugging in such a way that it leads to learning problem-solving skills, but just “debugging” won’t necessarily get you there.

  • 9. lizaloop  |  May 29, 2014 at 7:42 pm

    Computer coding as the new Latin

    I have long been an advocate of teaching rudimentary coding to young children because it exposes them to systems thinking. We can argue ad infinitum about whether it will impact later careers. Only longitudinal research will answer that one. But there’s no question that writing a program that makes a computer do something involves goal setting, planning, and executing a series of logical steps.Besides, it’s fun. We used to say that kids needed to learn Latin because it taught one to think– even if you never actually speak it. The same may be true of mastering an artificial language. Many educators (Lauren Resnick, for one) decry the lack of critical thinking in our elementary curriculum. Teaching coding can be one important element for critical thinking. And yes, we have to teach coding for transfer to other disciplines, not just for application within CS. Creating recipes for cooking and composing music are also instances of coding. Once a learner gets the hang of it opportunities for systems thinking pop up all over the place.

    • 10. Mark Guzdial  |  May 30, 2014 at 12:35 pm

      Liza, there’s a gap between “writing a program that makes a computer do something involves goal setting, planning, and executing a series of logical steps” and “critical thinking.” People can set goals without realizing they are setting goals. We know about the importance of self-explanation, self-regulation, and metacognition in learning transferable skills. If you’re not paying attention to the transferable skills, it’s unlikely that they’ll become transferable. Teaching code can be an important element for critical thinking, but all our evidence suggests that in most CS classes, it generally is not.

  • 11. Coding is a fad | Geeky Mom  |  May 29, 2014 at 8:12 pm

    […] should we, but how should we.  There are some important points raised in this post and in Mark Guzdial’s recent post along the same lines.  First, coding/programming/CS courses are primarily being introduced in high […]

  • 12. Steve Tate  |  May 30, 2014 at 8:17 am

    So did “computational thinking” disappear when I wasn’t paying attention? A few years ago, everything was phrased in terms of computational thinking being a great general problem-solving technique — if computing were taught with a focus on thought processes, breaking down problems in general, etc. rather than on the technology then we would be imparting general problem-solving skills. Now we have lots of long comments about problem-solving, and not a single use of the phrase “computational thinking.” Is it now out of style (I have such a hard time keeping up with styles….)?

    My intuition is that, whether people talk about it or not, computational thinking really is an important way of looking at these issues. However, you might have to be dealing with data rather than warm and fuzzy animations. And the notion of abstraction, which students must deal with and get better at if taught coding the right way (even for animations), is a key problem-solving skill that is widely applicable. This isn’t new of course – mathematics is all about abstraction – but computing has a unique way of mixing this intangible concept with some concrete activities.

    The Taub paper on CS Unplugged that Mark linked to seems like it might get at some of this, although the abstract focuses on student attitudes rather than problem-solving skills – I guess I know what I’ll be reading this morning.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 9,052 other followers


Recent Posts

Blog Stats

  • 2,030,639 hits
May 2014

CS Teaching Tips

%d bloggers like this: