# pytudes *Etudes* are exercises to practice or demonstrate skills, long used by piano players. This project contains **pytudes**—Python programs to practice or demonstrate skills. # pytudes: Index of Jupyter (IPython) Notebooks |Logic and Number Puzzles| |---| |[Advent of Code 2016](https://github.com/norvig/pytudes/blob/master/Advent%20of%20Code.ipynb)
*Puzzle site with a coding puzzle each day for Advent 2016*| |[Translating English Sentences into Propositional Logic Statements](https://github.com/norvig/pytudes/blob/master/PropositionalLogic.ipynb)
*Automatically converting informal English sentences into formal Propositional Logic.*| |[The Puzzle of the Misanthropic Neighbors](https://github.com/norvig/pytudes/blob/master/Mean%20Misanthrope%20Density.ipynb)
*How crowded will this neighborhood be, if nobody wants to live next door to anyone else?*| |[Countdown to 2016](https://github.com/norvig/pytudes/blob/master/Countdown.ipynb)
*Solving the equation 10 _ 9 _ 8 _ 7 _ 6 _ 5 _ 4 _ 3 _ 2 _ 1 = 2016. From an Alex Bellos puzzle.*| |[Sicherman Dice](https://github.com/norvig/pytudes/blob/master/Sicherman%20Dice.ipynb)
*Find a pair of dice that is like a regular pair of dice, only different.*| |[Beal's Conjecture Revisited](https://github.com/norvig/pytudes/blob/master/Beal.ipynb)
*A search for counterexamples to Beal's Conjecture*| |[When is Cheryl's Birthday?](https://github.com/norvig/pytudes/blob/master/Cheryl.ipynb)
*Solving the "Cheryl's Birthday" logic puzzle.*| |[When Cheryl Met Eve: A Birthday Story](https://github.com/norvig/pytudes/blob/master/Cheryl-and-Eve.ipynb)
*Inventing new puzzles in the Style of Cheryl's Birthday.*| |[Sol Golomb's Rectangle Puzzle](https://github.com/norvig/pytudes/blob/master/Golomb-Puzzle.ipynb)
*A Puzzle involving placing rectangles of different sizes inside a square. Bonus: cryptarithmetic.*| |[WWW: Will Warriors Win?](https://github.com/norvig/pytudes/blob/master/WWW.ipynb)
*Golden State Warriors probability of winning the 2016 NBA title.*| |Word Games| |---| |[Ghost](https://github.com/norvig/pytudes/blob/master/Ghost.ipynb)
*The word game Ghost (add letters, try to avoid making a word).*| |[World's Longest Palindrome](https://github.com/norvig/pytudes/blob/master/pal3.ipynb)
*Searching for a long Panama-style palindrome, this time letter-by-letter.*| |[Refactoring a Crossword Game Program](https://github.com/norvig/pytudes/blob/master/Scrabble.ipynb)
*Refactoring the Scrabble / Word with Friends game from Udacity 212.*| |[xkcd 1313: Regex Golf](https://github.com/norvig/pytudes/blob/master/xkcd1313.ipynb)
*Find the smallest regular expression; inspired by Randall Monroe.*| |[xkcd 1313: Regex Golf (Part 2: Infinite Problems)](https://github.com/norvig/pytudes/blob/master/xkcd1313-part2.ipynb)
*Regex Golf: better, faster, funer. With Stefan Pochmann.*| |[Let's Code About Bike Locks](https://github.com/norvig/pytudes/blob/master/Fred%20Buns.ipynb)
*A tale of a bicycle combination lock that uses letters instead of digits. Inspired by Bike Snob NYC.*| |[Gesture Typing](https://github.com/norvig/pytudes/blob/master/Gesture%20Typing.ipynb)
*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](https://github.com/norvig/pytudes/blob/master/How%20to%20Do%20Things%20with%20Words.ipynb)
*Spelling Correction, Secret Codes, Word Segmentation, and more: grab your bag of words.*| |Computer Science Algorithms, Concepts, and Problems| |---| |[A Chaos Game with Triangles](https://github.com/norvig/pytudes/blob/master/Sierpinski.ipynb)
*A surprising appearance of the Sierpinski triangle in a random walk between vertexes.*| |[BASIC Interpreter](https://github.com/norvig/pytudes/blob/master/BASIC.ipynb)
*How to write an interpreter for the BASIC programming language.*| |[Conway's Game of Life](https://github.com/norvig/pytudes/blob/master/Life.ipynb)
*The cellular automata zero-player game.*| |[A Concrete Introduction to Probability](https://github.com/norvig/pytudes/blob/master/Probability.ipynb)
*Code and examples of the basic principles of Probability Theory.*| |[Probability, Paradox, and the Reasonable Person Principle](https://github.com/norvig/pytudes/blob/master/ProbabilityParadox.ipynb)
*Some classic paradoxes in Probability Theory, and how too think about disagreements.*| |[The Convex Hull Problem](https://github.com/norvig/pytudes/blob/master/Convex%20Hull.ipynb)
*A classic Computer Science Algorithm.*| |[The Traveling Salesperson Problem](https://github.com/norvig/pytudes/blob/master/TSP.ipynb)
*Another of the classics.*| |[Economics Simulation](https://github.com/norvig/pytudes/blob/master/Economics.ipynb)
*A simulation of a simple economic game.*| |[Project Euler Utilities](https://github.com/norvig/pytudes/blob/master/Project%20Euler%20Utils.ipynb)
*My utility functions for the Project Euler problems, including `Primes` and `Factors`.*| # pytudes: Index of Python Files The following are not notebooks, but raw `.py` files, although some of them have separate `.html` files as documentation. | **File** | **Description** | **Documentation**| |:--------|:-------------------|----| |[SET.py](https://github.com/norvig/pytudes/blob/master/SET.py)|Analyze the card game [SET](http://www.setgame.com/set).|[SET.html](http://norvig.com/SET.html)| |[beal.py](https://github.com/norvig/pytudes/blob/master/beal.py)|Search for counterexamples to Beal's Conjecture|[beal.html](http://norvig.com/beal.html) |[docex.py](https://github.com/norvig/pytudes/blob/master/docex.py)|A framework for running unit tests, similar to `doctest`.| |[ibol.py](https://github.com/norvig/pytudes/blob/master/ibol.py)|An Exercise in Species Barcoding|[ibol.html](http://norvig.com/ibol.html) |[lettercount.py](https://github.com/norvig/pytudes/blob/master/lettercount.py)|Convert Google Ngram Counts to Letter Counts|[mayzner.html](http://norvig.com/mayzner.html) |[lis.py](https://github.com/norvig/pytudes/blob/master/lis.py)|Lisp Interpreter written in Python|[lispy.html](http://norvig.com/lispy.html) |[lispy.py](https://github.com/norvig/pytudes/blob/master/lispy.py)|Even Better Lisp Interpreter written in Python|[lispy2.html](http://norvig.com/lispy2.html) |[lispytest.py](https://github.com/norvig/pytudes/blob/master/lispytest.py)|Tests for Lisp Interpreters| |[pal.py](https://github.com/norvig/pytudes/blob/master/pal.py)|Find long palindromes|[palindrome.html](http://norvig.com/palindrome.html) |[pal2.py](https://github.com/norvig/pytudes/blob/master/pal2.py)|Find longer palindromes|[palindrome.html](http://norvig.com/palindrome.html) |[pal3.py](https://github.com/norvig/pytudes/blob/master/pal3.py)|Find even longer palindromes|[palindrome.html](http://norvig.com/palindrome.html) |[py2html.py](https://github.com/norvig/pytudes/blob/master/py2html.py)|Pretty-printer to format Python files as html| |[spell.py](https://github.com/norvig/pytudes/blob/master/spell.py)|Spelling corrector|[spell-correct.html](http://norvig.com/spell-correct.html) |[sudoku.py](https://github.com/norvig/pytudes/blob/master/sudoku.py)|Program to solve sudoku puzzles|[sudoku.html](http://norvig.com/sudoku.html) |[testaccum.py](https://github.com/norvig/pytudes/blob/master/testaccum.py)|Tests for my failed Python `accumulation display` proposal|[pyacc.html](http://norvig.com/pyacc.html) |[yaptu.py](https://github.com/norvig/pytudes/blob/master/yaptu.py)|Yet Another Python Templating Utility|