awesome-python-in-education

A curated list of resources about Python in Education
There are many ways to contribute to this project. Get started here.
Sparkline (GitHub stars velocity): 
Contents
Interactive environments
MOOCs
Introductions and Tutorials
Data Science
Exercises and Games
Reference and forums
Python suitability for
education
Reference
Mailing lists
Forums
Games, graphics and
simulation
- Jupylet - Create 2D and
3D games, graphics, live music and sound synthesizers, interactively in
a Jupyter notebook.
- PyGame
- Pygame Zero for
creating games without boilerplate
- Python Arcade Library
- Pyglet - a pure python
cross-platform application framework intended for game development
- Python Mode for
Processing
- PythonTurtle - A learning
environment for Python programming suitable for beginners and children,
inspired by Logo. Easy installer for Windows so it could be installed by
children on computers without internet access.
- A
Simple Tutorial for Python’s turtle.py Module
- VPython - 3D programming
- Pymunk - 2D physics
library
- PyPhysicsSandbox
- a simple wrapper around Pymunk
- Kivy - innovative user interfaces,
such as multi-touch apps
- PyQT 15 minute
apps - 15 minute (small) desktop apps built with PyQt
- PyQt5 tutorial - Create GUI
applications with Python
- Panda3D - game engine and
framework for 3D rendering
- Ursina Engine - game
engine based on Panda3D but really easy-to-use. Great for beginners in
3D game coding.
- gui zero - to allow
children to quickly and easily create GUIs for their programs
- Free Python
Games - collection of free Python games intended for education and
fun
- Angry
Birds in Python - using pygame and pymunk
- Jappy - the app
powering the http://educa.juegos/ collaborative coding platform
- Predigame - instructional
platform that teaches the basics of coding through the creation of
arcade games
- ThorPy - A GUI library for
pygame
- sc8pr - A simple
framework for new and experienced Python programmers to create
animations, games, and other graphics-based programs
- pyxel - A retro game
development environment in Python.
- PySimpleGUI -
Super-simple GUI to use… Powerfully customizable.
- evennia - library and toolkit
for building multi-player online text games
- adventurelib
- easy text adventures
- PythonStdioGames
- A compilation of text-based games written in Python that only use
“standard i/o”.
- PyperCard -
HyperCard inspired GUI framework for beginner developers in Python (doc site)
- PyComic -
A static website for generating Pythonic comics
Visualization
- Bokeh - an interactive
visualization library that targets modern web browsers for
presentation.
- VisPy - library for interactive
scientific visualization that is designed to be fast, scalable, and easy
to use.
- Python Graph Gallery
- showcase hundreds of charts, always providing the reproducible python
code.
Jupyter
Hosted Jupyter notebooks
- RISE - “Live”
Reveal.js Jupyter/IPython Slideshow Extension
- fastpages -
static/JAMstack blogging platform with support for Jupyter
notebooks
- hugo-academic
- static/JAMstack website builder with support for Jupyter
notebooks
- ipytest - run py.test
tests within the notebook environment
- jupyter-contrib-nbextensions
- Unofficial Jupyter Notebook Extensions
- jupyter-edx-colab-cloud-xblock
- launch Google Colab notebooks from within an Open edX XBlock
- jupyter-edx-grader-xblock
- auto-grade assignments with nbgrader and post the scores to an Open
edX gradebook
- jupyter-themes -
Custom Jupyter Notebook Themes
- jupyter-viewer-xblock
- view Jupyter notebooks in an Open edX XBlock
- jupytext - Jupyter
Notebooks as Markdown, Julia, Python, or R scripts (that [auto-]save to
and from the configured paired formats)
- lolviz -
data-structure visualization tool for lists of lists, lists,
dictionaries
- nbTranslate
- translate cells of a notebook from one language to another - Adds
multi language support
- nbautoeval -
creating auto-evaluated exercises
- nbconvert - convert
Notebooks to other formats
- nbdev - export, sync,
and document notebook cells to and from regular python modules
- nbdime - diffing and
merging of Jupyter Notebooks
- nbgallery -
platform for sharing and collaborating on Jupyter notebooks
- nbinteract - creates
interactive webpages from Jupyter notebooks
- nbscan - search for
and print contents of cells in Jupyter notebooks
- nbsphinx -
Sphinx extension for publishing Jupyter Notebooks as static/JAMstack
websites
- nbtranslate -
translate content of Jupyter notebook using gettext tools
- nbtutor - visualize
Python code execution (line-by-line)
- nbval
- Py.test plugin for validating Jupyter notebooks
- notedown - Convert
IPython Notebooks to markdown (and back)
- pixiedebugger
- The Visual Python Debugger for Jupyter Notebooks You’ve Always
Wanted
- pynb - Jupyter
Notebooks as plain Python code with embedded Markdown text
- rst2ipynb -
convert standalone reStructuredText files to Jupyter notebook file
- sphinxcontrib-jupyter
- A Sphinx Extension for Generating Jupyter Notebooks
Jupyter resources
IDEs
Debuggers
- pdb
- ipdb
- PuDB
- pdb++ - a drop-in
replacement for pdb
- Python Linter Online - Live
Syntax Checking Using Pylint while Running Python
- PyTA - static code
analysis to help students find and fix common coding errors
- coala - linting and fixing code
- wdb - An improbable web
debugger through WebSockets
- QuantifiedCode
- a code analyis & automation platform
- birdseye -
graphical Python debugger using the AST
- Hunter - a
flexible code tracing toolkit
Conferences and videos
Books
Coding Club books
Green Tea Press
Invent with Python series
Manning Publications
No Starch Press
O’Reilly
Packt Pub
Hardware
Raspberry Pi
Arduino
BBC microbit
PyBoard
ESP32
Adafruit CircuitPython
- CircuitPython - a
MicroPython fork for teaching coding with microcontrollers
- Awesome
CircuitPython - A curated list of awesome CircuitPython guides,
videos, libraries, frameworks, software and resources.
License
