Computing courses

Discover our range of free computing courses. Learn to code your own programs, make exciting projects, and build your computing skill set.

Our online courses have something for everyone, from absolute beginners to more experienced programmers.

Learn about Python, Scratch, AI and machine learning, web design, cybersecurity, computing education, and much more.

Teaching computing to 11- to 18-year-olds (subject knowledge)

Free online courses for teaching computing in your school. Get support and guidance on how to deliver computer science for secondary or 11- to 18-year-old children.

Teach teens computing: Programming in Python

Explore the basics of Python and code your first program.

Teach teens computing: Functions and algorithms, searching and sorting in Python

Take your Python skills further by exploring algorithms, list structures, sorting, and searching.

Support kids' projects: Web development

Discover web development and learn to build your own interactive websites using HTML, CSS, and JavaScript.

Teach teens computing: Cybersecurity

Discover the core ideas of cybersecurity

Teach teens computing: Encryption and cryptography

Discover the history of encryption and learn how it’s used in the modern world.

Teach teens computing: Databases and SQL

Learn what databases are and why we use them. Then explore how to use SQL to search and manipulate the data.

Teach teens computing: Data representation

Learn how data is represented through media: audio, visuals, and text.

Teach teens computing: How computers work

Explore the fundamentals of computing: computer architecture, binary logic, data processing, circuits, and more.

Teach teens computing: Computer networks

Build your knowledge and understanding of computer networks as a computer science teacher.

Teach teens computing: Impact of technology

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

Teaching Physical Computing with Raspberry Pi and Python

Create simple systems that respond to and control the physical world using the Raspberry Pi and Python.

Teach teens computing: Object-oriented programming in Python

Learn how you can support learners to understand object-oriented programming principles by creating your own text-based adventure game in Python.

Networking with Python: Socket Programming for Communication

Explore the principles that industry professionals use when programming for networks, and learn how sockets are used to abstract the complexities of the internet.

Teach teens computing: Understanding AI for educators

Discover the world of artificial intelligence (AI), and how it is set to change the ways we teach and learn. Gain valuable experience discussing and using AI tools with your learners.