Saturday, July 30, 2016

Pop coding .... can drag and drop be too easy

I read this interesting article by Idit Harel and it started me thinking, especially now that New Zealand has given the green light to the year 0-15 Digital Technologies curriculum.

I am a huge fan of 'Scratch' and all the other drag and drop coding apps there are out there - marketed well and connected to the current pop culture and interest of children. Yet I also recognise that Idit makes a valid point when she refers to "pop computing" the "light and fluffy version of computer science" as being "a superficial response to the increased need for coders in the workplace."

Idit draws a distinction between "coding tutorials" and "computer science" and notes a difference to "playing with coding apps" rather than "learning to design an app using code." As she points out "building an app takes time and requires multi-dimensional learning contexts, pathways and projects" .... and "it can't be done in an hour or two, with a few simple drags, drops and clicks."

The concern is understandable and real. Knowing how to use 'Scratch' or 'Tynker' is not knowing how to code ... it is a beginning .... and a very engaging beginning which has transformed the role and the popularity of coding but in itself it is not computer science. Too often I hear teachers express that their students ... "know how to use 'Scratch'".

Seymour Papert (Mindstorms, 1980) identified the need for programming languages (used in educational technology) to have a 'low threshold and high ceiling (LTHC)'. This refers to making programming languages easy to get started with but also flexible enough so students can create increasing complex projects as they progress. 'Scratch' also included the term (in addition to low floor and high ceiling) of having wide walls so that a wide range of projects can be created to include all learning styles and interests. 

There is no doubt that drag and drop is an essential tool in a teachers' computing 'tool-box' but not if the original intent from Papert of having a high (or no) ceiling is not embedded in teaching and learning programmes. It is important that, as teachers, we don't let ourselves, or our students, sit inside a comfort zone where they can make an app or game as a simple linear process that may only take one lesson.  Instead we need to push that ceiling as high as it can go, allowing our students to fail and learning from their failures, and including the whole process of prototyping, identifying and solving problems, collaboration and critical and creative thinking - regardless of whether drag and drop or text-based languages are being used. 


  1. Great comment on a thoughtful article. You are right. Learning to do things with scratch is just the beginning, but scratch is also very underrated. Just because it is easy to start using does not mean it can't be used for the harder tasks. It has Object Oriented code which is event driven as well as having all the common constructs of any programming language. But what also needs to be taught is how to think like a coder.

    When coding, students learn to deconstruct a task so that they can then construct it in code. What happens first? What happens in response to certain events? etc. But it is fun to do it with sprites and code. With a little bit of thought, many of the other things that students need to learn can be turned into coding tasks so learning is more comprehensive, deep and a lot more fun for students. Take language for example. Try a mad lib program where sentences are make out of randomly choosing noun + verb + noun. They learn language as they code.

    Why should learning be boring when it can be fun to experiment, work things out for yourself and learn many other unexpected life lessons along the way? This is why I really love coding and teaching it to my students. One said that he learned that he needs to work on his time management (key competencies) and then there is the grit (keep trying till you get it right) and the team working skills (ask someone else to help you think it through so you can get it to work).

    Yes, coding is not computer science. But computer science is best learned with a solid dose of coding to assist the learning. Computer science is all about thinking about how things are done and why. Try some of the Unplugged lessons with your class if you want to improve thinking and get solid engagement from your students. Here is the link: and once students learn how to think, they will never stop learning.

    Thanks for a good article and thought provoking comments.

  2. Thanks so much Ruth, I agree Scratch is under-rated. As teachers (especially ones who don't have CS backgrounds) we need to make sure we do more than 'scratch the surface' of it. I like your idea for a mad lib program. Sounds like a lot of fun - as you rightly say learning should be. I also love teaching coding - I find it is one of my most creative endeavours - are the more I push myself (and my students) the more fun and rewarding it is .... and as you say the more they have to hook into character strengths such as grit. First day back at school I had a student ask me why school wasn't as fun as the holidays! I had no adequate answer to that except to think that it is our responsibility to ensure it is - or at least it comes close to it!
    The whole deconstructing and reconstructing approach of computational thinking in valuable across all areas as well - a very useful thinking skill not just for coding.
    Thanks so much for your comments. Cheers, Jill.