Teaching Coding for the First Time

Please note, feature image is from Learn 2 Code and has been used in this post with permission.  For more information about the Learn 2 Code website, please click here.

***

Truth

I get it, I really do.  Technology is progressing far more quickly than anything we have ever had to ‘keep up with’ historically, and, whilst our world is evolving, education is falling behind.  We are preparing our children for jobs that don’t even exist yet in a truly digital world.

Look at how far technology has come in the last decade and think, in a decade’s time when our current primary children are graduating into a world of opportunity; what will that opportunity look like?  Truthfully, we don’t really know.  What we do know is that computing will play a huge role in it and it’s our job to give them the skills and tools to work with it.

“But that’s okay for you; you can code!”  I’ve had that said to me on more than one occasion.  How wrong that statement is.  I’m not a programmer or even vaguely competent at coding – anyone who has seen me making my own games in Sratch will know that.  But, we aren’t teachers because we are professional coders.  We are teachers because we are professional learners.  I had to teach coding, so I learned the basics of coding with blocks.

Four years ago, I didn’t know anything about computer coding let alone how to teach it; however, as ICT coordinator at the time in my previous school, I was asked to teach it.  I was scared, I had to find training, I had to look into it and I had to learn quickly because I had no choice.  We are all at that stage now – we all have no choice.  Teaching coding is part of developing children’s digital literacy and we must begin to do it effectively.

Below, I will note the way that I have found through personal experience and in training others to be the best route into teaching coding.  It is very progressive, and allows you as a practitioner to learn and develop at the same time as your children.  It is not threatening and you really can just get started and have fun.  There are many, many other coding websites and resources out there, so please do look into as many different ways as you can to give your learners the best possible experience; this is simply the route into coding that I have found to be the easiest from a teaching and learning point of view.

I have indicated the appropriate class-stages for each subsection below in order to save you taking time to find resources appropriate for your class.

Code.org

code.org is fast becoming the ‘go-to’ website for getting started with coding.  It is really engaging and really progressive and I will always recommend starting here.  Better still, code.org can be accessed on any computer or tablet with internet connectivity.  I will outline all of the benefits of code.org below, but it is really important to note that anyone can start using code.org, and you could even try it with your children tomorrow without ever having looked at it first – it really is that straight forward.

Hour of Code (P4-7)

When I started teaching coding, after some research into it, I was in a school that did not (at the time) have a ICT suite / computer room.  It didn’t even have a laptop trolly.  What it did have was 2-3 desktop computers in each classroom.  Whilst there were some benefits to having continual computer access for children, there was no way in this setup to facilitate whole class computing lessons.  Having spent hours researching how to use Scratch (I’ll talk more about Scratch below) I realised that I’d need to find something that allowed children to learn much more independently.  Fortunately, that’s when I discovered code.org’s fantastic ‘Hour of Code’ page available at code.org/learn.  Thanks to the nature of the Hour of Code courses, I was able to assign slots in the timetable for children to get ‘their turn’ coding and working through the given course.

The hour of code is exactly what it sounds like: a one-hour coding course that children can work through on their own or with a partner.  I do find that coding works much better in pairs, as coding is quite a communicative task where children will naturally work together and troubleshoot with their partner, whereas when learning individually I do see more children ‘giving up’.  Moreover, the courses are all designed around games/films that the children know and love, and it really does engage them.  What’s more, for less able readers they can ‘play’ the instructions (I’d recommend headphones for this…) and for children with EAL, you can use code.org in any language; simply select the child’s language from the dropdown menu!

Since that time, I have used Hour of Code courses as a great introduction to coding for all of my classes in P4-7.  An able P3 class could possibly manage it too, but I’ve not tried it yet with any P3 classes.  There are some courses available on the code.org/learn page that take you to different browsers – I wouldn’t recommend these.

The most popular hour of code course with the children that I have taught are:

  • Angry Birds
  • Flappy Birds
  • Star Wars
  • Minecraft (all three Minecraft courses available under the Minecraft tile – although I’d recommend ‘adventurer’ as the best starting course)
  • Moana
  • Code with Anna and Elsa
  • Code Your own Sports Game

The developers do continually add new games and tiles, so it’s always current for the children and very engaging.

Code.org courses (P1-7)

studio.code.org/courses is the section of code.org that really provides the most personalised and tailored progressive coding experience.  As it is based on (I believe) the American education system, the ‘stages’ don’t exactly correlate to the Scottish classes, but I will provide an overview below of what has worked for me.

For primary, you want to be using the Grades K-5 tab.

I have used code.org courses with all of my classes with little issue, including primary ones from their second term in school (I think it’s beneficial in term one to use Microsoft Paint for children to use mouse control to draw pictures)

The progression that I have followed is:

P1 – Course A (Lessons 1-7)
P2 – Course A (Whole course)
P3 – Course B
P4 – Course C
P5 – Course D
P6 – Course E
P7 – Course F

Please note though that you may wish to use more/less advanced courses for your class, however, I have never had any problems with the above progression and this allows all children to develop their skills yearly.  Whilst some courses start very simply, they all develop in a very progressive manner that is aimed at deepening core understanding of the concepts.

Within each course are ‘unplugged activities’.  These are lessons that you can print off and work on with no access to a device with your children, and generally explain a new concept in a practical manner.  In the past, I have skipped these and it really is optional to do them or not.

Assigning work (p1-7)

You will notice at the top of code.org that there is a ‘sign in’ option.  It is free to set up a code.org account, and you can add your students, generating usernames and passwords (picture passcodes for infant classes, where they select ‘their’ picture).  By doing this, you can track pupil progress and get analysis about their learning and next steps: as I said, it is the most progressive coding course out there!

Code.org – the role of the teacher

I use the term ‘teacher’ quite lightly in this section, as actually you are more a facilitator in code.org lessons.  My first rule is NEVER show a child how to solve a code problem.  The main learning, in addition to instructional writing and often maths concepts, that your children will access from coding is problem solving – known in this case as debugging.  When something goes wrong, the children must work it out themselves.  That’s not to say you can’t help, but instead of showing a child, ask things like “why do you have… block” or “what is the purpose of…” or “why is your character ending up there?”  By ‘solving’ a code problem for a child, you’re effectively saying, I can do it so ask me rather than asking the children to develop their resilience.  Coding should not be quick and easy, and code.org is very good at giving the children just the right level of challenge – heck, even I am sometimes challenged by the problems, but the smile that comes over their face when they solve the problem is so worth it.

The only time I do ‘show’ the children how to do something is when a new block is introduced.  I pick one level from the lesson and solve it in front of the children, modelling how the new block is used.  I normally deliberately make a mistake in front of the children and debug it with them to show them that it will happen, and that mistakes are very helpful in coding, as they indicate how to improve.

Scratch JR (P1-3)

Please note that this is an app, so you will need a tablet device for your children to access ScratchJR.

There are many great apps for coding out there, but few give younger children the power to design and create as well as ScratchJR.  ScratchJR is a free app, and very powerful.  I would recommend using the code.org course with your children before using ScratchJR, as it is essentially a ‘blank canvas’ app, where children create something from scratch.

You may want to familiarise yourself with ScratchJR before using it with your children.  There are many resources available for ScratchJR lessons.  Here are two of my personal favourites:

 

Scratch (P4-7)

Essentially the ‘big brother’ of all school coding platforms, Scratch is one of the most powerful programs out there.  As of August 2018, Scratch 3.0 (in Beta at the time of this post) works on computers and tablets with internet access.  Scratch is also however the reason that so many teachers fear coding as it’s a blank canvas with a lot of blocks and options.  Fortunately, if your children have worked their way through the code.org courses, they will be quite familiar with the blocks, as it is very similar, and will be able to use Scratch quite well.  The only limit is their creativity.

There are limitless resources available for teaching Scratch, but I would recommend familiarising yourself with Scratch, or attending CPD courses in your area before using it in the class.  Great teaching resources can be found the following places amongst many others:

I have added and will continue to update a list of Scratch resource websites on my ‘resources and lesson plans‘ page.

 

Conclusion

Providing your children with weekly access to coding experiences, whether online or offline, will hugely boost their attainment in literacy and numeracy as well as in computer science.  Problem solving, instructional writing, using axis and coordinates, angles, measure, logic, communication and collaboration – these are just a few of the skills that children develop when coding.

I was sceptical before I started teaching coding; but is is one of these things that you will not see the benefits to your children until you start giving your children experience of coding.  Don’t be afraid to try it, and don’t be afraid to learn with your children.  We are all on a digital journey together – where our destination is, who knows? But it’s going to be a good one!

 

I will be creating additional future posts about coding, including unplugged coding and also coding with programmable toys and devices.

 

Additional CLPL opportunities can be found here:

*Barefoot – free resources and training to build confidence in teaching computer science

*Computing at School – free articles, resources and training in computer science