Python programs, usually short, of considerable difficulty, to perfect particular skills.
"An étude (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.
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.
For each notebook you can hover on the title to see a description, or click the title to view on github, or click one of the letters in the left column to launch the notebook on Colab, Deepnote, Mybinder, Sagemaker, or NBViewer.
Run  Year  Newest 

C D M N S  2024  Counting Cluster Sizes in Paint by Numbers 
C D M N S  2024  Overtime in American Football 
C D M N S  2024  Stubborn number endings 
C D M N S  2023  Advent of Code 2023 
C D M N S  2023  Docstring Fixpoint Theory 
C D M N S  2023  One Letter Off 
C D M N S  2023  The Diamond Game: A Probability Puzzle 
C D M N S  2022  Advent of Code 2022 
C D M N S  2022  Advent of Code Utilities 
C D M N S  2022  AlphaCode Automated Programming 
C D M N S  2022  Anigrams: Word Chains 
C D M N S  2022  Selecting Names from a Menu 
C D M N S  2022  Winning Wordle 
Run  Year  Programming Examples 

C D M N S  2022  AlphaCode Automated Programming 
C D M N S  2018  Beal's Conjecture Revisited 
C D M N S  2020  Bicycling Statistics 
C D M N S  2018  Can't Stop 
C D M N S  2019  Chaos with Triangles 
C D M N S  2017  Conway's Game of Life 
C D M N S  2020  Generating and Solving Mazes 
C D M N S  2021  Mel's Konane Board 
C D M N S  2020  Photo Focal Lengths 
C D M N S  2018  Pickleball Tournament 
C D M N S  2017  Project Euler Utilities 
C D M N S  2022  Selecting Names from a Menu 
C D M N S  2020  Tracking Polls: Electoral Votes 
Run  Year  Advent of Code 

C D M N S  2023  Advent of Code 2023 
C D M N S  2022  Advent of Code 2022 
C D M N S  2021  Advent of Code 2021 
C D M N S  2020  Advent of Code 2020 
C D M N S  2018  Advent of Code 2018 
C D M N S  2017  Advent of Code 2017 
C D M N S  2016  Advent of Code 2016 
C D M N S  2022  Advent of Code Utilities 
Run  Year  Probability and Uncertainty 

C D M N S  2019  Effectiveness of Language Models 
C D M N S  2018  A Concrete Introduction to Probability 
C D M N S  2016  Probability, Paradox, and the Reasonable Person Principle 
C D M N S  2020  Estimating Probabilities with Simulations 
C D M N S  2023  The Diamond Game: A Probability Puzzle 
C D M N S  2019  The Devil and the Coin Flip Game 
C D M N S  2020  Dice Baseball 
C D M N S  2018  Economics Simulation 
C D M N S  2024  Overtime in American Football 
C D M N S  2012  Poker Hand Ranking 
C D M N S  2020  The Unfinished Game .... of Risk 
C D M N S  2019  WWW: Who Will Win (NBA Title)? 
Run  Year  Logic and Number/Counting Puzzles 

C D M N S  2024  Counting Cluster Sizes in Paint by Numbers 
C D M N S  2014  Cryptarithmetic 
C D M N S  2018  Euler's Sum of Powers Conjecture 
C D M N S  2020  Four 4s, Five 5s, and Countdowns 
C D M N S  2021  KenKen (Sudokulike Puzzle) 
C D M N S  2019  Pairing Socks 
C D M N S  2018  Sicherman Dice 
C D M N S  2014  Sol Golomb's Rectangle Puzzle 
C D M N S  2024  Stubborn number endings 
C D M N S  2021  Star Battle (Sudokulike Puzzle) 
C D M N S  2006  Sudoku 
C D M N S  2021  Sudoku: 100,000 puzzles/second in Java 
C D M N S  2020  Square Sum Puzzle 
C D M N S  2020  When is Cheryl's Birthday? 
C D M N S  2015  When Cheryl Met Eve: A Birthday Story 
C D M N S  2015  xkcd 1313: Regex Golf 
C D M N S  2015  xkcd 1313: Regex Golf (Part 2: Infinite Problems) 
Run  Year  Word Puzzles 

C D M N S  2020  Boggle / Inverse Boggle 
C D M N S  2020  Chemical Element Spelling 
C D M N S  2020  Equilength Numbers: FOUR = 4 
C D M N S  2017  Gesture Typing 
C D M N S  2017  Ghost: A Word game 
C D M N S  2018  How to Do Things with Words: NLP in Python 
C D M N S  2015  Let's Code About Bike Locks 
C D M N S  2023  One Letter Off 
C D M N S  2017  Scrabble: Refactoring a Crossword Game Program 
C D M N S  2020  Spelling Bee 
C D M N S  2017  Translating English into Propositional Logic 
C D M N S  2020  Wordle, Evil Wordle, Antiwordle, and Jotto 
C D M N S  2022  Winning Wordle 
C D M N S  2017  World's Longest Palindrome 
C D M N S  2020  World's Shortest Portmantout Word 
C D M N S  2018  xkcd 1970: Name Dominoes 
Run  Year  The Riddler (from 538) 

C D M N S  2022  Anigrams: Word Chains 
C D M N S  2017  Battle Royale 
C D M N S  2021  Climbing Wall 
C D M N S  2021  CrossProduct 
C D M N S  2020  Flipping Cards; A Guessing Game 
C D M N S  2019  Lottery 
C D M N S  2019  How Many Soldiers to Beat the Night King? 
C D M N S  2017  Misanthropic Neighbors 
C D M N S  2018  Properly Ordered Card Hands 
C D M N S  2021  Race Track 
C D M N S  2021  Split the States 
C D M N S  2020  Tour de 538 
C D M N S  2020  Weighing Twelve Balls 
C D M N S  2020  War. What is it Good For? 
Run  Year  Computer Science Algorithms and Concepts 

C D M N S  2017  BASIC Interpreter 
C D M N S  2017  Convex Hull Problem 
C D M N S  2023  Docstring Fixpoint Theory 
C D M N S  2020  How to Count Things 
C D M N S  2020  Stable Matching Problem 
C D M N S  2017  Symbolic Algebra, Simplification, and Differentiation 
C D M N S  2017  Snobol: Bad Grade, Good Experience 
C D M N S  2018  Traveling Salesperson Problem 
File  Description  Documentation 

beal.py  Search for counterexamples to Beal's Conjecture  documentation 
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 Counts  documentation 
lis.py  Lisp Interpreter written in Python  documentation 
lispy.py  Even Better Lisp Interpreter written in Python  documentation 
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  Preprocess text to generate this README.md file.  
py2html.py  Prettyprinter 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 display proposal 
documentation 
yaptu.py  Yet Another Python Templating Utility 
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.