100% free and interactive Python course for beginners
See the codefuturecoderThis is a 100% free and interactive course for people to teach themselves programming in Python, especially complete beginners at programming. It is carefully designed to reduce frustration and guide the user while still ensuring that they learn how to solve problems. The goal is for as many people as possible to learn programming.
You can try it out here: https://futurecoder.io/
Please consider contributing or donating!
Alternatively, come have a chat on discord.
For a fuller demonstration and explanation, watch this video.
| The course is a fully interactive 'book' which requires the user to run code in the provided editor or shell to advance: | |
|
| |
| This requires a mixture of solving problems or simply typing and running provided code. In the latter case, the user is often kept engaged by being asked to predict the output in a simple multiple choice question: | The code at each step is checked automatically. If needed, the student can get small hints to gradually guide them to the solution: |
|
|
|
| If they're still really stuck, they can reveal the solution bit by bit: |
Or in some cases solve a Parsons problem instead, where they have to put a shuffled solution in the correct order: |
|
|
|
Tracebacks are more helpful than usual, with several enhancements:
| Common mistakes can be caught and pointed out to the student. This includes specific checks in some steps as well as linting tailored for beginners. |
|
|
|
|
Several debuggers are provided, including snoop... | |
|
|
|
|
...and Python Tutor | |
|
| |
git clone it, and enter the top-level futurecoder folder.poetry install to install Python dependencies../scripts/generate.sh. This will generate various static files from Python used by the frontend and run some tests. Repeat this step whenever you change Python files.frontend folder:
Install node >= 22.17.0.
Run npm ci to download dependencies.
Run npm run build and then copy service-worker.js from the course folder to the public folder. The service worker is used by sync-message to handle time.sleep and reading from stdin (e.g. input()) in Python. If you want to enable caching (not a good idea when developing), set the environment variable REACT_APP_PRECACHE=1 when building.
Run npm start to start the frontend development server.
To learn more about the system, see the contributing guide.
To explore the course more freely:
547 followers · starred Jan 2023
5,137 followers · starred Jan 2023
189 followers · starred Feb 2022
48 followers · starred May 2025
100% free and interactive Python course for beginners
See the codefuturecoderThis is a 100% free and interactive course for people to teach themselves programming in Python, especially complete beginners at programming. It is carefully designed to reduce frustration and guide the user while still ensuring that they learn how to solve problems. The goal is for as many people as possible to learn programming.
You can try it out here: https://futurecoder.io/
Please consider contributing or donating!
Alternatively, come have a chat on discord.
For a fuller demonstration and explanation, watch this video.
| The course is a fully interactive 'book' which requires the user to run code in the provided editor or shell to advance: | |
|
| |
| This requires a mixture of solving problems or simply typing and running provided code. In the latter case, the user is often kept engaged by being asked to predict the output in a simple multiple choice question: | The code at each step is checked automatically. If needed, the student can get small hints to gradually guide them to the solution: |
|
|
|
| If they're still really stuck, they can reveal the solution bit by bit: |
Or in some cases solve a Parsons problem instead, where they have to put a shuffled solution in the correct order: |
|
|
|
Tracebacks are more helpful than usual, with several enhancements:
| Common mistakes can be caught and pointed out to the student. This includes specific checks in some steps as well as linting tailored for beginners. |
|
|
|
|
Several debuggers are provided, including snoop... | |
|
|
|
|
...and Python Tutor | |
|
| |
git clone it, and enter the top-level futurecoder folder.poetry install to install Python dependencies../scripts/generate.sh. This will generate various static files from Python used by the frontend and run some tests. Repeat this step whenever you change Python files.frontend folder:
Install node >= 22.17.0.
Run npm ci to download dependencies.
Run npm run build and then copy service-worker.js from the course folder to the public folder. The service worker is used by sync-message to handle time.sleep and reading from stdin (e.g. input()) in Python. If you want to enable caching (not a good idea when developing), set the environment variable REACT_APP_PRECACHE=1 when building.
Run npm start to start the frontend development server.
To learn more about the system, see the contributing guide.
To explore the course more freely:
547 followers · starred Jan 2023
5,137 followers · starred Jan 2023
189 followers · starred Feb 2022
48 followers · starred May 2025