"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.
Index of Jupyter (IPython) Notebooks
|Logic and Number Puzzles|
|Advent of Code 2017
Puzzle site with a coding puzzle each day for Advent 2017.
|Advent of Code 2016
Puzzle site with a coding puzzle each day for Advent 2016.
|The Devil and the Coin Flip Game
How to beat the Devil at his own game.
|Translating English Sentences into Propositional Logic Statements
Automatically converting informal English sentences into formal Propositional Logic.
|The Puzzle of the Misanthropic Neighbors
How crowded will this neighborhood be, if nobody wants to live next door to anyone else?
|Four 4s, Five 5s, and Countdown to 2016
Solving the equation 10 _ 9 _ 8 _ 7 _ 6 _ 5 _ 4 _ 3 _ 2 _ 1 = 2016. From an Alex Bellos puzzle.
Find a pair of dice that is like a regular pair of dice, only different.
|Beal's Conjecture Revisited
A 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 Story
Inventing new puzzles in the Style of Cheryl's Birthday.
|Sol Golomb's Rectangle Puzzle
A Puzzle involving placing rectangles of different sizes inside a square. Bonus: cryptarithmetic.
|WWW: Who WIll Win (NBA Title)?
Computing the probability of winning the NBA title, for my home town Warriors, or any other team.
|The Riddler: Battle Royale
A puzzle involving allocating your troops and going up against an opponent.
|A Concrete Introduction to Probability
Code and examples of the basic principles of Probability Theory.
|Probability, Paradox, and the Reasonable Person Principle
Some classic paradoxes in Probability Theory, and how to think about disagreements.
|Symbolic Algebra, Simplification, and Differentiation
A computer algebra system that manipulates expressions, including symbolic differentiation.
A simulation of a simple economic game.
|How to Count Things
Combinatorial math: how to count how many things there are, when there are a lot of them.
|xkcd 1970: Name Dominoes
Lay out dominoes legally; the dominoes have people names, not numbers.
The word game Ghost (add letters, try to avoid making a word).
|World's Longest Palindrome
Searching for a long Panama-style palindrome, this time letter-by-letter.
|Refactoring a Crossword Game Program
Refactoring the Scrabble / Word with Friends game from Udacity 212.
|xkcd 1313: Regex Golf
Find the smallest regular expression; inspired by Randall Monroe.
|xkcd 1313: Regex Golf (Part 2: Infinite Problems)
Regex Golf: better, faster, funner. With Stefan Pochmann.
|Let's Code About Bike Locks
A tale of a bicycle combination lock that uses letters instead of digits. Inspired by Bike Snob NYC.
What word has the longest path on a gesture-typing smartphone keyboard?
|How to Do Things with Words, or Statistical Natural Language Processing in Python
Spelling Correction, Secret Codes, Word Segmentation, and more: grab your bag of words.
|Computer Science Algorithms, Concepts, and Problems|
How to write an interpreter for the BASIC programming language.
|Bad Grade, Good Experience
As a student, did you ever get a bad grade on a programming assignment? (Snobol, Concordance)
|Conway's Game of Life
The cellular automata zero-player game.
|A Chaos Game with Triangles
A surprising appearance of the Sierpinski triangle in a random walk between vertexes.
|The Convex Hull Problem
A classic Computer Science Algorithm.
|The Traveling Salesperson Problem
Another of the classics.
Make a maze by generating a random tree superimposed on a grid.
|Project Euler Utilities
My utility functions for the Project Euler problems, including
Index of Python Files
|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
|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||Pretty-printer to format Python files as html|
|sudoku.py||Program to solve sudoku puzzles||sudoku.html|
|testaccum.py||Tests for my failed Python
|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.