"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, usually short, for perfecting particular programming skills.
Many of the problems are difficult, but I hope that the solutions are easy to follow.
Some programs are in Jupyter (.ipynb
) notebooks, some in .py
files. For each notebook you can:
- Click on c to run the file on Colab
- Click on d to run the notebook on DeepNote
- Click on m to run the notebook on MyBinder
- Click on n (or the title) to view the notebook on NBViewer
- Click on g to view the notebook on github
- Hover over the title to view a description.
Run | Year | Programming Examples |
---|---|---|
c d m n g | 2018 | Advent of Code 2018 |
c d m n g | 2017 | Advent of Code 2017 |
c d m n g | 2016 | Advent of Code 2016 |
c d m n g | 2018 | Beal's Conjecture Revisited |
c d m n g | 2020 | Bike Speed Versus Grade |
c d m n g | 2018 | Can't Stop |
c d m n g | 2019 | Chaos with Triangles |
c d m n g | 2017 | Conway's Game of Life |
c d m n g | 2018 | Euler's Sum of Powers Conjecture |
c d m n g | 2020 | Generating and Solving Mazes |
c d m n g | 2020 | Photo Focal Lengths |
c d m n g | 2018 | Pickleball Tournament |
c d m n g | 2017 | Project Euler Utilities |
c d m n g | 2020 | Tracking Trump: Electoral Votes |
Run | Year | Logic and Number Puzzles |
---|---|---|
c d m n g | 2014 | Cryptarithmetic |
c d m n g | 2020 | Equilength Number Expressions |
c d m n g | 2020 | Making Numbers: Four 4s, Five 5s, and Countdowns |
c d m n g | 2019 | Pairing Socks |
c d m n g | 2018 | Sicherman Dice |
c d m n g | 2014 | Sol Golomb's Rectangle Puzzle |
c d m n g | 2020 | When is Cheryl's Birthday? (new: Mad Cheryl) |
c d m n g | 2015 | When Cheryl Met Eve: A Birthday Story |
c d m n g | 2015 | xkcd 1313: Regex Golf |
c d m n g | 2015 | xkcd 1313: Regex Golf (Part 2: Infinite Problems) |
Run | Year | Word Puzzles |
---|---|---|
c d m n g | 2020 | Boggle / Inverse Boggle |
c d m n g | 2020 | Chemical Element Spelling |
c d m n g | 2017 | Gesture Typing |
c d m n g | 2017 | Ghost: A Word game |
c d m n g | 2018 | How to Do Things with Words: NLP in Python |
c d m n g | 2020 | Jotto: A Word Guessing Game |
c d m n g | 2015 | Let's Code About Bike Locks |
c d m n g | 2017 | Scrabble: Refactoring a Crossword Game Program |
c d m n g | 2020 | Spelling Bee |
c d m n g | 2017 | Translating English into Propositional Logic |
c d m n g | 2017 | World's Longest Palindrome |
c d m n g | 2020 | World's Shortest Portmantout Word |
c d m n g | 2018 | xkcd 1970: Name Dominoes |
Run | Year | The Riddler (from 538) |
---|---|---|
c d m n g | 2017 | Riddler: Battle Royale |
c d m n g | 2020 | Riddler: Flipping Cards; A Guessing Game |
c d m n g | 2019 | Riddler: Lottery |
c d m n g | 2019 | Riddler: How Many Soldiers to Beat the Night King? |
c d m n g | 2018 | Riddler: Properly Ordered Card Hands |
c d m n g | 2017 | Riddler: The Puzzle of the Misanthropic Neighbors |
c d m n g | 2020 | Riddler: Tour de 538 |
c d m n g | 2020 | Riddler: War. What is it Good for? |
c d m n g | 2020 | Riddler: Weighing Twelve Balls |
Run | Year | Probability, Uncertainty, and Counting |
---|---|---|
c d m n g | 2018 | A Concrete Introduction to Probability |
c d m n g | 2016 | Probability, Paradox, and the Reasonable Person Principle |
c d m n g | 2020 | Estimating Probabilities with Simulations |
c d m n g | 2019 | The Devil and the Coin Flip Game |
c d m n g | 2020 | Dice Baseball |
c d m n g | 2018 | Economics Simulation |
c d m n g | 2020 | How to Count Things |
c d m n g | 2020 | The Unfinished Game .... of Risk |
c d m n g | 2019 | WWW: Who Will Win (NBA Title)? |
Run | Year | Computer Science Algorithms and Concepts |
---|---|---|
c d m n g | 2017 | Bad Grade, Good Experience |
c d m n g | 2017 | BASIC Interpreter |
c d m n g | 2017 | The Convex Hull Problem |
c d m n g | 2020 | The Stable Matching Problem |
c d m n g | 2017 | Symbolic Algebra, Simplification, and Differentiation |
c d m n g | 2018 | The Traveling Salesperson Problem |
File | Description | Documentation |
---|---|---|
beal.py | Search for counterexamples to Beal's Conjecture | documentation |
docex.py | An obsolete framework for running unit tests, similar to doctest |
|
ibol.py | An Exercise in Species Barcoding | documentation |
lettercount.py | Convert Google Ngram Counts to Letter Counts | documentation |
lis.py | Lisp Interpreter written in Python | documentation |
lispy.py | Even Better Lisp Interpreter written in Python | documentation |
lispytest.py | Tests for Lisp Interpreters | |
pal.py | Find long palindromes | documentation |
pal2.py | Find longer palindromes | documentation |
pal3.py | Find even longer palindromes | documentation |
pytudes.py | Pre-process text to generate this README.md file. | |
py2html.py | Pretty-printer to format Python files as html | |
SET.py | Analyze the card game SET | documentation |
spell.py | Spelling corrector | documentation |
sudoku.py | Program to solve sudoku puzzles | documentation |
testaccum.py | Tests for my failed Python accumulation display proposal |
documentation |
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 first learning to program. I still have my copy.