"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 for perfecting programming skills.
Some are in Jupyter (IPython) notebooks, some in .py
files. You can view the files here on github, or click the NB link to view them on nbviewer (which sometimes works better). If you want to run the notebooks, not just view them, you can clone the project, or run all the notebooks online by clicking this button: , or click the DN link to run each individual notebook on deepnote.
Programming Examples 

Advent of Code 2018 NB, DN Puzzle site with a coding puzzle each day for Advent 2018 . 
Advent of Code 2017 NB, DN Puzzle site with a coding puzzle each day for Advent 2017. 
Advent of Code 2016 NB, DN Puzzle site with a coding puzzle each day for Advent 2016. 
Project Euler Utilities NB, DN My utility functions for the Project Euler problems, including Primes and Factors .

Translating English Sentences into Propositional Logic Statements NB, DN Automatically converting informal English sentences into formal Propositional Logic. 
Beal's Conjecture Revisited NB, DN A search for counterexamples to Beal's Conjecture 
WWW: Who Will Win (NBA Title)? NB, DN Computing the probability of winning the NBA title, for my home town Warriors, or any other team. 
Pickleball Tournament NB, DN Scheduling a doubles tournament fairly and efficiently. 
Conway's Game of Life NB, DN The cellular automata zeroplayer game. 
A Chaos Game with Triangles NB, DN A surprising appearance of the Sierpinski triangle in a random walk between vertexes. 
Generating Mazes NB, DN Make a maze by generating a random tree superimposed on a grid. 
Can't Stop NB, DN Optimal play in a dice board game. 
Bike Speed Versus Grade NB, DN How fast can I bike as the route gets steeper? 
Properly Ordered Card Hands NB, DN Can you get your hand of cards into a nice order with just one move? 
Logic and Number Puzzles 

When is Cheryl's Birthday? NB, DN Solving the "Cheryl's Birthday" logic puzzle. 
When Cheryl Met Eve: A Birthday Story NB, DN Inventing new puzzles in the Style of Cheryl's Birthday. 
The Devil and the Coin Flip Game NB, DN How to beat the Devil at his own game. 
The Puzzle of the Misanthropic Neighbors NB, DN How crowded will this neighborhood be, if nobody wants to live next door to anyone else? 
Four 4s, Five 5s, and Countdown to 2016 NB, DN Solving the equation 10 _ 9 _ 8 _ 7 _ 6 _ 5 _ 4 _ 3 _ 2 _ 1 = 2016. From an Alex Bellos puzzle. 
Sicherman Dice NB, DN Find a pair of dice that is like a regular pair of dice, only different. 
Sol Golomb's Rectangle Puzzle NB, DN A Puzzle involving placing rectangles of different sizes inside a square. Bonus: cryptarithmetic. 
The Riddler: Battle Royale NB, DN A puzzle involving allocating your troops and going up against an opponent. 
Word Games 

Portmantout Words NB, DN Find a long word that squishes together a bunch of words. 
xkcd 1970: Name Dominoes NB, DN Lay out dominoes legally; the dominoes have people names, not numbers. 
Ghost NB, DN The word game Ghost (add letters, try to avoid making a word). 
World's Longest Palindrome NB, DN Searching for a long Panamastyle palindrome, this time letterbyletter. 
Refactoring a Crossword Game Program NB, DN Refactoring the Scrabble / Word with Friends game from Udacity 212. 
xkcd 1313: Regex Golf NB, DN Find the smallest regular expression; inspired by Randall Monroe. 
xkcd 1313: Regex Golf (Part 2: Infinite Problems) NB, DN Regex Golf: better, faster, funner. With Stefan Pochmann. 
Let's Code About Bike Locks NB, DN A tale of a bicycle combination lock that uses letters instead of digits. Inspired by Bike Snob NYC. 
Gesture Typing NB, DN What word has the longest path on a gesturetyping smartphone keyboard? 
How to Do Things with Words, or Statistical Natural Language Processing in Python NB, DN Spelling Correction, Secret Codes, Word Segmentation, and more: grab your bag of words. 
Math Concepts 

A Concrete Introduction to Probability NB, DN Code and examples of the basic principles of Probability Theory. 
Probability, Paradox, and the Reasonable Person Principle NB, DN Some classic paradoxes in Probability Theory, and how to think about disagreements. 
Symbolic Algebra, Simplification, and Differentiation NB, DN A computer algebra system that manipulates expressions, including symbolic differentiation. 
Economics Simulation NB, DN A simulation of a simple economic game. 
How to Count Things NB, DN Combinatorial math: how to count how many things there are, when there are a lot of them. 
Euler's Sum of Powers Conjecture NB, DN Solving a 200yearold puzzle by finding integers that satisfy a^{5} + b^{5} + c^{5} + d^{5} = e^{5}. 
Computer Science Algorithms and Concepts 

BASIC Interpreter NB, DN How to write an interpreter for the BASIC programming language. 
Bad Grade, Good Experience NB, DN As a student, did you ever get a bad grade on a programming assignment? (Snobol, Concordance) 
The Convex Hull Problem NB, DN A classic Computer Science Algorithm. 
The Traveling Salesperson Problem NB, DN Another of the classics. 
File  Description  Documentation 

SET.py  Analyze the card game SET.  SET.html 
beal.py  Search for counterexamples to Beal's Conjecture  beal.html 
docex.py  A framework for running unit tests, similar to doctest . 

ibol.py  An Exercise in Species Barcoding  ibol.html 
lettercount.py  Convert Google Ngram Counts to Letter Counts  mayzner.html 
lis.py  Lisp Interpreter written in Python  lispy.html 
lispy.py  Even Better Lisp Interpreter written in Python  lispy2.html 
lispytest.py  Tests for Lisp Interpreters  
pal.py  Find long palindromes  palindrome.html 
pal2.py  Find longer palindromes  palindrome.html 
pal3.py  Find even longer palindromes  palindrome.html 
py2html.py  Prettyprinter to format Python files as html  
spell.py  Spelling corrector  spellcorrect.html 
sudoku.py  Program to solve sudoku puzzles  sudoku.html 
testaccum.py  Tests for my failed Python accumulation display proposal 
pyacc.html 
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.