Pytudes
“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, or clone the project, or run the notebooks online by clicking this button:
pytudes: Index of Jupyter (IPython) Notebooks
Logic and Number Puzzles 

Advent of Code 2016Puzzle site with a coding puzzle each day for Advent 2016 
Translating English Sentences into Propositional Logic StatementsAutomatically converting informal English sentences into formal Propositional Logic. 
The Puzzle of the Misanthropic NeighborsHow crowded will this neighborhood be, if nobody wants to live next door to anyone else? 
Countdown to 2016Solving the equation 10 _ 9 _ 8 _ 7 _ 6 _ 5 _ 4 _ 3 _ 2 _ 1 = 2016. From an Alex Bellos puzzle. 
Sicherman DiceFind a pair of dice that is like a regular pair of dice, only different. 
Beal’s Conjecture RevisitedA search for counterexamples to Beal’s Conjecture 
When is Cheryl’s Birthday?Solving the “Cheryl’s Birthday” logic puzzle. 
When Cheryl Met Eve: A Birthday StoryInventing new puzzles in the Style of Cheryl’s Birthday. 
Sol Golomb’s Rectangle PuzzleA Puzzle involving placing rectangles of different sizes inside a square. Bonus: cryptarithmetic. 
WWW: Will Warriors Win?Golden State Warriors probability of winning the 2016 NBA title. 
Word Games 

GhostThe word game Ghost (add letters, try to avoid making a word). 
World’s Longest PalindromeSearching for a long Panamastyle palindrome, this time letterbyletter. 
Refactoring a Crossword Game ProgramRefactoring the Scrabble / Word with Friends game from Udacity 212. 
xkcd 1313: Regex GolfFind the smallest regular expression; inspired by Randall Monroe. 
xkcd 1313: Regex Golf (Part 2: Infinite Problems)Regex Golf: better, faster, funer. With Stefan Pochmann. 
Let’s Code About Bike LocksA tale of a bicycle combination lock that uses letters instead of digits. Inspired by Bike Snob NYC. 
Gesture TypingWhat word has the longest path on a gesturetyping smartphone keyboard? Inspired by Nicolas Schank and Shumin Zhai. 
How to Do Things with Words, or Statistical Natural Language Processing in PythonSpelling Correction, Secret Codes, Word Segmentation, and more: grab your bag of words. 
Computer Science Algorithms, Concepts, and Problems 

A Chaos Game with TrianglesA surprising appearance of the Sierpinski triangle in a random walk between vertexes. 
BASIC InterpreterHow to write an interpreter for the BASIC programming language. 
Bad Grade, Good ExperienceAs a student, did you ever get a bad grade on a programming assignment? (Snobol, Concordance) 
Conway’s Game of LifeThe cellular automata zeroplayer game. 
A Concrete Introduction to ProbabilityCode and examples of the basic principles of Probability Theory. 
Probability, Paradox, and the Reasonable Person PrincipleSome classic paradoxes in Probability Theory, and how too think about disagreements. 
The Convex Hull ProblemA classic Computer Science Algorithm. 
The Traveling Salesperson ProblemAnother of the classics. 
Economics SimulationA simulation of a simple economic game. 
Project Euler UtilitiesMy utility functions for the Project Euler problems, including Primes and Factors . 
pytudes: Index of Python Files
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 
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 learning to program.