Take coding to the next level
So your students have learned the computing basics and you’re wondering what to do next? Add another dimension to your teaching with our expert ideas for classroom teachers
Many teachers and pupils have now got to grips with the basics of coding (input and output, variables, sequencing, selection, iteration and the like). The next stage is to stretch students, make sure they have an engaging learning environment and encourage them to go further.
This article looks at some practical ideas for classroom teachers to help pupils take coding to the next level.
Speak another language
Teach pupils the basics in more than one programming language. This will allow them to progress from a visual-based language, such as Scratch, to a text-based one, such as Python.
Once pupils complete an activity in Scratch, they can learn how to do the same in Python. You can also extend this to other languages such as Java, C#, Swift or Ruby. This will stretch students, show them the syntax of another language, and help them to practise their coding and consolidate their learning.
Pupils can also share what they have learned in a “Computing Voice” or “Digital Leaders” group to inspire their peers. Plus, teaching code in different languages gives pupils the chance to discover which one they prefer, making them more likely to experiment with it in their own time.
Get physical…
Physical computing can take many forms and lends itself well to cross-curricular activity. Building a robot in a design and technology class or after-school workshop, for example, gets pupils used to understanding and following written instructions, providing links with literacy. Programming the robot to carry out an activity, such as following a certain path or track, then teaches them about direction and angles, offering a cross-curricular link with maths. They could also explore speed and rotation by observing the robot’s wheels.
Just moving a robot along a path will get pupils excited about seeing their code “come to life”. You can extend this activity by putting sensors on the robot and programming it to perform a certain action if, say, it comes off the track or when it reaches the end point. This will teach pupils how sensors work, and can lead to extended discussion about different types of sensors, the data they collect and how this is used in specific areas, showing the power of computing beyond the classroom.
…but also encourage abstract thought
A robotic activity like this also continually reinforces computational thinking, which is the core of the computer science curriculum. For example, it helps pupils to explore the concept of abstraction - filtering out a pattern’s unnecessary characteristics. In this case, pupils can ignore the detail of the path and look only at the points to which they wish the robot to move.
You can further develop their analytical thinking skills by extending the activity to look at what might happen if there were two robots on the track, perhaps by introducing the idea of driverless cars. This can potentially give way to exciting conversations around areas such as the ethics of artificial intelligence. Physical computing also boosts vital soft skills such as perseverance and collaboration.
You can carry out physical computing with a range of devices such as the BBC Microbit, Raspberry Pi or Lego® Mindstorms®. Lego’s EV3 kit, for example, has been developed for science, technology, engineering and maths (Stem) activities and computer science lessons, equipping teachers with pupil-ready resources, assessment tools, sample programs, building instructions and much more.
Should your school have a maker space, providing kit will allow pupils to further problem-solve in their own time, and be creative in the world of physical computing.
Set new challenges
Challenges can either be extended tasks or projects with a specific outcome. Pupils can undertake them in class or through an after-school club or other extracurricular activity. Lego® Education has plenty of kit to encourage creativity in pupils.
Annual events such as National Coding Week are helpful here, as they will teach pupils the skills required to become developers, such as debugging, testing and collaboration. You can also encourage students to enter national competitions, such as those run by Lego. Alternatively, have a Stem ambassador visit your school and work with groups of pupils to show them the skills used in the workplace.
Create a soundtrack
Continuing with the cross-curricular theme, pupils can also experiment with Sonic Pi. Described as “the live coding music synth for everyone”, Sonic Pi allows pupils to code their own musical compositions. It is based on the Ruby programming language, helping pupils to develop their skills in that area, and can be used on either a Raspberry Pi device or a Windows PC.
Design beautiful interfaces…
Another way of stretching pupils is to show them how to build a graphical user interface (GUI) in a text-based language such as Python. A GUI allows people to interact with a computer or other digital device by clicking on or pressing icons, rather than writing out code.
Teaching pupils about GUIs will encourage them to think about Human-Computer Interaction (HCI), a field of study focusing on the design of computer technology. Essentially, pupils will learn how to make their product suitable for either an expert or a general audience, as this will ultimately determine its marketability and success.
…and teach functionality
Once they are proficient in writing code, students can address the efficiency of their programs. Functions are one way of improving this. A function is a block of code that performs a specific task; once you have written it, you give it a name, which you can then use as a shortcut any time you want the program to repeat that task. The advantages of doing this are that the user only types the piece of code once, thus saving time, reducing the chance of errors and in turn reducing debugging time.
Pupils can further develop their knowledge and skills with an understanding of files. File-handling allows students to create/open, read/ write, and close files, or append data into an external file. This may involve storing data from their own program or importing data previously generated by their own program or from other files.
Using external files allows data to be stored when the program is closed. Examples of file handling can be as simple as storing marks from a test or quiz, which can later be read back into the program if needed. File handling lends itself to further string manipulation skills, such as searching for particular data in an external file or stripping out unwanted characters before reading data back into the program.
Beverly Clarke is an author, education consultant and Computing at School (CAS) Master Teacher in the South West of England. Additional input by Jayne Fenton-Hall, head of computing and CAS Master Teacher at a school in Surrey