pytudes/README.md
2024-03-14 09:30:40 -07:00

65 KiB
Raw Blame History

Peter Norvig
MIT License
2015-2022

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, usually short, for perfecting particular programming skills.

Who is this for?

To continue the musical analogy, some people think of programming like Spotify: they want to know how to install the app, find a good playlist, and hit the “play” button; after that they dont want to think about it. There are plenty of other tutorials that will tell you how to do the equivalent of that for various programming tasks—this one wont help. But if you think of programming like playing the piano—a craft that can take years to perfect—then I hope this collection can help.

Index of Jupyter (IPython) Notebooks

For each notebook you can hover on the title to see a description, or click the title to view on github, or click one of the letters in the left column to launch the notebook on Colab, Deepnote, Mybinder, Sagemaker, or NBViewer.

Run Year Newest
CDMNS 2024 Overtime in American Football
CDMNS 2023 Advent of Code 2023
CDMNS 2023 One Letter Off
CDMNS 2023 The Diamond Game: A Probability Puzzle
CDMNS 2022 Advent of Code 2022
CDMNS 2022 Advent of Code Utilities
CDMNS 2022 AlphaCode Automated Programming
CDMNS 2022 Anigrams: Word Chains
CDMNS 2022 Selecting Names from a Menu
CDMNS 2022 Winning Wordle
Run Year Programming Examples
CDMNS 2022 AlphaCode Automated Programming
CDMNS 2018 Beals Conjecture Revisited
CDMNS 2020 Bicycling Statistics
CDMNS 2018 Cant Stop
CDMNS 2019 Chaos with Triangles
CDMNS 2017 Conways Game of Life
CDMNS 2020 Generating and Solving Mazes
CDMNS 2021 Mels Konane Board
CDMNS 2023 One Letter Off
CDMNS 2020 Photo Focal Lengths
CDMNS 2018 Pickleball Tournament
CDMNS 2017 Project Euler Utilities
CDMNS 2022 Selecting Names from a Menu
CDMNS 2020 Tracking Polls: Electoral Votes
Run Year Advent of Code
CDMNS 2023 Advent of Code 2023
CDMNS 2022 Advent of Code 2022
CDMNS 2021 Advent of Code 2021
CDMNS 2020 Advent of Code 2020
CDMNS 2018 Advent of Code 2018
CDMNS 2017 Advent of Code 2017
CDMNS 2016 Advent of Code 2016
CDMNS 2022 Advent of Code Utilities
Run Year Probability and Uncertainty
CDMNS 2019 Effectiveness of Language Models
CDMNS 2018 A Concrete Introduction to Probability
CDMNS 2016 Probability, Paradox, and the Reasonable Person Principle
CDMNS 2020 Estimating Probabilities with Simulations
CDMNS 2023 The Diamond Game: A Probability Puzzle
CDMNS 2019 The Devil and the Coin Flip Game
CDMNS 2020 Dice Baseball
CDMNS 2018 Economics Simulation
CDMNS 2024 Overtime in American Football
CDMNS 2012 Poker Hand Ranking
CDMNS 2020 The Unfinished Game …. of Risk
CDMNS 2019 WWW: Who Will Win (NBA Title)?
Run Year Logic and Number Puzzles
CDMNS 2014 Cryptarithmetic
CDMNS 2018 Eulers Sum of Powers Conjecture
CDMNS 2020 Four 4s, Five 5s, and Countdowns
CDMNS 2021 KenKen (Sudoku-like Puzzle)
CDMNS 2019 Pairing Socks
CDMNS 2018 Sicherman Dice
CDMNS 2014 Sol Golombs Rectangle Puzzle
CDMNS 2021 Star Battle (Sudoku-like Puzzle)
CDMNS 2006 Sudoku
CDMNS 2021 Sudoku: 100,000 puzzles/second in Java
CDMNS 2020 Square Sum Puzzle
CDMNS 2020 When is Cheryls Birthday?
CDMNS 2015 When Cheryl Met Eve: A Birthday Story
CDMNS 2015 xkcd 1313: Regex Golf
CDMNS 2015 xkcd 1313: Regex Golf (Part 2: Infinite Problems)
Run Year Word Puzzles
CDMNS 2020 Boggle / Inverse Boggle
CDMNS 2020 Chemical Element Spelling
CDMNS 2020 Equilength Numbers: FOUR = 4
CDMNS 2017 Gesture Typing
CDMNS 2017 Ghost: A Word game
CDMNS 2018 How to Do Things with Words: NLP in Python
CDMNS 2020 Jotto and Wordle: Word Guessing Games
CDMNS 2015 Lets Code About Bike Locks
CDMNS 2017 Scrabble: Refactoring a Crossword Game Program
CDMNS 2020 Spelling Bee
CDMNS 2017 Translating English into Propositional Logic
CDMNS 2022 Winning Wordle
CDMNS 2017 Worlds Longest Palindrome
CDMNS 2020 Worlds Shortest Portmantout Word
CDMNS 2018 xkcd 1970: Name Dominoes
Run Year The Riddler (from 538)
CDMNS 2022 Anigrams: Word Chains
CDMNS 2017 Battle Royale
CDMNS 2021 CrossProduct
CDMNS 2020 Flipping Cards; A Guessing Game
CDMNS 2019 Lottery
CDMNS 2019 How Many Soldiers to Beat the Night King?
CDMNS 2017 Misanthropic Neighbors
CDMNS 2018 Properly Ordered Card Hands
CDMNS 2021 Split the States
CDMNS 2020 Tour de 538
CDMNS 2020 Weighing Twelve Balls
CDMNS 2020 War. What is it Good For?
Run Year Computer Science Algorithms and Concepts
CDMNS 2017 BASIC Interpreter
CDMNS 2017 Convex Hull Problem
CDMNS 2020 How to Count Things
CDMNS 2020 Stable Matching Problem
CDMNS 2017 Symbolic Algebra, Simplification, and Differentiation
CDMNS 2017 Snobol: Bad Grade, Good Experience
CDMNS 2018 Traveling Salesperson Problem

Index of Python Files

File Description Documentation
beal.py Search for counterexamples to Beals 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

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. I still have my copy.