Skip to content

pytudes

A collection of short Python programming exercises and worked solutions in Jupyter notebooks, by Peter Norvig.

Stars
24.4k
Forks
2.5k
Licence
MIT
Language
Jupyter Notebook
Last update
8 days ago
Type
Learning resource

What it is

Pytudes is a set of short Python programs written as Jupyter notebooks, each meant to help a reader sharpen a specific programming skill. The README compares it to practicing an instrument: the goal is building craft through study, not getting a quick finished tool. Each notebook can be opened on GitHub, Google Colab, or nbviewer, and most have a short description explaining the topic.

  • Open a notebook such as Largest prime factor in Google Colab and run the code without installing anything
  • Read the Lisp interpreter tutorial to see how a small interpreter is written in Python
  • Compare human and LLM solutions to the same Project Euler problems side by side
  • Work through an Advent of Code 2025 notebook to practice puzzle solving

Great for

  • Python learners who want practice problems with worked explanations
  • Programmers who already know basics and want to study problem-solving technique
  • Readers interested in Project Euler or Advent of Code style puzzles
  • People curious how language models handle programming tasks, based on the LLM-focused notebooks

Not ideal for

  • People who want a finished library or app to use in a project, since the README describes study material rather than software to install
  • Absolute beginners who need step-by-step introductory tutorials, because the README says this collection is not meant to be a general tutorial series
  • Anyone needing a supported, versioned API, since the README does not describe one
Step-by-step guide: how to use pytudesInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Use it in the browser (or self-host)

    Clone the repository to work with the notebooks locally

    git clone https://github.com/norvig/pytudes
  2. 2

    Run it

    • Open the repository page on GitHub and pick a notebook from the index
    • Click the Colab link next to the notebook to run it in your browser
    • Or clone the repository and open the notebook in a local Jupyter setup
    • Read the description and code cells, then try changing inputs to test your understanding
  3. 3

    Get the most out of it

    • Use the hover descriptions in the index to choose notebooks matching your skill level
    • Compare the human, Fable, Kimi, and Opus versions of the Project Euler notebooks to see different solution styles
    • Start with the beginner-labeled notebooks such as the letter-shape word game, then move to harder topics
    • Try solving a puzzle yourself before reading the notebook's solution

Downloads

Strengths

  • Free to read and run, and the MIT license permits reuse
  • Notebooks can be opened directly in the browser through Colab or nbviewer
  • Covers a wide range of topics, from number theory to NLP to interpreters

Trade-offs

  • The README does not describe a formal curriculum or learning path, so readers choose their own order
  • Some notebooks are tied to specific years and puzzle events, which may age
  • Being a personal collection, it is not presented as a maintained product with support

How it compares

ProjectStarsTypeLevelUpdatedBest for
pytudes (this)24.4kLearning resourceintermediate8 days agoPython learners who want practice problems with worked explanations
Python226kLearning resourcebeginner17 days agoStudents learning algorithms and data structures
33-js-concepts66.5kLearning resourcebeginner15 days agoDevelopers who know basic JavaScript and want to fill gaps in core concepts
DotNetGuide11.1kCurated listbeginner7 days agoChinese-speaking developers learning C# or .NET from scratch
app-ideas98.4kCurated listbeginner1.1 years agoBeginners looking for practice projects to build after learning HTML, CSS, and JavaScript
lo21.4kLibrarybeginner5 days agoGo developers who often transform slices or maps

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.