PyKidos, Teach Your Kid Python In The Browser

PyKidos is a minimal web application I built in a few days to teach my 8-year-old basic programming concepts using Python.

PyKidos

I had tried several existing apps but couldn't find one that met all my criteria:

  • Fully browser-based, no need to install anything
  • Supports Python
  • Open-source and customizable
  • Simple UI/UX
  • Includes simple graphical elements like a grid (my kid thought my plain IPython terminal was too "boring")

So I just built my own.

PyKidos offers a playground where you can introduce various programming and math concepts to your child, such as:

  • Variables
  • Basic mathematical operations
  • Loops
  • Conditional statements
  • Modular arithmetic
  • Vectors
  • Functions
  • Coordinate systems
  • Color systems
  • Trigonometric functions
  • Matrices
  • And more.

Features:

  • Completely client-side: data is stored only in your browser (localStorage).
  • Utilizes Pyodide, a CPython port to WebAssembly, with support for NumPy and other scientific libraries.
  • Includes a Unicode emoji picker and color picker.
  • Allows manipulation of a grid (cell colors and text, including Unicode emojis) using Python.
  • Reacts to click and keyboard events within the grid.
  • Supports animations.
  • Enables local download of your Python scripts.
  • Facilitates code sharing through a URL containing the entire code and data.

PyKidos is still quite rough around the edges since I primarily built it for my own needs, but I hope it proves helpful to others. In particular, I didn't take the time to ensure it runs smoothly on mobile devices, different browsers, or operating systems.