https://github.com/norvig/pytudes Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Customer Stories + White papers, Ebooks, Webinars + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. {{ message }} norvig / pytudes Public * Notifications * Fork 2.3k * Star 20.7k Python programs, usually short, of considerable difficulty, to perfect particular skills. License MIT license 20.7k stars 2.3k forks Activity Star Notifications * Code * Issues 17 * Pull requests 5 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights norvig/pytudes This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 1 branch 0 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/n] Use Git or checkout with SVN using the web URL. [gh repo clone norvig] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @norvig norvig Add files via upload ... 952675f Jul 3, 2023 Add files via upload 952675f Git stats * 850 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time data fix for python3 August 17, 2018 19:11 ipynb Add files via upload July 3, 2023 13:30 py Update pytudes.py December 10, 2022 16:27 txt Rename tools.md to txt/tools.md December 6, 2021 16:57 .travis.yml Added all jupyter notebooks to Travis December 28, 2017 12:06 LICENSE Create LICENSE November 21, 2017 09:00 README.md Add files via upload December 10, 2022 16:21 requirements.txt Update requirements.txt March 15, 2018 00:58 View code pytudes Who is this for? Index of Jupyter (IPython) Notebooks Index of Python Files Etudes for Programmers README.md Peter Norvig MIT License 2015-2022 pytudes "An etude (a French word meaning study) is an instrumental musical composition, usually short, of considerable difficulty, and designed to provide practice material for perfecting a particular musical skill." -- Wikipedia This project contains pytudes--Python programs, usually short, for perfecting particular programming skills. Who is this for? To continue the musical analogy, some people think of programming like Spotify: they want to know how to install the app, find a good playlist, and hit the "play" button; after that they don't want to think about it. There are plenty of other tutorials that will tell you how to do the equivalent of that for various programming tasks--this one won't help. But if you think of programming like playing the piano--a craft that can take years to perfect--then I hope this collection can help. Index of Jupyter (IPython) Notebooks For each notebook you can hover or click on the title, or click one of the letters in the left column to launch the notebook on Colab, D eepnote, Github, Mybinder, Sagemaker, or NBViewer. Run Year Recent (2022) CDGMNS 2022 AlphaCode Automated Programming CDGMNS 2022 Selecting Names from a Menu CDGMNS 2022 Advent of Code 2022 CDGMNS 2022 Advent of Code Utilities CDGMNS 2022 Winning Wordle CDGMNS 2022 Goldberg's Character-level Language Model CDGMNS 2022 Anigrams: Word Chains Run Year Programming Examples CDGMNS 2022 AlphaCode Automated Programming CDGMNS 2018 Beal's Conjecture Revisited CDGMNS 2020 Bicycling Statistics CDGMNS 2018 Can't Stop CDGMNS 2019 Chaos with Triangles CDGMNS 2017 Conway's Game of Life CDGMNS 2020 Generating and Solving Mazes CDGMNS 2021 Mel's Konane Board CDGMNS 2022 Selecting Names from a Menu CDGMNS 2020 Photo Focal Lengths CDGMNS 2018 Pickleball Tournament CDGMNS 2017 Project Euler Utilities CDGMNS 2020 Tracking Trump: Electoral Votes Run Year Advent of Code CDGMNS 2022 Advent of Code 2022 CDGMNS 2021 Advent of Code 2021 CDGMNS 2020 Advent of Code 2020 CDGMNS 2018 Advent of Code 2018 CDGMNS 2017 Advent of Code 2017 CDGMNS 2016 Advent of Code 2016 CDGMNS 2022 Advent of Code Utilities Run Year Logic and Number Puzzles CDGMNS 2014 Cryptarithmetic CDGMNS 2018 Euler's Sum of Powers Conjecture CDGMNS 2020 Four 4s, Five 5s, and Countdowns CDGMNS 2021 KenKen (Sudoku-like Puzzle) CDGMNS 2019 Pairing Socks CDGMNS 2018 Sicherman Dice CDGMNS 2014 Sol Golomb's Rectangle Puzzle CDGMNS 2021 Star Battle (Sudoku-like Puzzle) CDGMNS 2006 Sudoku CDGMNS 2021 Sudoku: 100,000 puzzles/second in Java CDGMNS 2020 Square Sum Puzzle CDGMNS 2020 When is Cheryl's Birthday? CDGMNS 2015 When Cheryl Met Eve: A Birthday Story CDGMNS 2015 xkcd 1313: Regex Golf CDGMNS 2015 xkcd 1313: Regex Golf (Part 2: Infinite Problems) Run Year Word Puzzles CDGMNS 2020 Boggle / Inverse Boggle CDGMNS 2020 Chemical Element Spelling CDGMNS 2020 Equilength Numbers: FOUR = 4 CDGMNS 2017 Gesture Typing CDGMNS 2017 Ghost: A Word game CDGMNS 2018 How to Do Things with Words: NLP in Python CDGMNS 2020 Jotto and Wordle: Word Guessing Games CDGMNS 2015 Let's Code About Bike Locks CDGMNS 2017 Scrabble: Refactoring a Crossword Game Program CDGMNS 2020 Spelling Bee CDGMNS 2017 Translating English into Propositional Logic CDGMNS 2022 Winning Wordle CDGMNS 2017 World's Longest Palindrome CDGMNS 2020 World's Shortest Portmantout Word CDGMNS 2018 xkcd 1970: Name Dominoes Run Year Probability and Uncertainty CDGMNS 2022 Goldberg's Character-level Language Model CDGMNS 2018 A Concrete Introduction to Probability CDGMNS 2016 Probability, Paradox, and the Reasonable Person Principle CDGMNS 2020 Estimating Probabilities with Simulations CDGMNS 2019 The Devil and the Coin Flip Game CDGMNS 2020 Dice Baseball CDGMNS 2018 Economics Simulation CDGMNS 2012 Poker Hand Ranking CDGMNS 2020 The Unfinished Game .... of Risk CDGMNS 2019 WWW: Who Will Win (NBA Title)? Run Year The Riddler (from 538) CDGMNS 2022 Anigrams: Word Chains CDGMNS 2017 Battle Royale CDGMNS 2021 CrossProduct CDGMNS 2020 Flipping Cards; A Guessing Game CDGMNS 2019 Lottery CDGMNS 2019 How Many Soldiers to Beat the Night King? CDGMNS 2017 Misanthropic Neighbors CDGMNS 2018 Properly Ordered Card Hands CDGMNS 2021 Split the States CDGMNS 2020 Tour de 538 CDGMNS 2020 Weighing Twelve Balls CDGMNS 2020 War. What is it Good For? Run Year Computer Science Algorithms and Concepts CDGMNS 2017 BASIC Interpreter CDGMNS 2017 Convex Hull Problem CDGMNS 2020 How to Count Things CDGMNS 2020 Stable Matching Problem CDGMNS 2017 Symbolic Algebra, Simplification, and Differentiation CDGMNS 2017 Snobol: Bad Grade, Good Experience CDGMNS 2018 Traveling Salesperson Problem Index of Python Files File Description Documentation beal.py Search for counterexamples to Beal's documentation Conjecture docex.py An obsolete framework for running unit tests, similar to doctest ibol.py An Exercise in Species Barcoding documentation lettercount.py Convert Google Ngram Counts to Letter documentation Counts lis.py Lisp Interpreter written in Python documentation lispy.py Even Better Lisp Interpreter written in documentation Python lispytest.py Tests for Lisp Interpreters pal.py Find long palindromes documentation pal2.py Find longer palindromes documentation pal3.py Find even longer palindromes documentation pytudes.py Pre-process text to generate this README.md file. py2html.py Pretty-printer to format Python files as html SET.py Analyze the card game SET documentation spell.py Spelling corrector documentation sudoku.py Program to solve sudoku puzzles documentation testaccum.py Tests for my failed Python accumulation documentation display proposal yaptu.py Yet Another Python Templating Utility Etudes for Programmers I got the idea for the "etudes" part of the name from this 1978 book by Charles Wetherell that was very influential to me when I was first learning to program. I still have my copy. [6874747073] About Python programs, usually short, of considerable difficulty, to perfect particular skills. Topics python practice programming python-3 demonstrate-skills Resources Readme License MIT license Activity Stars 20.7k stars Watchers 744 watching Forks 2.3k forks Report repository Releases No releases published Packages 0 No packages published Contributors 42 * @norvig * @ghurley * @Naereen * @alexrkopp * @pathcl * @rmeertens * @Carreau * @polonez * @ramalho * @milmazz * @BioGeek + 31 contributors Languages * Jupyter Notebook 98.5% * Other 1.5% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.