├── .travis.yml ├── ROADMAP.md ├── CONTRIBUTING.md ├── papers.md ├── LICENSE └── README.md /.travis.yml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | rvm: 2.4.1 3 | before_script: gem install awesome_bot 4 | script: awesome_bot README.md 5 | -------------------------------------------------------------------------------- /ROADMAP.md: -------------------------------------------------------------------------------- 1 | # Roadmap 2 | 3 | - [ ] Focus on teachers 4 | - [ ] Encourage peer resource reviews 5 | - [ ] Improve classification/hierarchy 6 | - [ ] Split content in several files: 7 | - [ ] levels: K-12, Undergraduate 8 | - [ ] sections: courses, resources, references, books, etc. 9 | - [ ] Create a static site 10 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Awesome Python in Education 2 | 3 | Thanks for your interest in contributing! Feel welcome and read the following sections in order to know what and how to work on something. If you get stuck at any point you can [create a ticket](https://github.com/quobit/awesome-python-in-education/issues/new). 4 | 5 | Following these guidelines helps to communicate that you respect the time of the contributors managing and developing this resource. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests. 6 | 7 | ## What kinds of contributions are expected 8 | 9 | Improving the list by adding/removing, reorganizing/reordering, labeling/reviewing open resources are all examples of helpful contributions. When in doubt you can always [open a ticket](https://github.com/quobit/awesome-python-in-education/issues/new) or comment existing ones (like [#1](https://github.com/quobit/awesome-python-in-education/issues/1)). 10 | 11 | ## Ground Rules 12 | 13 | * Content and code should use a free license. 14 | * Proposed resources must follow Python (3.X) at least in the code examples. 15 | * Resources that use legacy Python (2.X) are openly discouraged. If you find any in the list, you can request their removal. 16 | * Proposed resources should be usable (mainly) *by* teachers *for* students (secondary, vocational education and training -*VET*- and post-secondary levels) as well as *self-learners*. 17 | -------------------------------------------------------------------------------- /papers.md: -------------------------------------------------------------------------------- 1 | # Academic papers 2 | 3 | [return to README](README.md) 4 | 5 | * Agarwal, K. K., & Agarwal, A. (2005). Python for CS1, CS2 and beyond. *Journal of Computing Sciences in Colleges*, 20(4), 262-270. 6 | * Agarwal, K. K., & Agarwal, A. (2006). Simply python for cs0. *Journal of Computing Sciences in Colleges*, 21(4), 162-170. 7 | * Ateeq, M., Habib, H., Umer, A., & Rehman, M. U. (2014, April). C++ or Python? Which One to Begin with: A Learner's Perspective. In *Teaching and Learning in Computing and Engineering (LaTiCE), 2014 International Conference on* (pp. 64-69). IEEE. **DOI**: [10.1109/LaTiCE.2014.20](https://doi.org/10.1109/LaTiCE.2014.20) 8 | * Dorling, M., & White, D. (2015, February). Scratch: A way to logo and python. In *Proceedings of the 46th ACM Technical Symposium on Computer Science Education* (pp. 191-196). ACM. **DOI**: [10.1145/2676723.2677256](https://doi.org/10.1145/2676723.2677256) 9 | * Elkner, J. (2000, January). Using Python in a high school computer science program. In *Proceedings of the 8th International Python Conference* (pp. 2000-01). [(PDF)](http://ftp.python.org/workshops/2000-01/proceedings/papers/elkner/elkner.pdf) 10 | * Enbody, R. J., Punch, W. F., & McCullen, M. (2009). Python CS1 as preparation for C++ CS2. *ACM SIGCSE Bulletin*, 41(1), 116-120. **DOI:** [10.1145/1539024.1508907](https://doi.org/10.1145/1539024.1508907) 11 | * Goldwasser, M. H., & Letscher, D. (2008, June). Teaching an object-oriented CS1-: with Python. In *ACM SIGCSE Bulletin* (Vol. 40, No. 3, pp. 42-46). ACM. **DOI:** [10.1145/1597849.1384285](https://doi.org/10.1145/1597849.1384285) 12 | * Grandell, L., Peltomäki, M., Back, R. J., & Salakoski, T. (2006, January). Why complicate things?: introducing programming in high school using Python. In *Proceedings of the 8th Australasian Conference on Computing Education-Volume 52* (pp. 71-80). Australian Computer Society, Inc. [(PDF)](http://crpit.scem.westernsydney.edu.au/confpapers/CRPITV52Grandell.pdf) 13 | * Guo, P. J. (2013, March). Online python tutor: embeddable web-based program visualization for cs education. In *Proceeding of the 44th ACM technical symposium on Computer science education* (pp. 579-584). ACM. **DOI:** [10.1145/2445196.2445368](https://doi.org/10.1145/2445196.2445368) 14 | * Hadi, A., & Al-Zewairi, M. (2017). Using IPython for Teaching Web Scraping. In *Social Media Shaping e-Publishing and Academia* (pp. 47-54). Springer International Publishing. **DOI:** [10.1007/978-3-319-55354-2_5](https://doi.org/10.1007/978-3-319-55354-2_5) 15 | * Ihantola, P., Helminen, J., & Karavirta, V. (2013, November). How to study programming on mobile touch devices: interactive Python code exercises. In *Proceedings of the 13th Koli Calling International Conference on Computing Education Research* (pp. 51-58). ACM. **DOI:** [10.1145/2526968.2526974](https://doi.org/10.1145/2526968.2526974) 16 | * Kohn, T. (2017). *Teaching Python Programming to Novices: Addressing Misconceptions and Creating a Development Environment* (Doctoral dissertation). [(PDF)](http://e-collection.library.ethz.ch/eserv/eth:50720/eth-50720-02.pdf) 17 | * Koulouri, T., Lauria, S., & Macredie, R. D. (2015). Teaching introductory programming: a quantitative evaluation of different approaches. *ACM Transactions on Computing Education* (TOCE), 14(4), 26. **DOI:** [10.1145/2662412](https://doi.org/10.1145/2662412) 18 | * Lo, C. A., Lin, Y. T., & Wu, C. C. (2015, April). Which programming language should students learn first? A comparison of Java and python. In *Learning and Teaching in Computing and Engineering (LaTiCE), 2015 International Conference on* (pp. 225-226). IEEE. **DOI:** [10.1109/LaTiCE.2015.15](https://doi.org/10.1109/LaTiCE.2015.15) 19 | * Mannila, L., & de Raadt, M. (2006, February). An objective comparison of languages for teaching introductory programming. In *Proceedings of the 6th Baltic Sea conference on Computing education research: Koli Calling 2006* (pp. 32-37). ACM. **DOI:** [10.1145/1315803.1315811](https://doi.org/10.1145/1315803.1315811) 20 | * Mannila, L., Peltomäki, M., & Salakoski, T. (2006). What about a simple language? Analyzing the difficulties in learning to program. Computer Science Education, 16(3), 211-227. **DOI:** [10.1080/08993400600912384](https://doi.org/10.1080/08993400600912384) 21 | * Mason, R., & Cooper, G. (2014, January). Introductory Programming Courses in Australia and New Zealand in 2013-trends and reasons. In *Proceedings of the Sixteenth Australasian Computing Education Conference-Volume 148* (pp. 139-147). Australian Computer Society, Inc. [(PDF)](http://crpit.scem.westernsydney.edu.au/confpapers/CRPITV148Mason.pdf) 22 | * Mészárosová, E. (2015). Is Python an Appropriate Programming Language for Teaching Programming in Secondary Schools?. *International Journal of Information and Communication Technologies in Education*, 4(2), 5-14. **DOI:** [10.1515/ijicte-2015-0005](https://doi.org/10.1515/ijicte-2015-0005) 23 | * Murphy, E., Crick, T., & Davenport, J. H. (2017). An Analysis of Introductory Programming Courses at UK Universities. **DOI:** [10.22152/programming-journal.org/2017/1/18](https://doi.org/10.22152/programming-journal.org/2017/1/18) 24 | * Oliphant, T. E. (2007). Python for scientific computing. *Computing in Science & Engineering*, 9(3). **DOI:** [10.1109/MCSE.2007.58](https://doi.org/10.1109/MCSE.2007.58) 25 | * Pritchard, D., & Vasiga, T. (2013, March). CS circles: an in-browser python course for beginners. In *Proceeding of the 44th ACM technical symposium on Computer science education* (pp. 591-596). ACM. **DOI:** [10.1145/2445196.2445370](https://doi.org/10.1145/2445196.2445370) 26 | * Radenski, A. (2006). Python First: A lab-based digital introduction to computer science. *ACM SIGCSE Bulletin*, 38(3), 197-201. **DOI:** [10.1145/1140123.1140177](https://doi.org/10.1145/1140123.1140177) 27 | * Ranum, D., Miller, B., Zelle, J., & Guzdial, M. (2006, March). Successful approaches to teaching introductory computer science courses with python. In *ACM SIGCSE Bulletin* (Vol. 38, No. 1, pp. 396-397). ACM. **DOI:** [10.1145/1121341.1121465](https://doi.org/10.1145/1121341.1121465) 28 | * Shannon, C. (2003, February). Another breadth-first approach to CS I using python. In *ACM SIGCSE Bulletin* (Vol. 35, No. 1, pp. 248-251). ACM. **DOI:** [10.1145/611892.611980](https://doi.org/10.1145/611892.611980) 29 | * Stajano, F. (2000). Python in education: Raising a generation of native speakers. In *Proceedings of 8 th International Python Conference* (pp. 2000-01). [(PDF)](http://ftp.python.org/workshops/2000-01/proceedings/papers/stajano/stajano.pdf) 30 | * Tabet, N., Gedawy, H., Alshikhabobakr, H., & Razak, S. (2016, July). From Alice to Python. Introducing Text-based Programming in Middle Schools. In Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education (pp. 124-129). ACM. **DOI:** [10.1145/2899415.2899462](https://doi.org/10.1145/2899415.2899462) 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Creative Commons Legal Code 2 | 3 | CC0 1.0 Universal 4 | 5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE 6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN 7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS 8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES 9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS 10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM 11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED 12 | HEREUNDER. 13 | 14 | Statement of Purpose 15 | 16 | The laws of most jurisdictions throughout the world automatically confer 17 | exclusive Copyright and Related Rights (defined below) upon the creator 18 | and subsequent owner(s) (each and all, an "owner") of an original work of 19 | authorship and/or a database (each, a "Work"). 20 | 21 | Certain owners wish to permanently relinquish those rights to a Work for 22 | the purpose of contributing to a commons of creative, cultural and 23 | scientific works ("Commons") that the public can reliably and without fear 24 | of later claims of infringement build upon, modify, incorporate in other 25 | works, reuse and redistribute as freely as possible in any form whatsoever 26 | and for any purposes, including without limitation commercial purposes. 27 | These owners may contribute to the Commons to promote the ideal of a free 28 | culture and the further production of creative, cultural and scientific 29 | works, or to gain reputation or greater distribution for their Work in 30 | part through the use and efforts of others. 31 | 32 | For these and/or other purposes and motivations, and without any 33 | expectation of additional consideration or compensation, the person 34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she 35 | is an owner of Copyright and Related Rights in the Work, voluntarily 36 | elects to apply CC0 to the Work and publicly distribute the Work under its 37 | terms, with knowledge of his or her Copyright and Related Rights in the 38 | Work and the meaning and intended legal effect of CC0 on those rights. 39 | 40 | 1. Copyright and Related Rights. A Work made available under CC0 may be 41 | protected by copyright and related or neighboring rights ("Copyright and 42 | Related Rights"). Copyright and Related Rights include, but are not 43 | limited to, the following: 44 | 45 | i. the right to reproduce, adapt, distribute, perform, display, 46 | communicate, and translate a Work; 47 | ii. moral rights retained by the original author(s) and/or performer(s); 48 | iii. publicity and privacy rights pertaining to a person's image or 49 | likeness depicted in a Work; 50 | iv. rights protecting against unfair competition in regards to a Work, 51 | subject to the limitations in paragraph 4(a), below; 52 | v. rights protecting the extraction, dissemination, use and reuse of data 53 | in a Work; 54 | vi. database rights (such as those arising under Directive 96/9/EC of the 55 | European Parliament and of the Council of 11 March 1996 on the legal 56 | protection of databases, and under any national implementation 57 | thereof, including any amended or successor version of such 58 | directive); and 59 | vii. other similar, equivalent or corresponding rights throughout the 60 | world based on applicable law or treaty, and any national 61 | implementations thereof. 62 | 63 | 2. Waiver. To the greatest extent permitted by, but not in contravention 64 | of, applicable law, Affirmer hereby overtly, fully, permanently, 65 | irrevocably and unconditionally waives, abandons, and surrenders all of 66 | Affirmer's Copyright and Related Rights and associated claims and causes 67 | of action, whether now known or unknown (including existing as well as 68 | future claims and causes of action), in the Work (i) in all territories 69 | worldwide, (ii) for the maximum duration provided by applicable law or 70 | treaty (including future time extensions), (iii) in any current or future 71 | medium and for any number of copies, and (iv) for any purpose whatsoever, 72 | including without limitation commercial, advertising or promotional 73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each 74 | member of the public at large and to the detriment of Affirmer's heirs and 75 | successors, fully intending that such Waiver shall not be subject to 76 | revocation, rescission, cancellation, termination, or any other legal or 77 | equitable action to disrupt the quiet enjoyment of the Work by the public 78 | as contemplated by Affirmer's express Statement of Purpose. 79 | 80 | 3. Public License Fallback. Should any part of the Waiver for any reason 81 | be judged legally invalid or ineffective under applicable law, then the 82 | Waiver shall be preserved to the maximum extent permitted taking into 83 | account Affirmer's express Statement of Purpose. In addition, to the 84 | extent the Waiver is so judged Affirmer hereby grants to each affected 85 | person a royalty-free, non transferable, non sublicensable, non exclusive, 86 | irrevocable and unconditional license to exercise Affirmer's Copyright and 87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 88 | maximum duration provided by applicable law or treaty (including future 89 | time extensions), (iii) in any current or future medium and for any number 90 | of copies, and (iv) for any purpose whatsoever, including without 91 | limitation commercial, advertising or promotional purposes (the 92 | "License"). The License shall be deemed effective as of the date CC0 was 93 | applied by Affirmer to the Work. Should any part of the License for any 94 | reason be judged legally invalid or ineffective under applicable law, such 95 | partial invalidity or ineffectiveness shall not invalidate the remainder 96 | of the License, and in such case Affirmer hereby affirms that he or she 97 | will not (i) exercise any of his or her remaining Copyright and Related 98 | Rights in the Work or (ii) assert any associated claims and causes of 99 | action with respect to the Work, in either case contrary to Affirmer's 100 | express Statement of Purpose. 101 | 102 | 4. Limitations and Disclaimers. 103 | 104 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 105 | surrendered, licensed or otherwise affected by this document. 106 | b. Affirmer offers the Work as-is and makes no representations or 107 | warranties of any kind concerning the Work, express, implied, 108 | statutory or otherwise, including without limitation warranties of 109 | title, merchantability, fitness for a particular purpose, non 110 | infringement, or the absence of latent or other defects, accuracy, or 111 | the present or absence of errors, whether or not discoverable, all to 112 | the greatest extent permissible under applicable law. 113 | c. Affirmer disclaims responsibility for clearing rights of other persons 114 | that may apply to the Work or any use thereof, including without 115 | limitation any person's Copyright and Related Rights in the Work. 116 | Further, Affirmer disclaims responsibility for obtaining any necessary 117 | consents, permissions or other rights required for any use of the 118 | Work. 119 | d. Affirmer understands and acknowledges that Creative Commons is not a 120 | party to this document and has no duty or obligation with respect to 121 | this CC0 or use of the Work. 122 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # awesome-python-in-education [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 2 | 3 | *A curated list of resources about Python in Education* 4 | 5 | There are many ways to contribute to this project. Get started [here](CONTRIBUTING.md). 6 | 7 | Sparkline (GitHub stars velocity): [![Sparkline](https://stars.medv.io/quobit/awesome-python-in-education.svg)](https://stars.medv.io/quobit/awesome-python-in-education) 8 | 9 | ## Contents 10 | 11 | * [Roadmaps](#roadmaps) 12 | * [Courses and lessons](#courses-and-lessons) 13 | * [Interactive environments](#interactive-environments) 14 | * [MOOCs](#moocs) 15 | * [Introductions and Tutorials](#introductions-and-tutorials) 16 | * [Data Science](#data-science) 17 | * [Exercises and Games](#exercises-and-games) 18 | * [Reference and forums](#reference-and-forums) 19 | * [Python suitability for education](#python-suitability-for-education) 20 | * [Academic Papers](papers.md) 21 | * [Reference](#reference) 22 | * [Mailing lists](#mailing-lists) 23 | * [Forums](#forums) 24 | * [Tools and Libraries](#tools-and-libraries) 25 | * [Games, graphics and simulation](#games-graphics-and-simulation) 26 | * [Visualization](#visualization) 27 | * [Jupyter](#jupyter) 28 | * [IDEs](#ides) 29 | * [Debuggers](#debuggers) 30 | * [Conferences and videos](#conferences-and-videos) 31 | * [Books](#books) 32 | * [Coding Club books](#coding-club-books) 33 | * [Green Tea Press](#green-tea-press) 34 | * [Invent with Python series](#invent-with-python-series) 35 | * [Manning Publications](#manning-publications) 36 | * [No Starch Press](#no-starch-press) 37 | * [O'Reilly](#oreilly) 38 | * [Packt Pub](#packt-pub) 39 | * [Hardware](#hardware) - programming environment for tiny Python 3 projects, that can be embedded in web pages (using [Brython](https://brython.info/)) 40 | 41 | ### Interactive environments 42 | 43 | * [From Blocks to Code with Trinket!](https://hourofpython.com/from-blocks-to-code-with-trinket/) (more resources included in [Hour of Python](https://hourofpython.com/)) 44 | * [Python for Everybody](https://books.trinket.io/pfe/) - Trinket.io interactive book. 45 | * [How to Think Like a Computer Scientist](http://interactivepython.org/courselib/static/thinkcspy/index.html) (more resources included in [Runestone Interactive](http://runestoneinteractive.org/pages/library.html)) 46 | * [pythonroom](https://www.tynker.com/pythonroom) 47 | * [repl.it classrooms](https://repl.it/site/classrooms) 48 | * [CS Principles: Big Ideas in Programming](http://interactivepython.org/runestone/static/StudentCSP/index.html) 49 | * [CodeSkulptor](http://py3.codeskulptor.org/) 50 | * [BlockPy](http://think.cs.vt.edu/blockpy/) - web-based Python environment that lets you work with blocks, text, or both. 51 | * [Edublocks](http://edublocks.org/) - Making the transition from Scratch to Python easier. 52 | * [Python Lectures](https://github.com/rajathkumarmp/Python-Lectures) - IPython Notebooks to learn Python. 53 | * [Jupyter notebooks for teaching/learning Python 3](https://github.com/jerry-git/learn-python3/) 54 | * [Learn Python](http://www.learnpython.org/) 55 | * [Code Club Python modules](https://www.codeclubprojects.org/en-GB/python/) 56 | * [Computer Science Circles](http://cscircles.cemc.uwaterloo.ca/) 57 | * [Python from scratch](https://open.cs.uwaterloo.ca/python-from-scratch/) 58 | * [Interactive Python 3 tutorial with 100+ exercises](https://snakify.org/) 59 | * [Codesters](https://www.codesters.com/) 60 | * [Pyfiddle](https://pyfiddle.io/) 61 | * [Code the blocks](https://codetheblocks.com/) - interactive playground for learning how to code. 62 | * [Pythonpad.js](https://pythonpad.github.io/) - programming environment for tiny Python 3 projects, that can be embedded in web pages (using [Brython](https://brython.info/)) 63 | 64 | ### MOOCs 65 | 66 | * [Programming for Everybody](https://www.coursera.org/learn/python) 67 | * [An Introduction to Interactive Programming in Python (Part 1)](https://www.coursera.org/learn/interactive-python-1) 68 | * [An Introduction to Interactive Programming in Python (Part 2)](https://www.coursera.org/learn/interactive-python-2) 69 | * [Python Programming: A Concise Introduction](https://www.coursera.org/learn/python-programming-introduction) 70 | * [Introduction to Computer Science and Programming Using Python](https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-9) 71 | * [Learn to Program Using Python](https://www.edx.org/course/learn-program-using-python-utarlingtonx-cse1309x) 72 | * [CS For All: Introduction to Computer Science and Python Programming](https://www.edx.org/course/cs-all-introduction-computer-science-harveymuddx-cs005x-0) 73 | * [Programming Foundations with Python](https://www.udacity.com/course/programming-foundations-with-python--ud036) 74 | * [Python Codecademy](https://www.codecademy.com/learn/learn-python-3) 75 | * [CS 61A: The Structure and Interpretation of Computer Programs](http://cs61a.org/) 76 | * [Python School](https://pythonschool.net/) 77 | * [Python curriculum outline](https://github.com/freeCodeCamp/python-coding-challenges/issues/8) - Curriculum outline at FreeCodeCamp.com GitHub issue. 78 | 79 | ### Introductions and Tutorials 80 | 81 | * [The Hello World Program: Learn Python](https://thehelloworldprogram.com/python/) 82 | * [Practical Python Programming (course by @dabeaz)](https://github.com/dabeaz-course/practical-python) 83 | * [Introduction to Python](http://introtopython.org/) 84 | * [NewCoder](http://newcoder.io/) 85 | * [Python tutorial](https://pythonspot.com/) 86 | * [Programming with Python](http://swcarpentry.github.io/python-novice-inflammation/) - from [Software Carpentry](http://software-carpentry.org/) 87 | * [Introduction to Programming with Python](http://opentechschool.github.io/python-beginners/en/index.html) 88 | * [Python Land](https://python.land/) 89 | * [Python Course](http://www.python-course.eu/) 90 | * [The Programming Historian](http://programminghistorian.org/lessons/) 91 | * [Program Arcade Games With Python And Pygame](http://www.programarcadegames.com/) 92 | * [Python Tutorials for Kids 13+](https://python4kids.brendanscott.com/) 93 | * [KidsCanCode](http://kidscancode.org/lessons/) 94 | * [Python Asynchronous I/O Walkthrough](http://pgbovine.net/python-async-io-walkthrough.htm) 95 | * [Python Tutorials and Courses Directory](https://hackr.io/tutorials/learn-python) 96 | * [Python as a Second Language](https://swcarpentry.github.io/python-second-language/) 97 | * [A simple tutorial about effectively using pdb](https://github.com/spiside/pdb-tutorial) 98 | * [Beginning Python](http://archive.oreilly.com/oreillyschool/courses/Python1/index.html) - [Getting More out of Python](http://archive.oreilly.com/oreillyschool/courses/Python2/index.html) - [The Python Environment](http://archive.oreilly.com/oreillyschool/courses/Python3/index.html) - [Advanced Python](http://archive.oreilly.com/oreillyschool/courses/Python4/index.html) - 4 courses from the archived O'Reilly School of Technology 99 | * [Testing and Continuous Integration with Python](http://katyhuff.github.io/python-testing/) - a tutorial from the Software Carpentry. 100 | * [Playground and cheatsheet for learning Python](https://github.com/trekhleb/learn-python) 101 | * [Try Python](https://www.codeschool.com/courses/try-python) - a free course from Code School. 102 | * [Python Synopsis](https://github.com/ent1c3d/Python-Synopsis) - Python study guide. 103 | * [Python Fundamentals I & II](https://www.rithmschool.com/courses#python) - two 20h free courses from Rithm School. 104 | * [A Byte of Python](https://www.gitbook.com/book/swaroopch/byte-of-python/) 105 | * [A Brief, Animated Introduction to Programming with Python](https://ourcodestories.com/markm208/Playlist/16) 106 | * [Build applications in Python (the anti-textbook)](https://github.com/thewhitetulip/build-app-with-python-antitextbook) 107 | * [Asyncio in Python](https://tutorialedge.net/python/) - collection of tutorials about Asyncio in Python. 108 | * [A SQLite Tutorial with Python](http://stackabuse.com/a-sqlite-tutorial-with-python/) 109 | * [Learning Python for Social Scientists](https://nealcaren.github.io/python-tutorials/) 110 | * [Learn how to use Python for your Lab](https://www.pythonforthelab.com/) 111 | * [Python Basics](https://github.com/learnbyexample/Python_Basics) 112 | * [Dead Simple Python](https://dev.to/codemouse92/introducing-dead-simple-python-563o) - from beginners to python (not programming). 113 | * [Learn Python](https://learnpython.dev/) - Introduction and Intermediate Python, recorded for Frontend Masters by Nina Zakharenko. 114 | * [The Cracking Python Bootcamp](https://github.com/purcellconsult/Cracking-Python-Bootcamp) - Learn How to Code in Python in 12 Weeks By Building Fun Real World Projects. 115 | * [w3schools Python tutorial](https://www.w3schools.com/python/) 116 | * [Geeks for geeks Python tutorial](https://www.geeksforgeeks.org/python-programming-language/) 117 | * [Ultimate Python](https://github.com/huangsam/ultimate-python) - study guide for newcomers and professionals alike. 118 | * [LearnPython.org interactive tutorial](https://www.learnpython.org/) 119 | 120 | ### Data Science 121 | 122 | * [A Whirlwind Tour of Python](http://www.oreilly.com/programming/free/a-whirlwind-tour-of-python.csp) and the [Jupyter Notebooks](https://github.com/jakevdp/WhirlwindTourOfPython) behind. 123 | * [A Crash Course in Python for Scientists](http://nbviewer.jupyter.org/gist/rpmuller/5920182) 124 | * [Intro to Python for Data Science](https://www.datacamp.com/courses/intro-to-python-for-data-science) 125 | * [Learning Python for Data Science](http://www.datasciencecentral.com/profiles/blogs/learning-python-for-data-science) 126 | * [Introduction to Python for Data Science](https://www.edx.org/course/introduction-python-data-science-microsoft-dat208x-5) 127 | * [Programming with Python for Data Science](https://www.edx.org/course/programming-python-data-science-microsoft-dat210x-3) 128 | * [Python Data Science Handbook](https://github.com/jakevdp/PythonDataScienceHandbook) complete book in Jupyter Notebook format. 129 | * [NumPy Illustrated - The Visual Guide to NumPy](https://betterprogramming.pub/numpy-illustrated-the-visual-guide-to-numpy-3b1d4976de1d?sk=57b908a77aa44075a49293fa1631dd9b) 130 | * [Exploratory Computing with Python](http://mbakker7.github.io/exploratory_computing_with_python/) 131 | * [Data Carpentry: Python for Ecologists](http://www.datacarpentry.org/python-ecology-lesson/) 132 | * [Plotting and Programming in Python](http://swcarpentry.github.io/python-novice-gapminder/) 133 | * [Applied Plotting, Charting & Data Representation in Python](https://www.coursera.org/learn/python-plotting) 134 | * [Using Python for Research](https://www.edx.org/course/using-python-research-harvardx-ph526x) 135 | * [The Hitchhiker’s Guide to Machine Learning in Python](https://medium.freecodecamp.org/the-hitchhikers-guide-to-machine-learning-algorithms-in-python-bfad66adb378) 136 | * [SIOC 209: Python for Data Analysis](https://github.com/cuttlefishh/python-for-data-analysis) and its [associated videos](https://www.youtube.com/channel/UCVZrIrWtcvTzYlrNx7RcDyg/playlists) 137 | * [Reproducible analysis in Python](https://github.com/trallard/ReproduciblePython) 138 | * [Python Level 1](https://www.kaggle.com/learn/python) - free course at Kaggle. 139 | * [Pandas Cheat Sheet](https://pandas.pydata.org/Pandas_Cheat_Sheet.pdf) 140 | * [Python for Data Science Cheat Sheets](http://www.utc.fr/~jlaforet/Suppl/python-cheatsheets.pdf) 141 | 142 | ## Exercises and Games 143 | 144 | * [CheckiO](https://checkio.org/) 145 | * [CodeAbbey](http://www.codeabbey.com/) 146 | * [Empire of Code](https://empireofcode.com/) 147 | * [Project Euler](https://projecteuler.net/) 148 | * [Exercism](http://exercism.io/tracks/python/) 149 | * [HackerRank Challenges](https://www.hackerrank.com/domains/python/py-introduction) 150 | * [PyBites](http://pybit.es/) - [PyBites Code Challenges Platform](https://codechalleng.es/) 151 | * [Practice Python](http://www.practicepython.org/) 152 | * [Python Challenge](http://www.pythonchallenge.com/) 153 | * [Python for Fun](http://openbookproject.net/courses/python4fun/) 154 | * [CodingBat](http://codingbat.com/python) 155 | * [Reeborg's world](http://reeborg.ca/index_en.html) 156 | * [Python Koans](https://github.com/gregmalcolm/python_koans) 157 | * [Boston Python Puzzles](http://puzzles.bostonpython.com/) 158 | * [Norvig's pytudes](https://github.com/norvig/pytudes) - Python programs for perfecting programming skills 159 | * [Python Challenges](http://www.101computing.net/category/python-challenges/) 160 | * [Code & Conquer](http://www.codeandconquer.co/) 161 | * [CodeCombat](https://codecombat.com/) 162 | * [TeachCraft: Minecraft + Python](https://teachcraft.net/) - [Run your own TeachCraft Server](https://github.com/TeachCraft/TeachCraft-Server) 163 | * [Slice like a Ninja](http://bruab.github.io/slice_like_a_ninja/) 164 | * [Python Datasets: The Collection of Really Great, Interesting, Situated Datasets](https://think.cs.vt.edu/corgis/python/index.html) - (visit [CORGIS](https://think.cs.vt.edu/corgis/) for raw formats) 165 | * [Interactive Coding Challenges](https://github.com/donnemartin/interactive-coding-challenges) 166 | * [Pyweek Programming Challenge](https://pyweek.org/) 167 | * [CodingGame](https://www.codingame.com) 168 | * [CodeFights](https://codefights.com/) 169 | * [Edabit Python Challenges](https://edabit.com/challenges/python3) 170 | * [futurecoder](https://futurecoder.io/) - interactive beginner exercises - [gh repo](https://github.com/alexmojaki/futurecoder) 171 | * [DevProjects - Python Projects](https://www.codementor.io/python-projects) - Learn programming with curated Python projects 172 | 173 | ## Reference and forums 174 | 175 | ### Python suitability for education 176 | 177 | * [CP4E](https://www.python.org/doc/essays/cp4e/) by Guido van Rossum 178 | * [Python in Education: Teach, Learn, Program](http://www.oreilly.com/programming/free/python-in-education.csp) - free e-book on why Python is well suited for education by Nicholas Tollervey 179 | * ['Think Python like a Computer Scientist' book Foreword](http://interactivepython.org/courselib/static/thinkcspy/FrontBackMatter/foreword.html) by David Beazley 180 | * [Why I push for Python](http://lorenabarba.com/blog/why-i-push-for-python/) by Lorena Barba 181 | * [Why Python is a Great First Language](http://blog.trinket.io/why-python/) by Elliott Hauser (Trinket CEO) 182 | * [Why Python is a great language for teaching beginners in introductory programming classes](http://pgbovine.net/python-teaching.htm) by Philip Guo 183 | * [Python is Now the Most Popular Introductory Teaching Language at Top U.S. Universities](http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-u-s-universities/fulltext) by Philip Guo (Communications of the ACM) 184 | * [Why Learn Python? Here Are 8 Data-Driven Reasons](https://dbader.org/blog/why-learn-python) by Elena Ruchko 185 | * [[Level 1] Programming: Python](http://web.archive.org/web/20160122210606/http://nzacditt.org.nz/resources/programming-and-cs/level-1-programming-python) - Archived version 186 | * [Python as a way of thinking](http://allendowney.blogspot.com/2017/04/python-as-way-of-thinking.html) 187 | 188 | ### Reference 189 | 190 | * [Official Python documentation](https://docs.python.org/3/) 191 | * [Python in Education](http://pythonineducation.org/) - [git repo](https://github.com/python/pythonineducation.org) 192 | * [Google's Python Class](https://developers.google.com/edu/python/) 193 | * [The Hitchhiker’s Guide to Python](http://python-guide.org/) 194 | * [Tiny Python 3.6 Notebook](https://github.com/mattharrison/Tiny-Python-3.6-Notebook/blob/master/python.rst) 195 | * [Real Python Tutorials](https://realpython.com/) - [First Steps](https://realpython.com/learn/python-first-steps/) 196 | * [PEP8 - Python Style Guide](http://pep8.org/) 197 | * [The Elements of Python Style](https://github.com/amontalenti/elements-of-python-style) 198 | * [PyMOTW3](https://pymotw.com/3/) - Python Module Of The Week 199 | * [Full Stack Python](http://www.fullstackpython.com/table-of-contents.html) - [(best python resources)](https://www.fullstackpython.com/best-python-resources.html) - [(learning programming)](https://www.fullstackpython.com/learning-programming.html) 200 | * [Learn X in Y minutes where X=python3](https://learnxinyminutes.com/docs/python3/) 201 | * [Tutorial - Learn Python in 10 minutes](https://www.stavros.io/tutorials/python/) but don't forget to [Teach Yourself Programming in Ten Years](http://norvig.com/21-days.html) 202 | * [PyCrumbs - Bits and bytes of Python from the Internet](https://github.com/kirang89/pycrumbs) 203 | * [CheckiO Python blog](https://py.checkio.org/blog/) - curated Python articles 204 | * [A Sheet of Python](https://tmont.es/2018/sheet-of-python/index.html): direct access to the [PDF](https://tmont.es/images/sheet-of-python-v1.pdf) 205 | * [A gallery of interesting Jupyter Notebooks](https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks) 206 | * [CS1 Python Programming Projects Archive](http://www.cse.msu.edu/~cse231/PracticeOfComputingUsingPython/index.php) 207 | * [Python 3 Cheat Sheet](https://perso.limsi.fr/pointal/_media/python:cours:mementopython3-english.pdf)(PDF) 208 | * [Python cheatsheet](https://www.pythonsheets.com/) 209 | * [Python Crash Course - Cheat Sheets](http://ehmatthes.github.io/pcc/cheatsheets/README.html) 210 | * [Comprehensive Python Cheatsheet](https://github.com/gto76/python-cheatsheet/) 211 | * [Algorithms implemented in python (for education)](https://github.com/TheAlgorithms/Python) 212 | * [Algorithms](https://github.com/nryoung/algorithms) 213 | * [Minimal examples of data structures and algorithms in Python](https://github.com/keon/algorithms) 214 | * [awesome-python](https://github.com/vinta/awesome-python) 215 | * [Python GitHub Projects](https://github.com/checkcheckzz/python-github-projects) 216 | * [Python Reference](https://github.com/rasbt/python_reference) - useful functions, tutorials, and other Python-related things 217 | * [Pythonidae](https://github.com/svaksha/pythonidae) - curated decibans of scientific programming resources in Python 218 | * [Python Patterns](http://python-patterns.guide/) - by Brandon Rhodes ([repo](https://github.com/brandon-rhodes/python-patterns)) 219 | * [python-patterns](https://github.com/faif/python-patterns) - a collection of design patterns/idioms in Python 220 | * [PyPattyrn](https://github.com/tylerlaberge/PyPattyrn) 221 | * [Python 3 Patterns, Recipes and Idioms](http://python-3-patterns-idioms-test.readthedocs.io/) 222 | * [How to make mistakes in Python](http://www.oreilly.com/programming/free/files/how-to-make-mistakes-in-python.pdf) 223 | * [The Little Book of Python Anti-Patterns](http://docs.quantifiedcode.com/python-anti-patterns/) - small book of Python anti-patterns and worst practices 224 | * [Python IAQ: Infrequently Answered Questions](http://norvig.com/python-iaq.html) by Peter Norvig 225 | * [Anti-Patterns in Python Programming](http://lignos.org/py_antipatterns/) 226 | * [Python Code Disasters](https://github.com/sobolevn/python-code-disasters) - more anti-patterns. 227 | * [What the f*ck Python?](https://github.com/satwikkansal/wtfpython) - A collection of interesting and tricky Python examples 228 | * [DjangoGirls Introduction to Python](https://tutorial.djangogirls.org/en/python_introduction/) 229 | * [Experiments in Python Pedagogy](https://github.com/4dsolutions/Python5) - [rendered version](http://nbviewer.jupyter.org/github/4dsolutions/Python5/tree/master/) 230 | * [29 common beginner Python errors on one page](http://pythonforbiologists.com/index.php/29-common-beginner-python-errors-on-one-page/) from [Python for Biologists](https://pythonforbiologists.com/) 231 | * [Learn Python - Udacity](https://www.udacity.com/learn/python) 232 | * [Popular Python Recipes](http://code.activestate.com/recipes/langs/python/) 233 | * [Transforming Code into Beautiful, Idiomatic Python](https://gist.github.com/JeffPaine/6213790) 234 | * [Improve your Python skills (Dan Bader's blog)](https://dbader.org/blog/) 235 | * [Practical Business Python](http://pbpython.com/) 236 | * [Python Lessons](http://teachwithict.weebly.com/python.html) - 6 lessons from teachwithict 237 | * [Machine Learning and Python (and Math) Cheat Sheets](https://medium.com/machine-learning-in-practice/cheat-sheet-of-machine-learning-and-python-and-math-cheat-sheets-a4afe4e791b6) 238 | * [AIAMA Python implementation](https://github.com/aimacode/aima-python) - Python implementation of algorithms from Russell And Norvig's "Artificial Intelligence - A Modern Approach" 239 | * [PyFormat](https://pyformat.info/) - Using % and .format() for great good! 240 | * [Replacing Bash Scripting with Python](https://github.com/ninjaaron/replacing-bash-scripting-with-python) 241 | * [ugo_py_doc](https://ugoproto.github.io/ugo_py_doc/) - a Python documentation website 242 | * [The 35 Words You Need to Python](https://yawpitchroll.com/posts/the-35-words-you-need-to-python/) - The core vocabulary of Python you actually need to know to start to do meaningful work. 243 | 244 | ### Mailing lists 245 | 246 | * [Python EDU-SIG](https://www.python.org/community/sigs/current/edu-sig/) - Python.org subsite 247 | * [Python EDU-SIG](https://mail.python.org/mailman/listinfo/edu-sig) - Special Interest Group mailing list 248 | * [Python EDU-WG](https://mail.python.org/mailman/listinfo/pythonedu-wg) - Working Group mailing list 249 | * [Tutor](https://mail.python.org/mailman/listinfo/tutor) - (mailing list) Discussion for learning programming with Python 250 | * [Python-list](https://mail.python.org/mailman/listinfo/python-list) - General discussion list for the Python programming language (mailing list) 251 | * [jupyter-education](https://groups.google.com/forum/#!forum/jupyter-education) - Teaching with Jupyter Notebooks mailing list 252 | 253 | ### Forums 254 | 255 | * StackOverflow: ['python' tag](http://stackoverflow.com/questions/tagged/python) - [sopython.com community website](https://sopython.com/) 256 | * reddit: [r/Python](https://www.reddit.com/r/Python/) - [r/learnpython](https://www.reddit.com/r/learnpython/) - [r/pythontips](https://www.reddit.com/r/pythontips/) - [r/pygame](https://www.reddit.com/r/pygame/) 257 | 258 | ## Tools and Libraries 259 | 260 | * [Your Python Trinket](https://trinket.io/python) - Put Interactive Python Anywhere on the Web 261 | * [Python Tutor](http://pythontutor.com/visualize.html#mode=edit) - Visualize the execution of Python programs 262 | * [Livepython](https://github.com/agermanidis/livepython) - Visually trace Python code in real-time (alpha stage) 263 | * [Skulpt](http://www.skulpt.org/) - Skulpt is an entirely in-browser implementation of Python 2.X (!) 264 | * [SoloLearn Python 3 Tutorial](https://www.sololearn.com/Course/Python/) - mobile version 265 | * [Python Anywhere](https://www.pythonanywhere.com/details/education) 266 | * [repl.it](https://repl.it/site/languages/python3) 267 | * [Python AST Explorer](https://python-ast-explorer.com/) 268 | * [kite](https://kite.com/) - programming copilot 269 | * [EarSketch](https://earsketch.gatech.edu/) - learn to code by making music 270 | * [FoxDot](http://foxdot.org/) - Live Coding Music with Python & SuperCollider 271 | * [Ren'Py](https://www.renpy.org/) - a visual novel engine 272 | * [ColorZero](https://github.com/waveform80/colorzero) - Another color manipulation library for Python 273 | * [LogZero](https://github.com/metachris/logzero) - Robust and effective logging 274 | * [NetworkZero](https://github.com/tjguk/networkzero) - Make it easy for learning groups to use simple networking in Python 275 | 276 | ### Games, graphics and simulation 277 | 278 | * [Jupylet](https://github.com/nir/jupylet) - Create 2D and 3D games, graphics, live music and sound synthesizers, interactively in a Jupyter notebook. 279 | * [PyGame](http://www.pygame.org/) 280 | * [Pygame Zero](https://pygame-zero.readthedocs.io) for creating games without boilerplate 281 | * [Python Arcade Library](http://arcade.academy/) 282 | * [Pyglet](http://www.pyglet.org/) - a pure python cross-platform application framework intended for game development 283 | * [Python Mode for Processing](http://py.processing.org/) 284 | * [PythonTurtle](http://pythonturtle.org/) - 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. 285 | * [A Simple Tutorial for Python's turtle.py Module](https://github.com/asweigart/simple-turtle-tutorial-for-python/blob/master/simple_turtle_tutorial.md) 286 | * [VPython](http://vpython.org/) - 3D programming 287 | * [Pymunk](http://www.pymunk.org/) - 2D physics library 288 | * [PyPhysicsSandbox](https://github.com/jshaffstall/PyPhysicsSandbox) - a simple wrapper around Pymunk 289 | * [Kivy](https://kivy.org/) - innovative user interfaces, such as multi-touch apps 290 | * [PyQT 15 minute apps](https://github.com/mfitzp/15-minute-apps) - 15 minute (small) desktop apps built with PyQt 291 | * [PyQt5 tutorial](https://www.learnpyqt.com/) - Create GUI applications with Python 292 | * [Panda3D](http://www.panda3d.org/) - game engine and framework for 3D rendering 293 | * [Ursina Engine](https://www.ursinaengine.org/) - game engine based on Panda3D but really easy-to-use. Great for beginners in 3D game coding. 294 | * [gui zero](https://lawsie.github.io/guizero/) - to allow children to quickly and easily create GUIs for their programs 295 | * [Free Python Games](http://www.grantjenks.com/docs/freegames/) - collection of free Python games intended for education and fun 296 | * [Angry Birds in Python](https://github.com/estevaofon/angry-birds-python) - using pygame and pymunk 297 | * [Jappy](https://github.com/somosazucar/Jappy) - the app powering the http://educa.juegos/ collaborative coding platform 298 | * [Predigame](http://predigame.io/) - instructional platform that teaches the basics of coding through the creation of arcade games 299 | * [ThorPy](http://www.thorpy.org/) - A GUI library for pygame 300 | * [sc8pr](https://github.com/dmaccarthy/sc8pr) - A simple framework for new and experienced Python programmers to create animations, games, and other graphics-based programs 301 | * [pyxel](https://github.com/kitao/pyxel) - A retro game development environment in Python. 302 | * [PySimpleGUI](https://github.com/MikeTheWatchGuy/PySimpleGUI) - Super-simple GUI to use... Powerfully customizable. 303 | * [evennia](http://www.evennia.com/) - library and toolkit for building multi-player online text games 304 | * [adventurelib](https://github.com/lordmauve/adventurelib) - easy text adventures 305 | * [PythonStdioGames](https://github.com/asweigart/PythonStdioGames) - A compilation of text-based games written in Python that only use "standard i/o". 306 | * [PyperCard](https://github.com/ntoll/pypercard) - HyperCard inspired GUI framework for beginner developers in Python ([doc site](https://pypercard.rtfd.io/)) 307 | * [PyComic](https://github.com/pycomic/pycomic.github.io) - A static website for generating Pythonic comics 308 | 309 | ### Visualization 310 | 311 | * [Bokeh](http://bokeh.pydata.org/) - an interactive visualization library that targets modern web browsers for presentation. 312 | * [VisPy](http://vispy.org/) - library for interactive scientific visualization that is designed to be fast, scalable, and easy to use. 313 | * [Python Graph Gallery](https://python-graph-gallery.com/) - showcase hundreds of charts, always providing the reproducible python code. 314 | 315 | ### Jupyter 316 | * [Awesome Jupyter](https://github.com/markusschanta/awesome-jupyter) - A curated list of awesome Jupyter projects, libraries and resources 317 | * [Project Jupyter](https://jupyter.org/) 318 | * [github.com/jupyter4edu](https://github.com/jupyter4edu) - best practices and content for teaching with Jupyter notebooks 319 | * [jupyter4edu/jupyter-edu-book](https://github.com/jupyter4edu/jupyter-edu-book) - open source of the "Teaching and Learning with Jupyter" book 320 | * https://jupyter4edu.github.io/jupyter-edu-book/ - "Teaching and Learning with Jupyter" book 321 | * [github.com/IPython](https://github.com/ipython) 322 | * [github.com/Jupyter](https://github.com/jupyter) 323 | * [github.com/JupyterHub](https://github.com/jupyterhub) 324 | * [github.com/JupyterLab](https://github.com/jupyterlab) 325 | * [jupyter-education: Teaching with Jupyter Notebooks mailing list](https://groups.google.com/forum/#!forum/jupyter-education) - mailing list 326 | * [jupyterhub/JupyterHub](https://github.com/jupyterhub/jupyterhub) - multi-user server for Jupyter notebooks 327 | * [Zero to JupyterHub](https://zero-to-jupyterhub.readthedocs.io/) - documentation for setting up a multi-user JupyterHub server 328 | * [TLJH: The Littlest JupyterHub](https://tljh.jupyter.org/en/latest/) - documentation for "a simple JupyterHub distribution for a small (0-100) number of users on a single server" 329 | * [jupyterhub-deploy-teaching](https://github.com/jupyterhub/jupyterhub-deploy-teaching) - reference deployment of JupyterHub and nbgrader on a single server 330 | * [jupyterlab/JupyterLab](https://github.com/jupyterlab/jupyterlab) - rewrite of Jupyter Notebook with tabs, extensions, command list 331 | * [JupyterLab Documentation](https://jupyterlab.readthedocs.io/) 332 | * [mybinder.org](https://mybinder.org/) - "Binder": generate a container from a git repository (or a DOI) with repo2docker and run it in the cloud 333 | * [jupyterhub/binderhub](https://github.com/jupyterhub/binderhub/) - BinderHub is the application that powers https://mybinder.org (on k8s) 334 | * [jupyter/repo2docker](https://github.com/jupyter/repo2docker) - generate Jupyter-enabled Docker Images from repositories 335 | * [github.com/binder-examples](https://github.com/binder-examples) - examples of Binder-ready (REES-compatible) Jupyter notebooks 336 | * [REES: Reproducible Execution Environment Specification](https://repo2docker.readthedocs.io/en/latest/specification.html) - specification that repo2docker uses to build a container image for a given project and its dependencies 337 | * [REES Config files](https://repo2docker.readthedocs.io/en/latest/config_files.html) - requirements.txt, environment.yml, Pipfile.lock, postBuild, Dockerfile 338 | * [ipython/ipywidgets - IPython widgets](https://github.com/ipython/ipywidgets) 339 | * [jupyter/nbgrader](https://github.com/jupyter/nbgrader/) - nbgrader is a tool that facilitates creating and grading assignments in the Jupyter notebook 340 | * [nbgrader docs](https://nbgrader.readthedocs.io/) - docs for the nbgrader tool 341 | * [jupyterhub/jupyterhub-deploy-teaching](https://github.com/jupyterhub/jupyterhub-deploy-teaching) - reference deployment of JupyterHub and nbgrader on a single server 342 | * [jupyterlab/jupyterlab-google-drive](https://github.com/jupyterlab/jupyterlab-google-drive) - Google Drive for JupyterLab (see also: Google Colab) 343 | * [jupyterlab/debugger](https://github.com/jupyterlab/debugger) - a JupyterLab debugger extension for debugging code in notebook cells 344 | 345 | ### Hosted Jupyter notebooks 346 | * [awesome-jupyter > Hosted Notebook Solutions](https://github.com/markusschanta/awesome-jupyter#hosted-notebook-solutions) 347 | * [CoCalc's comparison of Online Jupyter Notebook services](https://cocalc.com/doc/compare.html) 348 | * [CoCalc](https://doc.cocalc.com/) - Jupyter notebook environment with Course Management, Handouts, Assignments, nbgrader, Time Travel history, chat 349 | * [Google Colab](https://colab.research.google.com/) - Jupyter notebook environment for machine learning education and research (requires no setup to use) 350 | * [IllumiDesk](https://www.illumidesk.com) - Jupyter notebook environment with LMS integration via LTI 1.1/1.3. 351 | * JupyterHub, BinderHub 352 | 353 | ### Jupyter Tools 354 | 355 | * [RISE](https://github.com/damianavila/RISE) - "Live" Reveal.js Jupyter/IPython Slideshow Extension 356 | * [fastpages](https://github.com/fastai/fastpages) - static/JAMstack blogging platform with support for Jupyter notebooks 357 | * [hugo-academic](https://github.com/gcushen/hugo-academic) - static/JAMstack website builder with support for Jupyter notebooks 358 | * [ipytest](https://github.com/chmp/ipytest) - run py.test tests within the notebook environment 359 | * [jupyter-contrib-nbextensions - Unofficial Jupyter Notebook Extensions](https://jupyter-contrib-nbextensions.readthedocs.io) 360 | * [jupyter-edx-colab-cloud-xblock](https://github.com/ibleducation/jupyter-edx-colab-cloud-xblock) - launch Google Colab notebooks from within an Open edX XBlock 361 | * [jupyter-edx-grader-xblock](https://github.com/ibleducation/jupyter-edx-grader-xblock) - auto-grade assignments with nbgrader and post the scores to an Open edX gradebook 362 | * [jupyter-themes](https://github.com/dunovank/jupyter-themes) - Custom Jupyter Notebook Themes 363 | * [jupyter-viewer-xblock](https://github.com/ibleducation/jupyter-viewer-xblock) - view Jupyter notebooks in an Open edX XBlock 364 | * [jupytext](https://github.com/mwouts/jupytext) - Jupyter Notebooks as Markdown, Julia, Python, or R scripts (that [auto-]save to *and from* the configured paired formats) 365 | * [lolviz](https://github.com/parrt/lolviz) - data-structure visualization tool for lists of lists, lists, dictionaries 366 | * [nbTranslate](https://github.com/jfbercher/jupyter_nbTranslate) - translate cells of a notebook from one language to another - Adds multi language support 367 | * [nbautoeval](https://github.com/parmentelat/nbautoeval) - creating auto-evaluated exercises 368 | * [nbconvert](https://nbconvert.readthedocs.io/) - convert Notebooks to other formats 369 | * [nbdev](https://github.com/fastai/nbdev) - export, sync, and document notebook cells to and from regular python modules 370 | * [nbdime](https://nbdime.readthedocs.io/) - diffing and merging of Jupyter Notebooks 371 | * [nbgallery](https://github.com/nbgallery/nbgallery) - platform for sharing and collaborating on Jupyter notebooks 372 | * [nbinteract](https://www.nbinteract.com/) - creates interactive webpages from Jupyter notebooks 373 | * [nbscan](https://github.com/conery/nbscan) - search for and print contents of cells in Jupyter notebooks 374 | * [nbsphinx](https://nbsphinx.readthedocs.io/en/latest) - Sphinx extension for publishing Jupyter Notebooks as static/JAMstack websites 375 | * [nbtranslate](https://github.com/devrt/nbtranslate) - translate content of Jupyter notebook using gettext tools 376 | * [nbtutor](https://github.com/lgpage/nbtutor) - visualize Python code execution (line-by-line) 377 | * [nbval](https://github.com/computationalmodelling/nbval) - Py.test plugin for validating Jupyter notebooks 378 | * [notedown](https://github.com/aaren/notedown/) - Convert IPython Notebooks to markdown (and back) 379 | * [pixiedebugger](https://medium.com/ibm-watson-data-lab/the-visual-python-debugger-for-jupyter-notebooks-youve-always-wanted-761713babc62) - The Visual Python Debugger for Jupyter Notebooks You’ve Always Wanted 380 | * [pynb](https://github.com/minodes/pynb) - Jupyter Notebooks as plain Python code with embedded Markdown text 381 | * [rst2ipynb](https://github.com/nthiery/rst-to-ipynb) - convert standalone reStructuredText files to Jupyter notebook file 382 | * [sphinxcontrib-jupyter](https://github.com/QuantEcon/sphinxcontrib-jupyter) - A Sphinx Extension for Generating Jupyter Notebooks 383 | 384 | ### Jupyter resources 385 | 386 | * [GitHub Trending Jupyter Notebooks](https://github.com/trending/jupyter-notebook) 387 | * [Jupyter Notebook cheatsheet](https://www.cheatography.com/weidadeyue/cheat-sheets/jupyter-notebook/) 388 | * [Jupyter tips, tricks and shortcuts](https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/) 389 | * [IPythonBlocks](http://ipythonblocks.org/) 390 | * [Using the IPython Notebook as a Teaching Tool](https://software-carpentry.org/blog/2013/03/using-notebook-as-a-teaching-tool.html) 391 | * [LTI Launch JupyterHub Authenticator](https://github.com/jupyterhub/ltiauthenticator) - Implements LTI v1 authenticator for use with JupyterHub 392 | * [Lectures on scientific computing with Python](https://github.com/jrjohansson/scientific-python-lectures) 393 | * ["The world of Jupyter" —a tutorial](https://github.com/barbagroup/jupyter-tutorial) 394 | * [List of Jupyter Notebooks by Peter Norvig](http://norvig.com/ipython/) 395 | * [28 Jupyter Notebook tips, tricks and shortcuts](https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/) 396 | * [VPython running in a Jupyter notebook](https://github.com/BruceSherwood/vpython-jupyter) 397 | 398 | ### IDEs 399 | 400 | * [bpython](https://bpython-interpreter.org/) 401 | * [ptpython](https://github.com/jonathanslenders/ptpython) 402 | * [Thonny](https://thonny.org) - Python IDE for beginners 403 | * [VIM](http://www.vim.org/) with [Python plugins](https://realpython.com/blog/python/vim-and-python-a-match-made-in-heaven/) 404 | * [Emacs](https://www.gnu.org/software/emacs/) with [Python plugins](https://realpython.com/blog/python/emacs-the-best-python-editor/) 405 | * [Sublime Text 3](http://www.sublimetext.com/3) with [Python plugins](https://realpython.com/blog/python/setting-up-sublime-text-3-for-full-stack-python-development/) 406 | * [PyCharm Edu](https://www.jetbrains.com/pycharm-edu/) - With [some courses](https://github.com/JetBrains/pycharm-courses) 407 | * [Spyder](https://github.com/spyder-ide/spyder) - The Scientific PYthon Development EnviRonment. 408 | * [Wingware Python IDE](https://wingware.com/) 409 | * [Ninja-IDE](http://ninja-ide.org/) 410 | * [PyDev](http://www.pydev.org/) - a Python IDE for Eclipse, which may be used in Python, Jython and IronPython development. 411 | * [Visual Studio Code](https://code.visualstudio.com/) with [Python plugins](https://marketplace.visualstudio.com/items?itemName=ms-python.python) 412 | * [Mu](https://codewith.mu/) - a simple Python editor for beginner programmers. 413 | * [Rodeo](http://rodeo.yhat.com/) - A Native Python IDE for Data Science. 414 | * [Turing](https://github.com/TuringApp/Turing) - Free and cross-platform IDE for pseudocode and Python. 415 | * [PyScripter](https://github.com/pyscripter/pyscripter) - a feature-rich but lightweight Python IDE. 416 | * [Pyzo](http://www.pyzo.org/) - computing environment that plays well with conda. 417 | 418 | ### Debuggers 419 | 420 | * [pdb](https://docs.python.org/3/library/pdb.html) 421 | * [ipdb](https://pypi.org/project/ipdb/) 422 | * [PuDB](https://pypi.org/project/pudb/) 423 | * [pdb++](https://github.com/pdbpp/pdbpp) - a drop-in replacement for pdb 424 | * [Python Linter Online](http://pythonbuddy.com/) - Live Syntax Checking Using Pylint while Running Python 425 | * [PyTA](https://github.com/pyta-uoft/pyta) - static code analysis to help students find and fix common coding errors 426 | * [coala](http://coala.io/) - linting and fixing code 427 | * [wdb](https://github.com/Kozea/wdb) - An improbable web debugger through WebSockets 428 | * [QuantifiedCode](https://github.com/quantifiedcode/quantifiedcode) - a code analyis & automation platform 429 | * [birdseye](https://github.com/alexmojaki/birdseye) - graphical Python debugger using the AST 430 | * [Hunter](https://github.com/ionelmc/python-hunter) - a flexible code tracing toolkit 431 | 432 | ## Conferences and videos 433 | 434 | * [Taking Your Python Skills to the Next Level With Pythonic Code](http://www.datadependence.com/2016/07/pythonic-code-video-series-intro/) - 5 powerful Pythonic concepts and over 45 minutes of video examples. 435 | * [Weekly Python Chat](http://www.weeklypython.chat/) - Weekly live video chats about Python, teaching, open source, and more 436 | * [Python in Australian Education seminar](https://2016.pycon-au.org/programme/python_in_education_seminar) (2016) 437 | * [PyCon Australia 2015 Education Miniconf](https://www.youtube.com/playlist?list=PLs4CJRBY5F1I5vuApyUXp6bLWly1E-b0s) (youtube playlist) 438 | * [Python Education Summit Schedule](https://us.pycon.org/2016/events/edusummit/schedule/) (PyCon 2016) 439 | * [A one-day mini-conference about Python in Education](http://2016.pyconuk.org/teachers/) (PyConUK 2016) 440 | * [PyVideo tag 'education'](http://pyvideo.org/tag/education/) 441 | * [Khan Academy Computer Science (Python video playlist)](https://www.youtube.com/playlist?list=PL36E7A2B75028A3D6) 442 | * [Python Programming in one video](https://www.youtube.com/watch?v=N4mEzFDjqtA) - [Learn to Program with Python](https://www.youtube.com/playlist?list=PLGLfVvz_LVvTn3cK5e6LjhgGiSeVlIRwt) Derek Banas playlist 443 | * [CPython internals: A ten-hour codewalk through the Python interpreter source code](http://pgbovine.net/cpython-internals.htm) 444 | * [Teaching Python: The Hard Parts](http://pyvideo.org/pycon-us-2016/elana-hashman-teaching-python-the-hard-parts-pycon-2016.html) - PyCon 2016 445 | * [Episode 14 – Allen Downey on Teaching Computer Science with Python](https://www.pythonpodcast.com/episode-14-allen-downey-on-teaching-computer-science-with-python/) from [podcast.\__init__('Python')](https://www.pythonpodcast.com/) 446 | * [Python For Informatics](https://www.youtube.com/playlist?list=PLlRFEj9H3Oj4JXIwMwN1_ss1Tk8wZShEJ) 447 | * [Python for Everybody - Exploring Information](https://www.youtube.com/playlist?list=PLlRFEj9H3Oj7Bp8-DfGpfAfDBiblRfl5p) 448 | * [sentdex youtube playlists](https://www.youtube.com/user/sentdex/playlists) or via [Python Programming](https://pythonprogramming.net/) 449 | * [Dan Bader's youtube channel](https://dbader.org/youtube/) 450 | * [Corey Schafer's youtube channel](https://www.youtube.com/user/schafer5) 451 | * [Python 3.4 Programming Tutorials](https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAcbMi1sH6oAMk4JHw91mC_) 452 | * [Programming Foundations with Python](https://www.youtube.com/playlist?list=PLAwxTw4SYaPnYajEbZvqtcVWQ6XGhvtOW) from [Udacity](https://www.udacity.com/course/ud036) 453 | * [PySide Video Tutorials](http://wiki.qt.io/PySide_Video_Tutorials) 454 | * [Python Basics - Coding is for girls](https://www.youtube.com/playlist?list=PLbd_WhypdBbAMyFfKgSj27JO7CEpuIcEK) 455 | * [Python For Beginners - Learn To Code Tutorials ](https://www.youtube.com/playlist?list=PLW_tdZJKynZXgLKQAR2g52ut4c2IpUmOv) 456 | * [TheNewBoston Python 3 videotutorials](https://www.youtube.com/watch?v=HBxCHonP6Ro&list=PL6gx4Cwl9DGAcbMi1sH6oAMk4JHw91mC_) - also [Flask](https://www.youtube.com/watch?v=ZVGwqnjOKjk&list=PL6gx4Cwl9DGDi9F_slcQK7knjtO8TUvUs) and others on [their channel](https://www.youtube.com/user/thenewboston) 457 | * [Build applications in Python the antitextbook](https://www.youtube.com/playlist?list=PL41psiCma00wwvtQyLFMFpzWxUYmSZwZy) 458 | * [Socratica Python Programming Tutorials](https://www.youtube.com/playlist?list=PLi01XoE8jYohWFPpC17Z-wWhPOSuh8Er-) 459 | * [Python for Data Analysis - Pandas Cookbook](https://www.youtube.com/playlist?list=PLyBBc46Y6aAz54aOUgKXXyTcEmpMisAq3) 460 | 461 | ## Books 462 | 463 | * [The Computer Science Field Guide](http://www.csfieldguide.org.nz/en/) - ([repo](https://github.com/uccser/cs-field-guide)) 464 | * [Awesome Python Books](https://github.com/Junnplus/awesome-python-books) 465 | * [PythonBooks](http://pythonbooks.revolunet.com/) 466 | * [Build applications in Python the antitextbook](http://github.com/thewhitetulip/build-app-with-python-antitextbook) 467 | * [Algorithmic Problem Solving with Python](http://www.eecs.wsu.edu/~schneidj/PyBook/swan.pdf) 468 | * [Openlibra: Python](https://openlibra.com/en/collection/search/category/python/language/english/) 469 | * [Intermediate Python](http://book.pythontips.com/) - [github repo](https://github.com/yasoob/intermediatePython) 470 | * [Python Practice Book](http://anandology.com/python-practice-book/) 471 | * [Scipy Lecture Notes](http://www.scipy-lectures.org/) 472 | * [Problem Solving with Algorithms and Data Structures using Python](http://interactivepython.org/courselib/static/pythonds/index.html) - [accompanying videos](https://teklern.blogspot.com.es/p/blog-page.html) 473 | * [Python for Everybody - Exploring Data In Python 3](http://www.py4e.com/book) 474 | * [Composing Programs](http://composingprograms.com/) based on SICP textbook. 475 | * [Dive into Python 3](https://www.diveinto.org/python3/) 476 | * [Introduction to Programming with Python](http://opentechschool.github.io/python-beginners/en/) 477 | * [Learn Python, Break Python - A Beginner's Guide to Programming](http://learnpythonbreakpython.com/) 478 | * [Non-Programmer's Tutorial for Python 3](https://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3) 479 | * [The Art and Craft of Programming (Python edition)](http://troll.cs.ua.edu/ACP-PY/) 480 | * [CS61A: Structure and Interpretation of Computer Programs](http://inst.eecs.berkeley.edu/~cs61a/sp12/book/index.html) 481 | * [Learn Python the hard way](https://learnpythonthehardway.org/python3/) 482 | * [Program Arcade Games With Python And Pygame](http://programarcadegames.com/) 483 | * [Python for you and me](http://pymbook.readthedocs.io/en/py3/) 484 | * [Object-Oriented Programming in Python](http://python-textbok.readthedocs.io) 485 | * [Violent Python. A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security Engineers](http://store.elsevier.com/Violent-Python/TJ-OConnor/isbn-9781597499576/) 486 | * [Natural Language Processing with Python – Analyzing Text with the Natural Language Toolkit](http://www.nltk.org/book/) 487 | * [Python for Scientists and Engineers](http://pythonforengineers.com/python-for-scientists-and-engineers/) 488 | * [PythonBooks](http://pythonbooks.org/) - categorized Python books 489 | 490 | ### Coding Club books 491 | 492 | * [Python Basics](http://www.codingclub.co.uk/book1_home.php) 493 | * [Python Next Steps](http://www.codingclub.co.uk/book2_home.php) 494 | * [Python: Building Big Apps](http://www.codingclub.co.uk/book3_home.php) 495 | * [Python: Programming Art](http://www.codingclub.co.uk/book4_home.php) 496 | * [Python: Interactive Adventures](http://www.codingclub.co.uk/book5_home.php) 497 | * [Black Flag: A Coding Club Mission](http://www.codingclub.co.uk/black_flag.php) 498 | * [Coding Cards](http://www.codingclub.co.uk/codecards/CC-CodeCards.pdf) [PDF] 499 | 500 | ### Green Tea Press 501 | 502 | * [Think Python: How To Think Like a Computer Scientist, 2nd ed.](http://greenteapress.com/thinkpython2/html/) 503 | * [Think Complexity: Exploring Complexity Science with Python, 2nd ed.](http://greenteapress.com/complexity2/html/) 504 | * [Think DSP: Digital Signal Processing in Python](http://greenteapress.com/thinkdsp/html/) 505 | * [Think Stats: Exploratory Data Analysis in Python, 2nd ed.](http://greenteapress.com/thinkstats2/html/) 506 | * [Think Bayes: Bayesian Statistics in Python](http://www.greenteapress.com/thinkbayes/html/) 507 | 508 | ### Invent with Python series 509 | 510 | * [Invent your own computer games with Python](https://inventwithpython.com/) 511 | * [Making Games with Python & Pygame](https://inventwithpython.com/pygame/) 512 | * [Hacking Secret Ciphers with Python](http://inventwithpython.com/hacking/) -> 2nd ed: [Cracking Codes with Python](http://inventwithpython.com/cracking/) 513 | * [Automate the Boring Stuff with Python](https://automatetheboringstuff.com/) 514 | 515 | ### Manning Publications 516 | * [Classic Computer Science Problems in Python](https://www.manning.com/books/classic-computer-science-problems-in-python) 517 | * [Hello! Python](https://www.manning.com/books/hello-python) 518 | * [Hello World! 2nd ed. Computer Programming for Kids and Other Beginners](https://www.manning.com/books/hello-world-second-edition) 519 | * [Hello Raspberry Pi!](https://www.manning.com/books/hello-raspberry-pi) - Python programming for kids and other beginners. 520 | * [The Quick Python Book, Third Edition](https://www.manning.com/books/the-quick-python-book-third-edition) 521 | * [Learn Programming with Python](https://www.manning.com/books/learn-programming-with-python) 522 | * [Grokking Algorithms](https://www.manning.com/books/grokking-algorithms) - An illustrated guide for programmers and other curious people. 523 | * [Practices of the Python Pro](https://www.manning.com/books/practices-of-the-python-pro) - Professional software development principles and best practices for beginning developers. 524 | * [The Well-Grounded Python Developer](https://www.manning.com/books/the-well-grounded-python-developer) - Helping programmers who know Python become and think like developers. 525 | * [Tiny Python Projects](https://www.manning.com/books/tiny-python-projects) - An introduction to Python fundamentals through puzzles and games. 526 | * [Publishing Python Packages](https://www.manning.com/books/publishing-python-packages) - Book that reveals best practices and standards for packaging your Python code in an easy, automated, and scalable way.. 527 | 528 | ### No Starch Press 529 | 530 | * [Python for Kids](https://www.nostarch.com/pythonforkids) 531 | * [Teach Your Kids to Code](https://www.nostarch.com/teachkids) 532 | * [Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More!](https://www.nostarch.com/doingmathwithpython) 533 | * [Python Crash Course. A Hands-On, Project-Based Introduction to Programming](https://www.nostarch.com/pythoncrashcourse) 534 | * [Python Playground. Geeky Projects for the Curious Programmer](https://www.nostarch.com/pythonplayground) 535 | * [Learn to Program with Minecraft. Transform Your World with the Power of Python](https://www.nostarch.com/programwithminecraft) 536 | * [Black Hat Python. Python Programming for Hackers and Pentesters](https://www.nostarch.com/blackhatpython) 537 | 538 | ### O'Reilly 539 | 540 | * [Raspberry Pi Cookbook. Software and Hardware Problems and Solutions](http://shop.oreilly.com/product/0636920196372.do) 541 | * [Head First Python, 2nd Edition](http://shop.oreilly.com/product/0636920036777.do) 542 | * [Python for Unix and Linux System Administration](http://shop.oreilly.com/product/9780596515829.do) (2008) 543 | 544 | ### Packt Pub 545 | 546 | * [Python Projects for Kids](https://www.packtpub.com/application-development/python-projects-kids) 547 | * [Raspberry Pi Projects for Kids](https://www.packtpub.com/hardware-and-creative/raspberry-pi-projects-kids-second-edition) 548 | * [Python Programming for Arduino](https://www.packtpub.com/application-development/python-programming-arduino) 549 | * [Pro Python System Administration](http://www.apress.com/us/book/9781430226055) (2010) 550 | 551 | ## Hardware 552 | 553 | * [Cozmo](https://developer.anki.com/) 554 | 555 | ### Raspberry Pi 556 | 557 | * [Raspberry Pi](https://www.raspberrypi.org/) 558 | 559 | * [Getting Started with Minecraft Pi](https://www.raspberrypi.org/learning/getting-started-with-minecraft-pi/) 560 | * [Create a "Whac-a-block" game in Minecraft](https://www.raspberrypi.org/learning/minecraft-whac-a-block-game/) 561 | * [MagPi issues](https://www.raspberrypi.org/magpi-issues/) 562 | 563 | * [The Raspberry Pi Platform and Python Programming for the Raspberry Pi](https://www.coursera.org/learn/raspberry-pi-platform) 564 | * [gpiozero](https://github.com/RPi-Distro/python-gpiozero) - A simple interface to GPIO devices with Raspberry Pi. 565 | 566 | ### Arduino 567 | 568 | * [Arduino and Python](http://playground.arduino.cc/Interfacing/Python) 569 | * [Using Python with Arduino](http://www.toptechboy.com/using-python-with-arduino-lessons/) 570 | 571 | ### BBC microbit 572 | 573 | * [The micro:bit Foundation](http://microbit.org/) 574 | * [BBC micro:bit MicroPython](https://microbit-micropython.readthedocs.io) 575 | * [Microbit Playground](https://github.com/microbit-playground) 576 | 577 | ### PyBoard 578 | 579 | * [MicroPython](http://micropython.org/) 580 | 581 | ### ESP32 582 | 583 | * [MicroPython](https://github.com/micropython/micropython-esp32) 584 | 585 | ### Adafruit CircuitPython 586 | 587 | * [CircuitPython](https://github.com/adafruit/circuitpython) - a MicroPython fork for teaching coding with microcontrollers 588 | * [Awesome CircuitPython](https://github.com/adafruit/awesome-circuitpython) - A curated list of awesome CircuitPython guides, videos, libraries, frameworks, software and resources. 589 | 590 | ## License 591 | 592 | [![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/) 593 | --------------------------------------------------------------------------------