Free tools for teaching data representation of images with python

In Computing at KS3 in England, students have to learn how images can be stored and manipulated using binary data.

Pupils should be taught to:

…understand how instructions are stored and executed within a computer system; understand how data of various types (including text, sounds and pictures) can be represented and manipulated digitally, in the form of binary digits

This can be a tough part of the curriculum to cover in the limited time available to most schools but it can also be a really exciting way of bridging the gap between the Computer Science and iMedia / IT facets of the course.

In order to follow up from a series of lessons using Photoshop to create and manipulate high quality graphics, I wanted students to be able to understand how the images that they’d just created were stored on a computer.

There are some excellent ‘unplugged’ resources out there where students can see how simple images can be represented by binary data but I wanted Y8 students to be able to write, edit and debug some simple python code that showed them how computers store and process images.

There are two main ways that computers use binary data to represent images. This blog post details how you can use free web based tools to get students to explore how computers can represent and manipulate both bitmap and vector images.

Data representation of images: Bitmap images
Data representation of images: Bitmap images
Data representation of images: Vector images
Data representation of images: Vector images using

The next page gives some activity ideas for getting students to understand how vector images work.

Continue ReadingFree tools for teaching data representation of images with python

Making computing accessible for all

This series of posts aims is aimed at UK secondary school teachers to give some free ideas and resources in order to help make computing lessons engaging and inclusive in order to help attract more and more students to continue with the subject at GCSE and beyond.

When students are choosing their GCSE options they seem to love asking teachers why we chose to teach our subjects.

Often, I can almost see the cogs turning inside some of my students’ heads, weighing up whether they should choose Computing over Art; ticking off the benefits of each subject as they make the first real choice that might affect the rest of their lives.

Whatever they use to make up their mind – who teaches the subject / what their friends are choosing / what they’re good at / what they enjoy – there’s clearly a lot more that we can do to promote Computer Science as a viable, challenging, enjoyable and worthwhile option. The national figures show a pretty poor GCSE uptake of GCSE Computer Science compared to other eBacc subjects and an abysmal uptake by girls. Boys, whilst outnumbering girls at KS4 and beyond, are being outperformed by girls from KS2 onwards. So there’s definitely something not right there that needs addressing.

CAS include
CAS #include. Making computing accessible for all

I’ve been slowly working through the brilliant advice on the CAS #include site about how to ensure that my Computing lessons aren’t just catering for people like me and it strikes me that the way to be inclusive for all also looks and sounds like the way to be engaging and stretching for all. This post aims to share some of the mistakes I’ve made as well as some of the things I’m trying to put right to make sure that all students get the most out of their computing lessons, hopefully also boosting recruitment at KS4 too.

I’ve come up with 6 Cs to use as a checklist for planning engaging and inclusive computing projects:

Continue ReadingMaking computing accessible for all

Making computing accessible for all (1/6): Creative computing lessons

This post is the first of six in a series with ideas and resources on how to make computing lessons engaging and demanding for as many students as possible. Click here for the original post.

Creative Computing

Ideas and resources for creative computing lessons

I think creativity is one of the most over-used words in teaching. Put a few fancy pictures on a worksheet and it’s described as ‘creative’; Involve some design or multimedia in a project and it’s suddenly ‘creative’; Set students an open ended challenge that keeps them busy for a few minutes and that’s ‘creative time’.

Only, it rarely ever is.

There are loads of definitions out there for creativity but I like the the literal translation: the art of using your imagination to creating something new.

Re-creating something that someone else has already made isn’t creative – it can be restrictive and frustrating. The step-by-step guides that are so helpful for us teachers can be great for getting students started, but if that’s all they ever follow then there’s a good chance we’re limiting their creativity.


  • Don’t always get students to follow step by step instructions. Use them to introduce new skills but ensure that there’s time and opportunity to explore beyond copying or following rigid instructions.

e.g. “I’ll teach you how to make a game that does x, y and z, then it’s down to you to add any two additional features”

  • Choose projects where students can customise / extend / adapt / create their own ideas.

e.g. “Create a game that will occupy a two year old for as long as possible. You can use any website / app / tool and base your idea on any existing game as long as it’s suitable for a parent to give to a 2 year old and isn’t identical to something already out there”

  • Creativity and imagination are closely linked and imagination is heavily influenced by our interests and abilities. Create opportunities for students to find an outlet for their interests in their work

e.g. “Last week we learnt how to create a webpage and style it using CSS. Today I want you to create a news headline webpage with an imaginary story. Celebrity been abducted by aliens? Football team relegated? You choose any three headlines as long as you keep it clean and don’t write it about anyone in this class”

Key questions:

Are students simply copying (from a video / from me / from each other / from a website) or have they been free (or forced!) to innovate and think for themselves?

Example activity: Random story generator

The above code generates a random fairy tale from three parts of three different stories. It demonstrates how lists can be used to store more than one piece of data and how to choose something at random from a list. Students have to master the python syntax to add their own fairy tale into the lists.

Research and further reading

This paper highlights the role of creativity in recruiting and retaining women and minorities into studying Computer Science. It rejects the idea of creativity for the sake of it as a tokenistic gesture but defines the core computer science concept of problem solving as inherently creative. The paper makes strong links between collaboration and creativity in order to dispel the image of a ‘lone code monkey’ and replace it with a pedagogy that allows individual students to become enthusiastic collaborators who take pride in their work.

Sarah Monisha Pulimood and Ursula Wolz. 2008. Problem solving in community: a necessary shift in cs pedagogy.
Continue ReadingMaking computing accessible for all (1/6): Creative computing lessons