A curated list of resources about Python in Education
There are many ways to contribute to this project. Get started here.
The license for this resource is CC0.
- Courses and lessons
- Exercises and Games
- Reference and forums
- Tools and Libraries
- Conferences and videos
- Books
- Hardware
- From Blocks to Code with Trinket! (more resources included in Hour of Python)
- How to Think Like a Computer Scientist (more resources included in Runestone Interactive)
- pythonroom
- CS Principles: Big Ideas in Programming
- BlockPy - web-based Python environment that lets you work with blocks, text, or both.
- 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
- Programming for Everybody
- Introduction to Computer Science and Programming Using Python
- Programming Foundations with Python
- Python Codecademy
- CS 61A: The Structure and Interpretation of Computer Programs
- Python School
- 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 Asynchronous I/O Walkthrough
- A Whirlwind Tour of Python and the Jupyter Notebooks behind.
- Intro to Python for Data Science
- Learning Python for Data Science
- Python Data Science Handbook complete book in Jupyter Notebook format
- Data Carpentry: Python for Ecologists
- CheckiO
- CodeAbbey
- Empire of Code
- Project Euler
- Exercism
- PyBites
- Practice Python
- Python Challenge
- Python for Fun
- Reeborg's world
- Python Koans
- Boston Python Puzzles
- Python Koans
- Code & Conquer
- CodeCombat
- TeachCraft-Challenges
- Slice like a Ninja
- 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
- 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
- Python cheatsheet
- PEP8 - Python Style Guide
- PyMOTW3
- Full Stack Python
- Learn X in Y minutes where X=python3
- PyCrumbs - Bits and bytes of Python from the Internet
- EduPython
- A gallery of interesting IPython Notebooks
- CS1 Python Programming Projects Archive
- Python cheatsheet
- Python Crash Course - Cheat Sheets
- /r/learnpython
- Algorithms implemented in python (for education)
- Algorithms
- awesome-python
- Python GitHub Projects
- pycrumbs
- Python Reference
- Pythonidae
- python-patterns
- PyPattyrn
- Python 3 Patterns, Recipes and Idioms
- How to make mistakes in Python
- Python Knowledge Base
- Python IAQ: Infrequently Answered Questions by Peter Norvig
- Anti-Patterns in Python Programming
- 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
- 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)
- StackOverflow: dashboard - all topics - tag python
- reddit: Python - Python Learning - Python tips - Pygame
- Your Python Trinket - Put Interactive Python Anywhere on the Web
- Python Tutor - Visualize the execution of Python programs
- 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
- Ren'Py - a visual novel engine
- PyGame
- Pygame Zero for creating games without boilerplate
- Python Arcade Library
- Python Mode for Processing
- PythonTurtle
- VPython - 3D programming
- Pymunk - 2D physics library
- PyPhysicsSandbox - a simple wrapper around Pymunk
- Project Jupyter
- IPython widgets
- nbgrader - nbgrader is a tool that facilitates creating and grading assignments in the Jupyter notebook.
- nbconvert - convert Notebooks to other formats.
- nbautoeval - creating auto-evaluated exercises.
- nbtutor - visualize Python code execution (line-by-line).
- jupyter-drive - Google Drive for Jupyter.
- Jupyter tips, tricks and shortcuts
- Notebook Gallery - links to the best IPython and Jupyter Notebooks.
- Custom Jupyter Notebook Themes
- IPythonBlocks
- Teaching with Jupyter Notebooks - mailing list.
- JupyterLab computational environment - not suitable for general usage yet.
- binder - turn a GitHub repo into a collection of interactive notebooks.
- JupyterHub - multi-user server for Jupyter notebooks
- Lectures on scientific computing with Python
- "The world of Jupyter" —a tutorial
- List of Jupyter Notebooks by Peter Norvig
- 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
- 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
- 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
- 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
- The Computer Science Field Guide
- Awesome Python Books
- PythonBooks
- Openlibra: Python
- Python Practice Book
- Scipy Lecture Notes
- Natural Language Processing with Python
- Problem Solving with Algorithms and Data Structures using Python
- 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
- 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
- Python Basics
- Python Next Steps
- Python: Building Big Apps
- Python: Programming Art
- Python: Interactive Adventures
- Black Flag: A Coding Club Mission
- Coding Cards [PDF]
- 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 your own computer games with Python
- Making Games with Python & Pygame
- Hacking Secret Ciphers with Python
- Automate the Boring Stuff with 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.
- Learn to Program with Minecraft
- 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
- Raspberry Pi Cookbook. Software and Hardware Problems and Solutions
- Head First Python, 2nd Edition
- Python for Unix and Linux System Administration (2008)
- Python Projects for Kids
- Raspberry Pi Projects for Kids
- Python Programming for Arduino
- Pro Python System Administration (2010)