Thursday, 2 February 2017

The Primary Computing Currciulum

Part 1 - The Challenge

Primary schools have had many challenges to overcome in the last few years one of which has been the implementation of a new subject when ICT was replaced by Computing. A subject which Britain's newspapers inaccurately inform us that requires all children to be coding from the age of 5: the term coding isn't mentioned once in the primary Computing curriculum.
Schools seem to have faced the challenge in one of four ways
  • The school has invested in up-skilling their staff to meet the requirements of the Computing curriculum
  • The school has used outside support to deliver Computing lessons
  • The school has taken a copy my code approach to teaching Computing
  • The school has yet to address the issue of the Computing curriculum.
Obviously, the initial response is the most desired, if not the most common, but all the responses are, to some degree, understandable.
Take the final option: with the demands of a more challenging Maths and English curriculum, it makes sense that the school would put Computing on the back burner. This is, after all, a new subject requiring new skills as opposed to History where the subject content may have changed by the use of historical enquiry remains the same. However, I would like to think that had such a school ever seen a lesson in which children are engaged in computational thinking and the subsequent promotion of soft-skills like collaboration, resilience and risk-taking, then they would be prioritising its implementation.
The copy-my-copy solution refers to those lessons where pupils are given a program on a worksheet and asked to replicate this on the device they are using. While this can be of value, when it is the only method employed to teach children about programming it limits children’s understanding of the computer science concepts set out in the curriculum. Instead of offering pupils the opportunity to apply their knowledge by planning and writing programs to solve problems, we are offering them a computing lesson that resembles digital handwriting.
My enquiries of schools using external support to teach computing as to why they have taken such an option have, more often than not, returned the same reply: ‘We are teachers, not coders; we don't know how to code.’ While I understand where such statements are coming from, I stress that they are teachers, and while they may not yet know how to write programs, they do understand how children learn. They know how to structure lessons to allow pupils to acquire, test, rehearse and apply skills in a safe learning environment - something the local volunteer who ‘codes for a living’ probably doesn't do.
So perhaps the first challenge is not implementing the new computing curriculum. Perhaps the first challenges are making sure that pedagogy is a central factor when the decisions about how to implement the Computing curriculum and c primary teachers that they are in the perfect position to introduce and enthuse pupils about computational thinking and programming.

Sunday, 26 July 2015

Using Lists with Scratch

My class have previously used lists in scratch to create adventure games where the player selects an appropriate item from his/her inventory to solve certain problems. This was nothing too complex: choosing between a banana, a key, a telescope and a piece of wood when faced with the problem of a locked door. Recently I have been looking at how lists can be used in a cross-curricular way and came up with the following idea in maths.

To start off, the children created a variable called random number. Then they wrote a program to make the variable a randomly selected number between 1 and 100 and for the sprite to say the variable. Next we discussed how we could award points based on the properties of the number. The class generated ideas (primes, squares, factors of x, multiples of x,) and then used probability to decide which number property should have the most/least points..

The next step involved children creating each list (based on the aforementioned number properties) and adding the appropriate numbers to these lists. Once this was done, children wrote an algorithm, then a program that checked the random number variable against each list and awarded the appropriate number of points. Some children took it a step further and added a time limit and high score functions to their program. The scratch file that I used to introduce number property lists to the children is available here. Below are screenshots of a pupil's example.





Sunday, 28 June 2015

Beats and Bytes

On June 25th, I had the pleasure of hosting eleven local primary schools for an afternoon of live coding using Sonic Pi.

Before the session had taken place, I had run a cpd session to introduce the teachers to the software and show how the Key Stage 2  computer science concepts can be taught using it. After this session, teachers were armed with the subject knowledge and resources to introduce their children to live coding in preparation for the event.

Beats and Bytes started off with a performance from the school band, The Gigabytes, who performed their composition Samba.

After this, the children, who were in groups of 3 and 4, were given the sheet music to the song the band had just performed and a laptop. Their task was simple: code some of the song and personalise it.

Over the next hour, children changed synths, added effects, created loops, set parameters, debugged - on several occasions a child could be heard telling another that 'every do needs and end' - and had fun. When the time was up, each group plugged their laptop into the speaker system and showcased their composition. The variety of sounds that were produced was fantastic, some of the code I had to look at more than once before understanding what the instructions were.

In my opinion the afternoon was a great success, the visiting teachers departed with complimentary comments and the children were asking when they could come again. One child even said it was the best school trip he had been on. For me, I enjoyed watching the children engage with programming, share ideas and solve problems. Yes kids can code, but more importantly, kids enjoy code!


Friday, 26 June 2015

Using Makey-Makey Boards with Scratch

When I first bought a makey-makey board, I saw it as a toy. However after letting my class play with it, I soon realised it had more educational value than it was letting on, providing a great tool for engagement and motivation.

My first use came while trying to extend some high achievers in ICT, as it was then, when using scratch. The children were already making games with an olympic theme (think Daley Thompson’s Decathlon) and creating a controller with the board was a suitable extension. The problem was it was an extension that everyone wanted to access. By the end of the unit I had bought four more and all of the class had programmed a scratch game controlled by the board.

For the uninitiated, a makey-makey board is a circuit board that connects to a computer via a usb lead. Once connected certain computer inputs can be mimicked by connecting the device to electrical conductors and completing the circuit with an earth connection.

The unit that I now teach, which developed as a result of our tinkering, is described below.

To introduce the board to the children, we watched the makey-makey promotional video on youtube before I gave several boards out with the instruction to connect them to the computer. Once they were able to type something into a text editor, we moved on to playing games on Friv. The challenge here was for children to find games that could be controlled by the board and design a controller to play the game. The next activity combined elements of science and computing as children tested a range of materials to see if they were electrical conductors. The children created scratch programs that identified when an object completed an electrical circuit. By the end of these two sessions the children had a sound understanding of how the boards worked and how they could be used as an input. The next step was designing input based programs in scratch with the makey-makey board in mind.

The children's challenge was to design an activity, containing variables and conditional statements, that would be controlled by the makey-makey boards. Their programs ranged from maze games, to two-player racing games and keepie-uppie games. My favourite though was an on-screen piano that was controlled by a play-doh keyboard (an idea taken from the promotional video). This involved a group of three children working collaboratively to program a piano simulation.The lure of being able to play this piano definitely gave them renewed resilience and ensured that they stuck at this project until completion. After using these boards for a few years, I am still surprised by the ideas that children come up with and the perseverance they show to complete their program and long may this continue.

If you're looking to extend children with their use of scratch but are not yet ready to make the leap to text based programming, using a makey-makey board could be the challenge your class needs.

Resources to support the activities mentioned above can be downloaded from here.

Sunday, 14 June 2015

Introducing Selection with Guess Who


I have discussed how the board game guess who can be used to introduce the concepts of variables in a previous post, but it occurred to me recently that the whole structure of the game is underpinned by selection statements. Therefore it seemed like a perfect way to introduce the concept to children.

Every time a child asks a question in guess who, they are creating a selection statement to follow. They know that if the answer is yes they have to knock down the characters lacking in the characteristic, but if the answer is no they knock down those with the characteristic. By getting children to play guess who, of which there are many cheaper titles with amusing variations on the name available, we can introduce them to the concept of selection using a context they are already familiar with.



To start this session, introduce the children to the idea of creating then, if else statements by asking how the player should respond to certain questions. I have used the scratch selection block to structure this, as the activity was original designed as an unplugged activity for a unit that developed the concept of selection using scratch (I suggest that children mimic the programming vocabulary and syntax they will be using in the unit). After this was introduced, children then played Guess Who and recorded each question they asked and the subsequent actions as if, then else statements. Understanding can be assessed further by asking children to deduce the questions that had been asked from given then and else statements, and by sequencing the questions of others.

After this the children were using scratch to create their own topic based quizzes using the ask and answer functions. However, after sharing the unplugged idea on twitter, Tim Head (@MrHeadComputing) suggested that someone should program a version of guess who. So, in the limited time I had available, I created a simple scratch program that uses events to create questions based on previous answers. Rather than playing the game against an opponent, you pick a character and the computer works out who your character is. I haven't used it with students yet, but can imagine that it would allow children to engage in purposeful computational thinking.  The Scratch file can be found here.
Ben Davies - @b3n3davies












Sunday, 8 March 2015

Unplugged Variables

For the last few years, when teaching variables to key stage 2 pupils, I've mainly focused on scoring systems, timers, lives etc in Scratch games and introduced the concept as a value that is changed. This sat well with children's scientific understanding of the word and was readily accepted.

When ICT evolved into Computing, and variables were mentioned explicitly in the key stage 2 program of study, I thought my explanation of the concept needed to be more accurate. Below is the basic explanation that I give to children and some unplugged activities that can be used to introduce the concept.

Variables are places in computer programs that data can be stored. This data can be changed, recalled or used as required. The variable can only contain one value at a time. Data in variables can be represented as numbers, statements, dates etc. 

Where's the Variable?

As a class we looked at a range of images showing variables in software applications and in other forms like calendars and scoreboards. We identified the variable(s) and discussed when they would change - when a piggie is destroyed increase score variable by 500 (angry birds).



Comparing Variables


I used this activity to support programming a game to identify the winner when a points system is used. The scoreboard from a soccer game gives plenty of paired variables that can be compared. Using these values, we decided which team had scored the most goals, had the most corners, made the most saves. Then we discussed how to write an algorithm that would compare the values and state who the winner is (we found it useful to give pairs of variables names - saves 1 & saves 2). Example if saves 1 > saves 2 then say "Team 1 Winner"; if saves 1< saves 2 then say "Team 2 Winner". If saves 1 = saves 2 then say "Draw no winner"

Guess Who

In this activity we used the statements true/false to create facts about Guess Who characters.
First pupils had to identify the characters from the information given.
Glasses: True
Hat: False
Blonde Hair: True
Moustache: False

Once this understanding was secure, the children used the full set of characters to create variable statements to describe other characters. They then swapped statements and worked out who the statements where describing.

Dice Games

The first activity required children to follow an algorithm to create a scoring game using dice. After playing the game and discussing what certain parts of the algorithm meant, they were then challenged to design their own dice scoring game and write an algorithm for it.

Whenever I use an unplugged activity, I attempt to match the language used in it to the predetermined vocabulary and syntax of the programming language we are using and, with variables, the way the concept will be used. Some of these activities attempt to mimic Scratch, others text-based languages. 

Sunday, 15 February 2015

Go on bore them - A Review

Whether you're a newly qualified teacher starting out on your career, an experienced classroom practitioner, or somewhere in between, you will find something to take away from Terry Freeman's digital publication Go On Bore Them.

The premise of the booklet is how teachers make ICT lessons excruciatingly dull and draws on the author's 30+ years experienced in education as a teacher, inspector, consultant and writer. The book is littered with examples of how teachers have taken a subject, which by its nature is engaging and relevant, and made it boring. More importantly though, each anecdotal error is accompanied by an explanation of why this created a boring lesson, before offering advice on how it could be taught and why such strategies would engage learners.

The advice given is sequenced into the structure of a traditional lesson, working its way from starter through main activities (dealing with under and over-challenge), to the plenary. The evidence Terry uses- selected form his time as an inspector- is presented in a light-hearted way and did, on more than one occasion, caused me to chuckle. The narrative voice that comes through is one of support rather than criticism, as a reader you feel you are benefiting from someone's vast experience. He shows you mistakes that others have made and helps you understand why these choices were to the detriment of learning and offers solutions. Such solutions are based in pedagogy and offer advice that could have a long-term impact on teaching and learning rather than a quick fix for a specific problem. I found it impossible whilst reading this publication, not to reflect on my own practice and on a few occasions my cheeks flushed with colour as I remembered mistakes I had made. 

While this booklet may appear to be about teaching with technology and uses secondary school as it main evidence base, it offers plenty for the non-specialist and primary teacher. Neither is it affected by the changes of Curriculum 2014 whereby ICT has evolved into Computing. This publication is for those who have a growth mindset, who want to reflect on their own practice and who want to create purposeful learning environments. So it should be relevant for any teacher. Put simply this digital booklet focuses on pedagogy, technology is merely the context it uses, and shows that by neglecting how children learn, we really can bore them.

Go On Bore Them, can be downloaded from Terry Freeman's website ICT in Education