Courses

Start learning with us today to build your computing skill set.

You can take our courses about topics ranging from programming for beginners, to the hardware and software underpinning the internet — all for free.

Are you a teacher in England?

Please access our courses through Teach Computing.

Visit Teach Computing

Pedagogy-focused

Improve how you teach computing and programming with these courses.

Scratch to Python: Moving from Block- to Text-based Programming

Discover how you can support learners to use the thinking and programming skills they learned in Scratch in text-based programming languages like Python.

Supported By Google

Impact of Technology: How To Lead Classroom Discussions

Explore the ethical, legal, cultural, and environmental concerns surrounding computer science.

Supported By Google

Creating an Inclusive Classroom: Approaches to Supporting Learners with SEND in Computing

Explore ways to make your computing lessons more inclusive for learners with special educational needs and disabilities.

Programming Pedagogy in Primary Schools: Developing Computing Teaching

Investigate a range of pedagogical approaches for teaching programming to primary school learners (ages 5–11).

Programming Pedagogy in Secondary Schools: Inspiring Computing Teaching

Examine a range of pedagogical approaches suitable for teaching computing in Key Stage 3 (learners aged 11–14).

Get Started Teaching Computing in Primary Schools: preparing to teach 5- to 11-year-olds

Improve your subject knowledge and develop inclusive lessons to teach computing to primary school learners (ages 5–11).

Teaching Programming to 5- to 11-year-olds

Increase your programming knowledge and develop effective lessons to teach programming to primary school pupils (aged 5–11 years).

Teaching Computing Systems and Networks to 5- to 11-year-olds

Increase your knowledge of "computing systems & networks" and plan how you will teach young children about this topic.

Teaching Physical Computing to 5-11 year olds

Teach your young learners how to create electronic circuits, then learn to control them using block-based programming languages.