Skip to content

Latest commit

 

History

History
193 lines (161 loc) · 72.9 KB

README.md

File metadata and controls

193 lines (161 loc) · 72.9 KB
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 don't 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 won't 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 New
C D M N S 2024 Advent of Code 2024
C D M N S 2024 Counting Cluster Sizes in Paint by Numbers
C D M N S 2024 LLMs, Theory of Mind, and Cheryl's Birthday
C D M N S 2024 Number Bracelets Game
C D M N S 2024 Overtime in American Football
C D M N S 2024 Stubborn number endings
C D M N S 2024 The Languages of English, Math, and Programming
C D M N S 2023 Advent of Code 2023
C D M N S 2023 Docstring Fixpoint Theory
C D M N S 2023 One Letter Off
C D M N S 2023 The Diamond Game: A Probability Puzzle
Run Year Programming Examples
C D M N S 2022 AlphaCode Automated Programming
C D M N S 2022 The Babylonian Number System
C D M N S 2018 Beal's Conjecture Revisited
C D M N S 2020 Bicycling Statistics
C D M N S 2018 Can't Stop
C D M N S 2019 Chaos with Triangles
C D M N S 2017 Conway's Game of Life
C D M N S 2020 Generating and Solving Mazes
C D M N S 2024 The Languages of English, Math, and Programming
C D M N S 2021 Mel's Konane Board
C D M N S 2020 Photo Focal Lengths
C D M N S 2018 Pickleball Tournament
C D M N S 2017 Project Euler Utilities
C D M N S 2022 Selecting Names from a Menu
C D M N S 2020 Tracking Polls: Electoral Votes
Run Year Advent of Code
C D M N S 2024 Advent of Code 2024
C D M N S 2023 Advent of Code 2023
C D M N S 2022 Advent of Code 2022
C D M N S 2021 Advent of Code 2021
C D M N S 2020 Advent of Code 2020
C D M N S 2018 Advent of Code 2018
C D M N S 2017 Advent of Code 2017
C D M N S 2016 Advent of Code 2016
C D M N S 2022 Advent of Code Utilities
Run Year Probability and Uncertainty
C D M N S 2019 Effectiveness of Language Models
C D M N S 2018 A Concrete Introduction to Probability
C D M N S 2016 Probability, Paradox, and the Reasonable Person Principle
C D M N S 2020 Estimating Probabilities with Simulations
C D M N S 2023 The Diamond Game: A Probability Puzzle
C D M N S 2019 The Devil and the Coin Flip Game
C D M N S 2020 Dice Baseball
C D M N S 2018 Economics Simulation
C D M N S 2024 Overtime in American Football
C D M N S 2012 Poker Hand Ranking
C D M N S 2020 The Unfinished Game .... of Risk
C D M N S 2019 WWW: Who Will Win (NBA Title)?
Run Year Logic and Number/Counting Puzzles
C D M N S 2024 Counting Cluster Sizes in Paint by Numbers
C D M N S 2014 Cryptarithmetic
C D M N S 2018 Euler's Sum of Powers Conjecture
C D M N S 2020 Four 4s, Five 5s, and Countdowns
C D M N S 2020 How to Count Things
C D M N S 2021 KenKen (Sudoku-like Puzzle)
C D M N S 2024 Number Bracelets Game
C D M N S 2019 Pairing Socks
C D M N S 2018 Sicherman Dice
C D M N S 2014 Sol Golomb's Rectangle Puzzle
C D M N S 2024 Stubborn number endings
C D M N S 2021 Star Battle (Sudoku-like Puzzle)
C D M N S 2006 Sudoku
C D M N S 2021 Sudoku: 100,000 puzzles/second in Java
C D M N S 2020 Square Sum Puzzle
C D M N S 2020 When is Cheryl's Birthday?
C D M N S 2015 When Cheryl Met Eve: A Birthday Story
C D M N S 2024 LLMs, Theory of Mind, and Cheryl's Birthday
C D M N S 2015 xkcd 1313: Regex Golf
C D M N S 2015 xkcd 1313: Regex Golf (Part 2: Infinite Problems)
Run Year Word Puzzles
C D M N S 2020 Boggle / Inverse Boggle
C D M N S 2020 Chemical Element Spelling
C D M N S 2020 Equilength Numbers: FOUR = 4
C D M N S 2017 Gesture Typing
C D M N S 2017 Ghost: A Word game
C D M N S 2018 How to Do Things with Words: NLP in Python
C D M N S 2015 Let's Code About Bike Locks
C D M N S 2023 One Letter Off
C D M N S 2017 Scrabble: Refactoring a Crossword Game Program
C D M N S 2020 Spelling Bee
C D M N S 2017 Translating English into Propositional Logic
C D M N S 2020 Wordle, Evil Wordle, Antiwordle, and Jotto
C D M N S 2022 Winning Wordle
C D M N S 2017 World's Longest Palindrome
C D M N S 2020 World's Shortest Portmantout Word
C D M N S 2018 xkcd 1970: Name Dominoes
Run Year The Riddler (from 538)
C D M N S 2022 Anigrams: Word Chains
C D M N S 2017 Battle Royale
C D M N S 2021 Climbing Wall
C D M N S 2021 CrossProduct
C D M N S 2020 Flipping Cards; A Guessing Game
C D M N S 2019 Lottery
C D M N S 2019 How Many Soldiers to Beat the Night King?
C D M N S 2017 Misanthropic Neighbors
C D M N S 2018 Properly Ordered Card Hands
C D M N S 2021 Race Track
C D M N S 2021 Split the States
C D M N S 2020 Tour de 538
C D M N S 2020 Weighing Twelve Balls
C D M N S 2020 War. What is it Good For?
Run Year Computer Science Algorithms and Concepts
C D M N S 2017 BASIC Interpreter
C D M N S 2017 Convex Hull Problem
C D M N S 2023 Docstring Fixpoint Theory
C D M N S 2020 Stable Matching Problem
C D M N S 2017 Symbolic Algebra, Simplification, and Differentiation
C D M N S 2017 Snobol: Bad Grade, Good Experience
C D M N S 2018 Traveling Salesperson Problem

Index of Python Files

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

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.