This post is the second 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.


Ideas and resources for challenging computing lessons

There’s no point making lessons fun just for the sake of it. Ok, maybe it’s acceptable in the odd lesson just before the Christmas holidays, but I’d rather my students left my lessons feeling like they’ve achieved something than leaving just feeling like they’ve enjoyed themselves.

Fun isn’t a dirty word, but it’s not an end in itself: it’s a natural bi-product of lessons with just the right amount of challenge.

Too much challenge and everyone leaves frustrated and demotivated. Too little and boredom is endemic.

Students don’t all have the same capability, pace, independence and resilience, which means setting the level of challenge is almost impossible to get right for everyone. But lessons / projects with a low floor and high ceiling – that start easy but don’t shy away from difficulty – mean that everyone is going to be suitably challenged at some point along the way.


  • Use templates for code / games rather than expecting students to always start with a blank canvas. Unfinished or deliberately broken code is great as it gives students a starting point to work from.

e.g. “There are 3 syntax errors in this code and one logical error for you to debug”

  • Get used to setting short challenges and puzzles – often at the start of the lesson. Start with something easy and get more difficult as your classes get used to problem solving

e.g. “Today’s learning objectives have been encoded with a caesar cipher: decode them and tell me the key: Avkhf dl’yl nvpun av slhyu ovd av bzl spzaz pu wfaovu”

  • Allow your students to choose different difficulty challenges for lesson / homework. Make sure the complexity of the work increases rather than just the quantity for the most able students.

e.g. “Beginners should make an animation on the micro:bit using built-in images like Image.HAPPY and Image.SAD. Anyone up for a challenge should define your own images to use in your animation

Key questions:

Who’s leaving my lesson feeling like a failure? Who’s leaving my lesson without having learnt anything new?

Example activity: Micro:bit animation

The code above simulates a BBC micro:bit to display an animation consisting of two images. There are three challenges of varying difficulty for students to experiment with lists to create their own animations.


Research and further reading

This paper looks at the challenges facing computing teachers, particularly when it comes to differentiation: stretching the top end whilst not leaving other behind.
Recommendations include:
-Unplugged activities
-Focusing on computational thinking concepts rather than syntax
-Scaffolding programming activities rather than starting from an empty file

Sentance, S. & Csizmadia, A. Educ Inf Technol (2017)