Coding ยท Python ยท games ยท projects
Learn to code: write it, run it, make it better.
Start with free coding games, move on to Python you can edit and run on the page, and build real programs from FizzBuzz to a Rubik's Cube simulator. No installs, no sign-up.
Choose by age
A route for every learner
Ages are a guide. Start where the learner is comfortable and move on when it feels easy.
Ages 6 to 8: play and sequence
Block-style thinking: give a character steps, use loops and make choices. Code Jungle and Code Robot start here.
See how โAges 9 to 11: first Python
Print, variables, loops and if statements, using short programs you can change.
See how โAges 12 to 14: functions and projects
Functions, lists, dictionaries and puzzles such as primes, ciphers and binary search.
See how โAges 15 and up: algorithms and more
Sorting, searching, data structures, web development and competitive programming.
See how โPlay to learn
Free coding games
Code Jungle
Write Python to guide a monkey through 24 levels.
Open โCode Robot
Give a robot commands to reach the goal.
Open โTurtle Studio
Draw shapes and patterns with code.
Open โPython practice
Small exercises with instant checking.
Open โPredict the output
Read code and say what it prints.
Open โHTML and CSS lab
Build and style a web page.
Open โSorting visualiser
Watch algorithms put numbers in order.
Open โPathfinding visualiser
See how a computer finds a route.
Open โNew ยท free course
Web Developer Path: HTML, CSS and responsive layout
18 lessons in 3 modules. Each one explains the idea, shows a colourful example you can run, and gives you code to type and check.
How the web works and your first HTML page
Complete the page: give it the title `My page`, put an `h1` heading inside the body, add two lines of text separated by `<br>`, and add an HTML comment.
HTML foundationsAdding CSS: three ways and three selectors
Colour the `h1` text, give `.intro` a `background-color`, and give `#special` both a `color` and a `background-color`.
CSS stylingResponsive design and the 12-column grid
Inside a `div` with class `container`, build a `div` with class `row` that holds three `div` columns with class `col-md-4`, each containing an `h3` heading and a paragraph.
Responsive layout with a CSS frameworkNew ยท advanced, premium, free for now
Coding Grandmaster: algorithms, data and AI from scratch
46 lessons in 8 modules for learners who know Python basics: algorithms, bit tricks, probability, statistics, data science, machine learning and neural networks, all built by hand and checked in your browser.
How fast is it? Counting steps
Write pair_checks(n): two nested loops that count every pair (i, j) with i smaller than j among n items, and return the count. The program prints pair_checks(10).
Algorithms and speedEuclid's shortcut
Write gcd_steps(a, b) returning (gcd, steps) where steps counts the remainder steps, and lcm(a, b). Print gcd_steps(48, 18) and lcm(4, 6).
Number magicSeeing the bits
Print each of 5, 12 and 255 as 8 binary digits, and write count_ones(n) that counts the 1 bits using & and >>.
Bit playCounting outcomes
Write ways(target), the number of dice pairs that add up to target, and as_fraction(top, bottom) that returns text like 1/6 in lowest terms. Print the chance of a total of 7.
ProbabilityAverages
Write mean(data), median(data) and mode(data). If several values tie for most common, mode returns the smallest of them. Print all three for the list.
StatisticsRecords, filters and rankings
Keep the students whose score is at least cutoff, sort them by highest score (ties by name), print how many qualified, and print the first top of them as a numbered list.
Data science from scratchNew ยท premium, free for now
Python Studio: 18 creative projects
Turtle art, secret codes, card and dice games, functions that draw, and bouncing animation. Real Python that runs and checks in your browser.
Your first drawing: a square
Use a for loop to draw a square with sides of 100.
Premium ยท free for nowProject: break the code
Write decode(text, shift) that undoes a shift code, and use it to read wkh txlfn eurzq ira (shift 3).
Premium ยท free for nowProject: a smiley factory
Write draw_smiley(x, y) that draws a gold face, two black eyes and a smile at that position, and call it three times at x = -120, 0 and 120.
Premium ยท free for nowNew ยท free course
Learn Python, step by step
24 short lessons in six modules, from your first print to functions and a small project. Each one has an editor, instant checking and a game to practise with.
Your first program
Make the program print exactly: Hello, world!
Hello, PythonPutting values into text
Print Asha is 11 years old. using an f-string with the variables name and age.
Working with textAsking a question with if
If temperature is above 30 print Hot day.
Making decisionsRepeating with for
Print the numbers 1 to 5, one per line.
LoopsLists: many values in one
Print the first pet, the last pet, and how many pets there are.
Lists and dictionariesFunctions: your own instructions
Write a function called cheer that prints Hip hip hooray! and call it twice.
Functions and a projectNew ยท web development
Build web pages: HTML, CSS and JavaScript
Free lessons with a live preview and instant checking, and a free certificate of completion for each track.
Learn HTML
HTML is the language that builds every web page. Type a little code, watch the page appear next to it, and get a tick when you have it right.
8 lessons ยท ages 9++Learn CSS
CSS makes a web page look good. The page is already written; you write the style rules and watch it change as you type.
8 lessons ยท ages 10++Learn JavaScript
JavaScript makes pages do things. Write a few lines, press Run, and see what your program prints. The lessons start from nothing.
8 lessons ยท ages 11++Python
Python you can run on the page
Every example has a Run button. Change a line, press run and see what happens. Programs get a little harder as you go.
Hello world and variables
Print a message, store things in variables and join them together.
Beginner ยท ages 8+Times table printer
Print the seven times table with a loop.
Beginner ยท ages 8+Even or odd
Say whether each number from 1 to 10 is even or odd.
Beginner ยท ages 8+FizzBuzz
Count from 1 to 20. For multiples of 3 print Fizz, for multiples of 5 print Buzz, and for both print FizzBuzz.
Easy ยท ages 9+Add up the numbers 1 to 100
Add 1 + 2 + 3 + ... + 100, and check the answer with a formula.
Beginner ยท ages 9+Countdown
Count down from 10 and finish with a message.
Beginner ยท ages 8+Read
Guides for parents and learners
Maths, coding, AI & parents
Python for kids: where to start, first programs and a simple learning path for beginners
A beginner-friendly path to learning Python for kids: Scratch first, installing Python, five tested first programs (print, input, loops, if, functions), project ideas and tips for parents. Plus free tools to practise with.
Read the guide โMaths, coding, AI & parents
Best Age to Start Coding for Kids (5 to 15)
The best age to start coding for kids, by age group from 5 to 15: what to try first (ScratchJr, Scratch, Python, web), signs your child is ready, and mistakes to avoid. Written for Indian parents.
Read the guide โMaths, coding, AI & parents
Scratch or Python for kids? Which coding language to learn first
A parent's guide to choosing between Scratch and Python for kids: how they differ, the right age for each, how to move from blocks to typed code, and free ways to try both at home.
Read the guide โMaths, coding, AI & parents
How to debug Python code: a beginner's guide to common errors for kids
Learn to read Python error messages and fix the six mistakes beginners make most: syntax errors, name errors, indentation, type errors, index errors and dividing by zero. With examples and a debugging checklist.
Read the guide โMaths, coding, AI & parents
Python practice exercises for beginners: 15 easy problems with answers
Fifteen easy Python practice exercises for beginners with answers: print, variables, loops, lists, functions and FizzBuzz. Try them free in the browser, with no installation.
Read the guide โMaths, coding, AI & parents
Coding games for kids: learn Python by playing (free, ages 7 and up)
A parent's guide to coding games for kids: why typing real code beats only dragging blocks, what sequences, loops and if statements are, and a free coding adventure where children write Python to guide a monkey.
Read the guide โLive classes
Learn with a teacher
Give curious learners a friendly first step into programming. Students make small things, learn how instructions fit together and build confidence by changing and debugging their own code.
FAQ
Coding questions
What is the best first programming language for kids?
Scratch suits ages 6 to 9 because it uses blocks instead of typing. Python is a good first typed language from about 9 or 10, because it reads almost like English. HTML and CSS are a good first step for making web pages.
How do I start learning Python?
Begin with the Python cheat sheet and run the examples. Then try the beginner programs, changing one line at a time, and play the coding games. Short, regular practice works better than long, rare sessions.
Do I need to install anything?
No. Everything on this site runs in your browser, including the Python programs, which you can edit and run on the page.
Is the Python here real Python?
It is a learning version of Python that covers what beginners use: numbers, strings, lists, dictionaries, loops, functions, comprehensions, errors and the math module. Every program on these pages also gives the same output in real Python 3.
What age can children start coding?
Many children start block coding around 6 to 8, Python around 9 to 12 and web development around 11 or 12. Interest and reading comfort matter more than exact age.
How does coding connect to maths?
Loops, patterns, functions and algorithms are all maths ideas. Several programs here, such as primes, Fibonacci and binary, come straight from school maths.
Start a conversation
Want a teacher to guide the learning?
Tell us the learner's age and what they can already do, and we will suggest a starting point. A parent or guardian can make the enquiry.
- Tell us the learnerโs age or grade and goals
- Weโll suggest a suitable class or learning path
- Weโll confirm format, timing and fees with a parent or guardian
Play it, don't just read it
Write some code right now
Free games that need no sign-up. Pick one and play for five minutes.
Pick a game
- Code BuilderThe lines of a Python program are mixed up. Tap them into the rightโฆPlay
- Predict the OutputRead a short Python program and choose what it prints. Then watch it runโฆPlay
- Bug HunterA Python program prints the wrong answer. Find the one line with theโฆPlay
- Code JungleWrite real Python to guide Miko the monkey to every banana. 24 levels:โฆPlay