Go to file
2018-11-02 15:02:24 -07:00
data fix for python3 2018-08-17 19:11:23 +02:00
ipynb Update Orderable Cards.ipynb 2018-11-02 14:48:59 -07:00
py Update lis.py 2018-10-24 15:09:42 -07:00
.travis.yml Added all jupyter notebooks to Travis 2017-12-28 12:06:02 +01:00
LICENSE Create LICENSE 2017-11-21 09:00:46 -08:00
README.md Add nbviewer links 2018-11-02 15:02:24 -07:00
requirements.txt Update requirements.txt 2018-03-15 00:58:33 -07:00

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 if Github fails to load a notebook page, as it sometimes does, click the NB link to view on nbviewer); or clone the project, or run the notebooks online by clicking this button: Binder

Index of Jupyter (IPython) Notebooks

    NB

Programming Examples
Advent of Code 2017    NB
Puzzle site with a coding puzzle each day for Advent 2017.
Advent of Code 2016    NB
Puzzle site with a coding puzzle each day for Advent 2016.
Project Euler Utilities    NB
My utility functions for the Project Euler problems, including Primes and Factors.
Translating English Sentences into Propositional Logic Statements    NB
Automatically converting informal English sentences into formal Propositional Logic.
Beals Conjecture Revisited    NB
A search for counterexamples to Beals Conjecture
WWW: Who Will Win (NBA Title)?    NB
Computing the probability of winning the NBA title, for my home town Warriors, or any other team.
Pickleball Tournament    NB
Scheduling a doubles tournament fairly and efficiently.
Conways Game of Life    NB
The cellular automata zero-player game.
A Chaos Game with Triangles    NB
A surprising appearance of the Sierpinski triangle in a random walk between vertexes.
Generating Mazes    NB
Make a maze by generating a random tree superimposed on a grid.
Cant Stop    NB
Optimal play in a dice board game.
Bike Speed Versus Grade    NB
How fast can I bike as the route gets steeper?
Properly Ordered Card Hands    NB
Can you get your hand of cards into a nice order with just one move?
Logic and Number Puzzles
When is Cheryls Birthday?    NB
Solving the “Cheryls Birthday” logic puzzle.
When Cheryl Met Eve: A Birthday Story    NB
Inventing new puzzles in the Style of Cheryls Birthday.
The Devil and the Coin Flip Game    NB
How to beat the Devil at his own game.
The Puzzle of the Misanthropic Neighbors    NB
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
Solving the equation 10 _ 9 _ 8 _ 7 _ 6 _ 5 _ 4 _ 3 _ 2 _ 1 = 2016. From an Alex Bellos puzzle.
Sicherman Dice    NB
Find a pair of dice that is like a regular pair of dice, only different.
Sol Golombs Rectangle Puzzle    NB
A Puzzle involving placing rectangles of different sizes inside a square. Bonus: cryptarithmetic.
The Riddler: Battle Royale    NB
A puzzle involving allocating your troops and going up against an opponent.
Word Games
xkcd 1970: Name Dominoes    NB
Lay out dominoes legally; the dominoes have people names, not numbers.
Ghost    NB
The word game Ghost (add letters, try to avoid making a word).
Worlds Longest Palindrome    NB
Searching for a long Panama-style palindrome, this time letter-by-letter.
Refactoring a Crossword Game Program    NB
Refactoring the Scrabble / Word with Friends game from Udacity 212.
xkcd 1313: Regex Golf    NB
Find the smallest regular expression; inspired by Randall Monroe.
xkcd 1313: Regex Golf (Part 2: Infinite Problems)    NB
Regex Golf: better, faster, funner. With Stefan Pochmann.
Lets Code About Bike Locks    NB
A tale of a bicycle combination lock that uses letters instead of digits. Inspired by Bike Snob NYC.
Gesture Typing    NB
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    NB
Spelling Correction, Secret Codes, Word Segmentation, and more: grab your bag of words.
Math Concepts
A Concrete Introduction to Probability    NB
Code and examples of the basic principles of Probability Theory.
Probability, Paradox, and the Reasonable Person Principle    NB
Some classic paradoxes in Probability Theory, and how to think about disagreements.
Symbolic Algebra, Simplification, and Differentiation    NB
A computer algebra system that manipulates expressions, including symbolic differentiation.
Economics Simulation    NB
A simulation of a simple economic game.
How to Count Things    NB
Combinatorial math: how to count how many things there are, when there are a lot of them.
Eulers Sum of Powers Conjecture    NB
Solving a 200-year-old puzzle by finding integers that satisfy a5 + b5 + c5 + d5 = e5.
Computer Science Algorithms and Concepts
BASIC Interpreter    NB
How to write an interpreter for the BASIC programming language.
Bad Grade, Good Experience    NB
As a student, did you ever get a bad grade on a programming assignment? (Snobol, Concordance)
The Convex Hull Problem    NB
A classic Computer Science Algorithm.
The Traveling Salesperson Problem    NB
Another of the classics.

Index of Python Files

File Description Documentation
SET.py Analyze the card game SET. SET.html
beal.py Search for counterexamples to Beals 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

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.