"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.
| Logic and Number Puzzles |
|---|
| Advent of Code 2016 Puzzle site with a coding puzzle each day for Advent 2016 |
| 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? |
| Countdown to 2016 Solving the equation 10 _ 9 _ 8 _ 7 _ 6 _ 5 _ 4 _ 3 _ 2 _ 1 = 2016. From an Alex Bellos puzzle. |
| Sicherman Dice 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: Will Warriors Win? Golden State Warriors probability of winning the 2016 NBA title. |
| Word Games |
|---|
| Ghost 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, funer. 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. |
| Gesture Typing What word has the longest path on a gesture-typing smartphone keyboard? Inspired by Nicolas Schank and Shumin Zhai. |
| 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 |
|---|
| A Chaos Game with Triangles A surprising appearance of the Sierpinski triangle in a random walk between vertexes. |
| BASIC Interpreter 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 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 too think about disagreements. |
| The Convex Hull Problem A classic Computer Science Algorithm. |
| The Traveling Salesperson Problem Another of the classics. |
| Economics Simulation A simulation of a simple economic game. |
| Project Euler Utilities My utility functions for the Project Euler problems, including Primes and Factors. |
| 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 | Pretty-printer to format Python files as html | |
| spell.py | Spelling corrector | spell-correct.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 learning to program.
