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.
Vote đź‘Ť for this list to be included in awesome-python and the master awesome list. Thank you!
The license for this resource is .
Contents
- Courses and lessons
- Exercises and Games
- Reference and forums
- Tools and Libraries
- Conferences and videos
- Books
- Hardware
Courses and lessons
Interactive environments
- From Blocks to Code with Trinket! (more resources included in Hour of Python)
- Python for Everybody - trinket.io interactive book
- How to Think Like a Computer Scientist (more resources included in Runestone Interactive)
- pythonroom
- repl.it classrooms
- CS Principles: Big Ideas in Programming
- CodeSkulptor
- BlockPy - web-based Python environment that lets you work with blocks, text, or both.
- Edublocks - Making the transition from Scratch to Python easier
- Python Lectures - IPython Notebooks to learn Python
- Learn Python
- Code Club Python modules
- Computer Science Circles
- Python from scratch
- Interactive Python 3 tutorial with 100+ exercises
- Codesters
- Pyfiddle
- Code the blocks - interactive playground for learning how to code
MOOCs
- Programming for Everybody
- An Introduction to Interactive Programming in Python (Part 1)
- An Introduction to Interactive Programming in Python (Part 2)
- Python Programming: A Concise Introduction
- Introduction to Computer Science and Programming Using Python
- Learn to Program Using Python
- CS For All: Introduction to Computer Science and Python Programming
- Programming Foundations with Python
- Python Codecademy
- CS 61A: The Structure and Interpretation of Computer Programs
- Python School
- Let’s all build a comprehensive interactive Python curriculum together - Request For Proposals at FreeCodeCamp.com
Introductions and Tutorials
- The Hello World Program: Learn Python
- Introduction to Python
- NewCoder
- Python tutorial
- Programming with Python - from Software Carpentry
- Introduction to Programming with Python
- Python Course
- The Programming Historian
- Program Arcade Games With Python And Pygame
- Python Tutorials for Kids 13+
- Python Asynchronous I/O Walkthrough
- Python Tutorials and Courses Directory
- Python as a Second Language
- A simple tutorial about effectively using pdb
- Beginning Python - Getting More out of Python - The Python Environment - Advanced Python - 4 courses from the archived O'Reilly School of Technology
- Testing and Continuous Integration with Python - a tutorial from the Software Carpentry
- Try Python - a free course from Code School
- Python Synopsis - Python study guide
- A Byte of Python
- Build applications in Python (the anti-textbook)
- Asyncio in Python - collection of tutorials about Asyncio in Python
- A SQLite Tutorial with Python
Data Science
- A Whirlwind Tour of Python and the Jupyter Notebooks behind.
- A Crash Course in Python for Scientists
- Intro to Python for Data Science
- Learning Python for Data Science
- Introduction to Python for Data Science
- Programming with Python for Data Science
- Python Data Science Handbook complete book in Jupyter Notebook format
- Exploratory Computing with Python
- Data Carpentry: Python for Ecologists
- Plotting and Programming in Python
- Applied Plotting, Charting & Data Representation in Python
- Using Python for Research
- The Hitchhiker’s Guide to Machine Learning in Python
- SIOC 209: Python for Data Analysis and its associated videos
- Python for Data Analysis - An introduction to data science using Python and Pandas with Jupyter notebooks
Exercises and Games
- CheckiO
- CodeAbbey
- Empire of Code
- Project Euler
- Exercism
- HackerRank Challenges
- PyBites - PyBites Code Challenges Platform
- Practice Python
- Python Challenge
- Python for Fun
- CodingBat
- Reeborg's world
- Python Koans
- Boston Python Puzzles
- Norvig's pytudes - Python programs for perfecting programming skills
- Python Challenges
- Code & Conquer
- CodeCombat
- TeachCraft: Minecraft + Python - Run your own TeachCraft Server
- Slice like a Ninja
- Python Datasets: The Collection of Really Great, Interesting, Situated Datasets - (visit CORGIS for raw formats)
- Interactive Coding Challenges
- Pyweek Programming Challenge
- CodingGame
- CodeFights
- Edabit Python Challenges
Reference and forums
Python suitability for education
- CP4E by Guido van Rossum
- Python in Education: Teach, Learn, Program - free e-book on why Python is well suited for education by Nicholas Tollervey
- 'Think Python like a Computer Scientist' book Foreword by David Beazley
- Why I push for Python by Lorena Barba
- Why Python is a Great First Language by Elliott Hauser (Trinket CEO)
- Why Python is a great language for teaching beginners in introductory programming classes by Philip Guo
- Python is Now the Most Popular Introductory Teaching Language at Top U.S. Universities by Philip Guo (Communications of the ACM)
- Why Learn Python? Here Are 8 Data-Driven Reasons by Elena Ruchko
- [Level 1] Programming: Python - Archived version
- Python as a way of thinking
Reference
- Official Python documentation
- Python in Education - git repo
- Google's Python Class
- The Hitchhiker’s Guide to Python
- Tiny Python 3.6 Notebook
- First Steps With Python
- PEP8 - Python Style Guide
- The Elements of Python Style
- PyMOTW3 - Python Module Of The Week
- Full Stack Python - (best python resources)
- Learn X in Y minutes where X=python3
- PyCrumbs - Bits and bytes of Python from the Internet
- CheckiO Python blog - curated Python articles
- EduPython
- A gallery of interesting IPython Notebooks
- CS1 Python Programming Projects Archive
- Python 3 Cheat Sheet(PDF)
- Python cheatsheet
- Python Crash Course - Cheat Sheets
- Comprehensive Python Cheatsheet
- Algorithms implemented in python (for education)
- Algorithms
- Minimal examples of data structures and algorithms in Python
- awesome-python
- Python GitHub Projects
- pycrumbs
- Python Reference - useful functions, tutorials, and other Python-related things
- Pythonidae - curated decibans of scientific programming resources in Python
- Python Patterns - by Brandon Rhodes (repo)
- python-patterns - a collection of design patterns/idioms in Python
- PyPattyrn
- Python 3 Patterns, Recipes and Idioms
- How to make mistakes in Python
- The Little Book of Python Anti-Patterns - small book of Python anti-patterns and worst practices
- Python IAQ: Infrequently Answered Questions by Peter Norvig
- Anti-Patterns in Python Programming
- What the f*ck Python? - A collection of interesting and tricky Python examples
- DjangoGirls Introduction to Python
- Experiments in Python Pedagogy - rendered version
- 29 common beginner Python errors on one page
- Learn Python - Udacity
- Popular Python Recipes
- Transforming Code into Beautiful, Idiomatic Python
- Improve your Python skills (Dan Bader's blog)
- Practical Business Python
- Python Lessons - 6 lessons from teachwithict
- Machine Learning and Python (and Math) Cheat Sheets
- AIAMA Python implementation - Python implementation of algorithms from Russell And Norvig's "Artificial Intelligence - A Modern Approach"
- What the f*ck Python? - A collection of interesting, subtle, and tricky Python snippets
- PyFormat - Using % and .format() for great good!
Mailing lists
- Python EDU-SIG - Python.org subsite
- Python EDU-SIG - Special Interest Group mailing list
- Python EDU-WG - Working Group mailing list
- Tutor - (mailing list) Discussion for learning programming with Python
- Python-list - General discussion list for the Python programming language (mailing list)
Forums
- StackOverflow: tag python - community website
- reddit: Python - Python Learning - Python tips - Pygame
Tools and Libraries
- Your Python Trinket - Put Interactive Python Anywhere on the Web
- Python Tutor - Visualize the execution of Python programs
- Livepython - Visually trace Python code in real-time (alpha stage)
- Skulpt - Skulpt is an entirely in-browser implementation of Python 2.X (!)
- SoloLearn Python 3 Tutorial - mobile version
- Python Anywhere
- repl.it
- Python AST Explorer
- kite - programming copilot
- EarSketch - learn to code by making music
- FoxDot - Live Coding Music with Python & SuperCollider
- Ren'Py - a visual novel engine
Games, graphics and simulation
- 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 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
- Panda3D - game engine and framework for 3D rendering
- 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
Visualization
Jupyter
- Project Jupyter
- Jupyter Notebook cheatsheet
- IPython widgets
- lolviz - data-structure visualization tool for lists of lists, lists, dictionaries
- nbgrader - nbgrader is a tool that facilitates creating and grading assignments in the Jupyter notebook.
- nbval - Py.test plugin for validating Jupyter notebooks.
- nbdime - diffing and merging of Jupyter Notebooks.
- nbscan - search for and print contents of cells in Jupyter notebooks.
- nbconvert - convert Notebooks to other formats.
- nbautoeval - creating auto-evaluated exercises.
- nbtutor - visualize Python code execution (line-by-line).
- nbtranslate - translate content of Jupyter notebook using gettext tools.
- nbTranslate - translate cells of a notebook from one language to another - Adds multi language support.
- nbinteract - creates interactive webpages from Jupyter notebooks.
- jupyter-drive - Google Drive for Jupyter.
- RISE - "Live" Reveal.js Jupyter/IPython Slideshow Extension.
- notedown - Convert IPython Notebooks to markdown (and back).
- rst2ipynb - convert standalone reStructuredText files to Jupyter notebook file.
- sphinxcontrib-jupyter - A Sphinx Extension for Generating Jupyter Notebooks
- Jupyter tips, tricks and shortcuts
- Notebook Gallery - links to the best IPython and Jupyter Notebooks.
- Custom Jupyter Notebook Themes
- IPythonBlocks
- Using the IPython Notebook as a Teaching Tool
- Teaching with Jupyter Notebooks - mailing list.
- JupyterLab computational environment - not suitable for general usage yet.
- JupyterLab Documentation
- binder - turn a GitHub repo into a collection of interactive notebooks.
- Google Colab - Jupyter notebook environment for machine learning education and research (requires no setup to use).
- JupyterHub - multi-user server for Jupyter notebooks.
- Zero to JupyterHub
- LTI Launch JupyterHub Authenticator - Implements LTI v1 authenticator for use with JupyterHub.
- Lectures on scientific computing with Python
- "The world of Jupyter" —a tutorial
- List of Jupyter Notebooks by Peter Norvig
- 28 Jupyter Notebook tips, tricks and shortcuts
- Unofficial Jupyter Notebook Extensions
- VPython running in a Jupyter notebook
- Awesome Jupyter - A curated list of awesome Jupyter projects, libraries and resources
- pynb - Jupyter Notebooks as plain Python code with embedded Markdown text.
- jupyterhub-deploy-teaching - reference deployment of JupyterHub and nbgrader on a single server
- Jupyter Notebook Viewer inside Open edX XBlock
IDEs
- bpython
- ptpython
- Thonny, Python IDE for beginners
- VIM with Python plugins
- Emacs with Python plugins
- Sublime Text 3 with Python plugins
- PyCharm Edu - With some courses
- Spyder - The Scientific PYthon Development EnviRonment
- Wingware Python IDE
- Ninja-IDE
- PyDev
- Visual Studio Code with Python plugins
- Mu
- Rodeo - A Native Python IDE for Data Science
- Turing - Free and cross-platform IDE for pseudocode and Python
- PyScripter - a feature-rich but lightweight Python IDE
Debuggers
- pdb
- ipdb
- PuDB
- 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
- Taking Your Python Skills to the Next Level With Pythonic Code - 5 powerful Pythonic concepts and over 45 minutes of video examples.
- Weekly Python Chat - Weekly live video chats about Python, teaching, open source, and more
- Python in Australian Education seminar (2016)
- PyCon Australia 2015 Education Miniconf (youtube playlist)
- Python Education Summit Schedule (PyCon 2016)
- A one-day mini-conference about Python in Education (PyConUK 2016)
- PyVideo tag 'education'
- Khan Academy Computer Science (Python video playlist)
- Python Programming in one video - Learn to Program with Python Derek Banas playlist
- CPython internals: A ten-hour codewalk through the Python interpreter source code
- Teaching Python: The Hard Parts - PyCon 2016
- Episode 14 – Allen Downey on Teaching Computer Science with Python from podcast._init_('Python')
- Python For Informatics
- Python for Everybody - Exploring Information
- sentdex youtube playlists or via Python Programming
- Dan Bader's youtube channel
- Corey Schafer's youtube channel
- Python 3.4 Programming Tutorials
- Programming Foundations with Python from Udacity
- PySide Video Tutorials
- Python Basics - Coding is for girls
- Python For Beginners - Learn To Code Tutorials
- TheNewBoston Python 3 videotutorials - also Flask and others
- Build applications in Python the antitextbook
- Socratica Python Programming Tutorials
- Python for Data Analysis - Pandas Cookbook
Books
- The Computer Science Field Guide - (repo)
- Awesome Python Books
- PythonBooks
- Build applications in Python the antitextbook
- Algorithmic Problem Solving with Python
- Openlibra: Python
- Intermediate Python
- Python Practice Book
- Scipy Lecture Notes
- Natural Language Processing with Python
- Problem Solving with Algorithms and Data Structures using Python - accompanying videos
- Python for Everybody - Exploring Data In Python 3
- Composing Programs
- Dive into Python 3
- Introduction to Programming with Python
- Learn Python, Break Python - A Beginner's Guide to Programming
- Learn Python3 in Y minutes
- Non-Programmer's Tutorial for Python 3
- The Art and Craft of Programming (Python edition)
- CS61A: Structure and Interpretation of Computer Programs
- Learn Python the hard way
- Program Arcade Games With Python And Pygame
- Python for you and me
- Object-Oriented Programming in Python
- Violent Python. A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security Engineers
- Natural Language Processing with Python – Analyzing Text with the Natural Language Toolkit
- Python for Scientists and Engineers
- PythonBooks - categorized Python books
Coding Club books
- Python Basics
- Python Next Steps
- Python: Building Big Apps
- Python: Programming Art
- Python: Interactive Adventures
- Black Flag: A Coding Club Mission
- Coding Cards [PDF]
Green Tea Press
- Think Python: How To Think Like a Computer Scientist, 2nd ed.
- Think Complexity: Exploring Complexity Science with Python, 2nd ed.
- Think DSP: Digital Signal Processing in Python
- Think Stats: Exploratory Data Analysis in Python, 2nd ed.
- Think Bayes: Bayesian Statistics in Python
Invent with Python series
- Invent your own computer games with Python
- Making Games with Python & Pygame
- Hacking Secret Ciphers with Python -> 2nd ed: Cracking Codes with Python
- Automate the Boring Stuff with Python
Manning Publications
- Hello! Python
- Hello World! 2nd ed. Computer Programming for Kids and Other Beginners
- Hello Raspberry Pi! - Python programming for kids and other beginners.
- The Quick Python Book, Third Edition
- Learn Programming with Python
- Grokking Algorithms - An illustrated guide for programmers and other curious people.
No Starch Press
- Python for Kids
- Teach Your Kids to Code
- Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More!
- Python Crash Course. A Hands-On, Project-Based Introduction to Programming
- Python Playground. Geeky Projects for the Curious Programmer
- Learn to Program with Minecraft. Transform Your World with the Power of Python
- Black Hat Python. Python Programming for Hackers and Pentesters
O'Reilly
- Raspberry Pi Cookbook. Software and Hardware Problems and Solutions
- Head First Python, 2nd Edition
- Python for Unix and Linux System Administration (2008)
Packt Pub
- Python Projects for Kids
- Raspberry Pi Projects for Kids
- Python Programming for Arduino
- Pro Python System Administration (2010)
Hardware
Raspberry Pi
Arduino
BBC microbit
PyBoard
ESP32
Adafruit
- CircuitPython - a MicroPython fork for teaching coding with microcontrollers