Projects for your own computer, built with the tools Python programmers use every day: Python 3.14, a code editor, pip and pytest tests. Each one is a few hours of work, for after the course.
These projects run on your computer, not on this site. Python Arena can't see your code or your test results and doesn't grade anything: the project's tests tell you when it works. The checklist on each project's page is yours to tick.
A small command-line program that reads text files and tells you how many lines, words and characters they have, and which words come up most often. You write it in Python on your own computer, step by step, and pytest tests tell you when each part works.
About 3 to 5 hours. A checklist of 9 items to tick as you go.
A small program that keeps a log of the books you've read in a real database, with Python's own sqlite3 module. You write the class that creates the table and adds, finds, changes, removes and totals the books with SQL, and pytest tests check it against a fresh database in memory.
About 3 to 5 hours. A checklist of 9 items to tick as you go.
A memory game in a pygame window: sixteen cards lie face down, and you flip two at a time to find the pairs. You write the game's rules as plain Python that pytest tests without a window, then connect them to the window and play.
About 3 to 5 hours. A checklist of 9 items to tick as you go.
What you need
A computer with Windows, macOS or Linux. A phone or a tablet isn't enough for these projects: you write and run them on the computer.
Python 3.14 (3.12 or newer works too).
A code editor. Visual Studio Code (opens in a new tab) with its Python extension is free and the one the University of Helsinki's course uses; PyCharm works just as well.
Set up your computer
Install Python. On Windows and macOS, download the installer from python.org (opens in a new tab) and run it (on Windows, tick Add python.exe to PATH on its first screen). On Linux, Python 3 usually comes with the system; if python3 --version says something older than 3.12, install a newer one with your package manager or with uv (opens in a new tab).
Check it in a terminal (PowerShell on Windows, Terminal on macOS and Linux). On Windows the command is py (or python); on macOS and Linux it's python3. It prints its version:
Commands for your own computer
python3 --version
Download a project's zip from its page and unzip it. In a terminal, go to the project's folder and make a virtual environment, a folder (.venv) that keeps the project's packages apart from the rest of your computer. Then install what the project needs (pytest, and pygame for a game) into it:
Commands for your own computer
On Windows, the activate line is .venv\Scripts\activate. Activate it again each time you open a new terminal for the project; the prompt then starts with (.venv).
Run the tests. The tests fail at first: they are your to-do list.
Commands for your own computer
python -m pytest
In VS Code, open the project's folder, choose the .venv Python when it asks (or with Python: Select Interpreter), and the Testing panel runs the tests too.
Put a project on GitHub (optional)
Each project has a GitHub Actions workflow (.github/workflows/test.yml): in your own GitHub repository, GitHub runs the tests on its computers every time you push. The results are in your repository, for you to see; Python Arena never sees them.
Sign in to GitHub (opens in a new tab) (an account is free) and create a new repository, public or private, without a README.
Put the project's files in it, with Git or in the browser:
With Git on your computer, in the project's folder:
Commands for your own computer
git init
git add .
git commit -m "Start the project"
git branch -M main
git remote add origin https://github.com/YOUR-NAME/YOUR-REPOSITORY.git
git push -u origin main
You need Git for this: get it from git-scm.com (opens in a new tab) or your package manager. The first time, tell it your name and email, or git commit stops with "Author identity unknown":
Commands for your own computer
The first git push asks you to sign in, and GitHub doesn't accept your account password there. Git for Windows opens a browser window to sign you in. On macOS and Linux, sign in first with GitHub CLI (opens in a new tab) (gh auth login), or paste a personal access token when Git asks for the password. GitHub Desktop (opens in a new tab) signs you in for you, too. The project's .gitignore keeps .venv and Python's own files out of the repository.
In the browser: on the new repository's page, choose uploading an existing file, drag in everything inside the unzipped folder except .venv, then Commit changes. Check that the .github folder comes too: some file browsers hide folders whose names start with a dot (on macOS, Cmd+Shift+. in Finder shows them; on Linux, Ctrl+H in most file managers). Later uploads, once the repository has files, go through Add file, then Upload files.
Open the repository's Actions tab. The workflow Tests installs the project's packages and runs python -m pytest: a red cross means some tests fail (open the run to see which), a green check means they all pass. Each push runs it again.
On a phone, github.com in the browser and the GitHub mobile app both show your repository, its code and the Actions tab with each run's result. You can even fix a small thing in github.com's editor on the phone; the commit runs the tests again. Writing the project and running the tests yourself need the computer.