diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..fa102e1
Binary files /dev/null and b/.DS_Store differ
diff --git a/README.md b/README.md
index 3da4fc9..43bf700 100644
--- a/README.md
+++ b/README.md
@@ -2,46 +2,47 @@
*Etudes* are exercises to practice or demonstrate skills, long used by piano players.
-This project contains **pytudes**—Python programs to practice or demonstrate skills.
+This project contains **pytudes**—Python programs to practice or demonstrate skills.
+Some are in Jupyter (IPython) notebooks, some in *.py files.
# 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.*|
+|[Advent of Code 2016](https://github.com/norvig/pytudes/blob/master/ipynb/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/ipynb/PropositionalLogic.ipynb)
*Automatically converting informal English sentences into formal Propositional Logic.*|
+|[The Puzzle of the Misanthropic Neighbors](https://github.com/norvig/pytudes/blob/master/ipynb/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/ipynb/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/ipynb/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/ipynb/Beal.ipynb)
*A search for counterexamples to Beal's Conjecture*|
+|[When is Cheryl's Birthday?](https://github.com/norvig/pytudes/blob/master/ipynb/Cheryl.ipynb)
*Solving the "Cheryl's Birthday" logic puzzle.*|
+|[When Cheryl Met Eve: A Birthday Story](https://github.com/norvig/pytudes/blob/master/ipynb/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/ipynb/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/ipynb/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.*|
+|[Ghost](https://github.com/norvig/pytudes/blob/master/ipynb/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/ipynb/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/ipynb/Scrabble.ipynb)
*Refactoring the Scrabble / Word with Friends game from Udacity 212.*|
+|[xkcd 1313: Regex Golf](https://github.com/norvig/pytudes/blob/master/ipynb/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/ipynb/xkcd1313-part2.ipynb)
*Regex Golf: better, faster, funer. With Stefan Pochmann.*|
+|[Let's Code About Bike Locks](https://github.com/norvig/pytudes/blob/master/ipynb/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/ipynb/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/ipynb/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.*|
-|[Bad Grade, Good Experience](https://github.com/norvig/pytudes/blob/master/Snobol.ipynb)
*As a student, did you ever get a bad grade on a programming assignment? (Snobol, Concordance)*|
-|[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`.*|
+|[A Chaos Game with Triangles](https://github.com/norvig/pytudes/blob/master/ipynb/Sierpinski.ipynb)
*A surprising appearance of the Sierpinski triangle in a random walk between vertexes.*|
+|[BASIC Interpreter](https://github.com/norvig/pytudes/blob/master/ipynb/BASIC.ipynb)
*How to write an interpreter for the BASIC programming language.*|
+|[Bad Grade, Good Experience](https://github.com/norvig/pytudes/blob/master/ipynb/Snobol.ipynb)
*As a student, did you ever get a bad grade on a programming assignment? (Snobol, Concordance)*|
+|[Conway's Game of Life](https://github.com/norvig/pytudes/blob/master/ipynb/Life.ipynb)
*The cellular automata zero-player game.*|
+|[A Concrete Introduction to Probability](https://github.com/norvig/pytudes/blob/master/ipynb/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/ipynb/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/ipynb/Convex%20Hull.ipynb)
*A classic Computer Science Algorithm.*|
+|[The Traveling Salesperson Problem](https://github.com/norvig/pytudes/blob/master/ipynb/TSP.ipynb)
*Another of the classics.*|
+|[Economics Simulation](https://github.com/norvig/pytudes/blob/master/ipynb/Economics.ipynb)
*A simulation of a simple economic game.*|
+|[Project Euler Utilities](https://github.com/norvig/pytudes/blob/master/ipynb/Project%20Euler%20Utils.ipynb)
*My utility functions for the Project Euler problems, including `Primes` and `Factors`.*|
# pytudes: Index of Python Files
@@ -50,25 +51,26 @@ The following are not notebooks, but raw `.py` files, although some of them have
| **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|
+|[SET.py](https://github.com/norvig/pytudes/blob/master/py/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/py/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/py/docex.py)|A framework for running unit tests, similar to `doctest`.|
+|[ibol.py](https://github.com/norvig/pytudes/blob/master/py/ibol.py)|An Exercise in Species Barcoding|[ibol.html](http://norvig.com/ibol.html)
+|[lettercount.py](https://github.com/norvig/pytudes/blob/master/py/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/py/lis.py)|Lisp Interpreter written in Python|[lispy.html](http://norvig.com/lispy.html)
+|[lispy.py](https://github.com/norvig/pytudes/blob/master/py/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/py/lispytest.py)|Tests for Lisp Interpreters|
+|[pal.py](https://github.com/norvig/pytudes/blob/master/py/pal.py)|Find long palindromes|[palindrome.html](http://norvig.com/palindrome.html)
+|[pal2.py](https://github.com/norvig/pytudes/blob/master/py/pal2.py)|Find longer palindromes|[palindrome.html](http://norvig.com/palindrome.html)
+|[pal3.py](https://github.com/norvig/pytudes/blob/master/py/pal3.py)|Find even longer palindromes|[palindrome.html](http://norvig.com/palindrome.html)
+|[py2html.py](https://github.com/norvig/pytudes/blob/master/py/py2html.py)|Pretty-printer to format Python files as html|
+|[spell.py](https://github.com/norvig/pytudes/blob/master/py/spell.py)|Spelling corrector|[spell-correct.html](http://norvig.com/spell-correct.html)
+|[sudoku.py](https://github.com/norvig/pytudes/blob/master/py/sudoku.py)|Program to solve sudoku puzzles|[sudoku.html](http://norvig.com/sudoku.html)
+|[testaccum.py](https://github.com/norvig/pytudes/blob/master/py/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/py/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](https://books.google.com/books/about/Etudes_for_programmers.html?id=u89WAAAAMAAJ):
+I got the idea for the "etudes" part of the name from this [1978 book by Charles Wetherell](https://books.google.com/books/about/Etudes_for_programmers.html?id=u89WAAAAMAAJ)
+that was very influential to me when I was learning to program around 1980.

diff --git a/Advent of Code.ipynb b/ipynb/Advent of Code.ipynb
similarity index 100%
rename from Advent of Code.ipynb
rename to ipynb/Advent of Code.ipynb
diff --git a/BASIC.ipynb b/ipynb/BASIC.ipynb
similarity index 100%
rename from BASIC.ipynb
rename to ipynb/BASIC.ipynb
diff --git a/Beal.ipynb b/ipynb/Beal.ipynb
similarity index 100%
rename from Beal.ipynb
rename to ipynb/Beal.ipynb
diff --git a/Bike Speed versus Grade.ipynb b/ipynb/Bike Speed versus Grade.ipynb
similarity index 100%
rename from Bike Speed versus Grade.ipynb
rename to ipynb/Bike Speed versus Grade.ipynb
diff --git a/Cheryl-and-Eve.ipynb b/ipynb/Cheryl-and-Eve.ipynb
similarity index 100%
rename from Cheryl-and-Eve.ipynb
rename to ipynb/Cheryl-and-Eve.ipynb
diff --git a/Cheryl.ipynb b/ipynb/Cheryl.ipynb
similarity index 100%
rename from Cheryl.ipynb
rename to ipynb/Cheryl.ipynb
diff --git a/Coin Flip.ipynb b/ipynb/Coin Flip.ipynb
similarity index 100%
rename from Coin Flip.ipynb
rename to ipynb/Coin Flip.ipynb
diff --git a/Convex Hull.ipynb b/ipynb/Convex Hull.ipynb
similarity index 100%
rename from Convex Hull.ipynb
rename to ipynb/Convex Hull.ipynb
diff --git a/Countdown.ipynb b/ipynb/Countdown.ipynb
similarity index 100%
rename from Countdown.ipynb
rename to ipynb/Countdown.ipynb
diff --git a/Differentiation.ipynb b/ipynb/Differentiation.ipynb
similarity index 100%
rename from Differentiation.ipynb
rename to ipynb/Differentiation.ipynb
diff --git a/Economics.ipynb b/ipynb/Economics.ipynb
similarity index 100%
rename from Economics.ipynb
rename to ipynb/Economics.ipynb
diff --git a/Fred Buns.ipynb b/ipynb/Fred Buns.ipynb
similarity index 100%
rename from Fred Buns.ipynb
rename to ipynb/Fred Buns.ipynb
diff --git a/Gesture Typing.ipynb b/ipynb/Gesture Typing.ipynb
similarity index 100%
rename from Gesture Typing.ipynb
rename to ipynb/Gesture Typing.ipynb
diff --git a/Ghost.ipynb b/ipynb/Ghost.ipynb
similarity index 100%
rename from Ghost.ipynb
rename to ipynb/Ghost.ipynb
diff --git a/Golomb-Puzzle.ipynb b/ipynb/Golomb-Puzzle.ipynb
similarity index 100%
rename from Golomb-Puzzle.ipynb
rename to ipynb/Golomb-Puzzle.ipynb
diff --git a/How To Count Things.ipynb b/ipynb/How To Count Things.ipynb
similarity index 100%
rename from How To Count Things.ipynb
rename to ipynb/How To Count Things.ipynb
diff --git a/How to Do Things with Words.ipynb b/ipynb/How to Do Things with Words.ipynb
similarity index 100%
rename from How to Do Things with Words.ipynb
rename to ipynb/How to Do Things with Words.ipynb
diff --git a/Life.ipynb b/ipynb/Life.ipynb
similarity index 100%
rename from Life.ipynb
rename to ipynb/Life.ipynb
diff --git a/Mean Misanthrope Density.ipynb b/ipynb/Mean Misanthrope Density.ipynb
similarity index 100%
rename from Mean Misanthrope Density.ipynb
rename to ipynb/Mean Misanthrope Density.ipynb
diff --git a/Palindrome.ipynb b/ipynb/Palindrome.ipynb
similarity index 100%
rename from Palindrome.ipynb
rename to ipynb/Palindrome.ipynb
diff --git a/Probability.ipynb b/ipynb/Probability.ipynb
similarity index 100%
rename from Probability.ipynb
rename to ipynb/Probability.ipynb
diff --git a/ProbabilityParadox.ipynb b/ipynb/ProbabilityParadox.ipynb
similarity index 100%
rename from ProbabilityParadox.ipynb
rename to ipynb/ProbabilityParadox.ipynb
diff --git a/Project Euler Utils.ipynb b/ipynb/Project Euler Utils.ipynb
similarity index 100%
rename from Project Euler Utils.ipynb
rename to ipynb/Project Euler Utils.ipynb
diff --git a/PropositionalLogic.ipynb b/ipynb/PropositionalLogic.ipynb
similarity index 100%
rename from PropositionalLogic.ipynb
rename to ipynb/PropositionalLogic.ipynb
diff --git a/Riddler Battle Royale.ipynb b/ipynb/Riddler Battle Royale.ipynb
similarity index 100%
rename from Riddler Battle Royale.ipynb
rename to ipynb/Riddler Battle Royale.ipynb
diff --git a/SET.ipynb b/ipynb/SET.ipynb
similarity index 100%
rename from SET.ipynb
rename to ipynb/SET.ipynb
diff --git a/Scrabble.ipynb b/ipynb/Scrabble.ipynb
similarity index 100%
rename from Scrabble.ipynb
rename to ipynb/Scrabble.ipynb
diff --git a/Sicherman Dice.ipynb b/ipynb/Sicherman Dice.ipynb
similarity index 100%
rename from Sicherman Dice.ipynb
rename to ipynb/Sicherman Dice.ipynb
diff --git a/Sierpinski.ipynb b/ipynb/Sierpinski.ipynb
similarity index 100%
rename from Sierpinski.ipynb
rename to ipynb/Sierpinski.ipynb
diff --git a/Snobol.ipynb b/ipynb/Snobol.ipynb
similarity index 100%
rename from Snobol.ipynb
rename to ipynb/Snobol.ipynb
diff --git a/Sudoku IPython Notebook.ipynb b/ipynb/Sudoku IPython Notebook.ipynb
similarity index 100%
rename from Sudoku IPython Notebook.ipynb
rename to ipynb/Sudoku IPython Notebook.ipynb
diff --git a/TSP.ipynb b/ipynb/TSP.ipynb
similarity index 100%
rename from TSP.ipynb
rename to ipynb/TSP.ipynb
diff --git a/WWW.ipynb b/ipynb/WWW.ipynb
similarity index 100%
rename from WWW.ipynb
rename to ipynb/WWW.ipynb
diff --git a/dist-climb-time.csv b/ipynb/dist-climb-time.csv
similarity index 100%
rename from dist-climb-time.csv
rename to ipynb/dist-climb-time.csv
diff --git a/money.png b/ipynb/money.png
similarity index 100%
rename from money.png
rename to ipynb/money.png
diff --git a/pal3.ipynb b/ipynb/pal3.ipynb
similarity index 100%
rename from pal3.ipynb
rename to ipynb/pal3.ipynb
diff --git a/xkcd1313-part2.ipynb b/ipynb/xkcd1313-part2.ipynb
similarity index 100%
rename from xkcd1313-part2.ipynb
rename to ipynb/xkcd1313-part2.ipynb
diff --git a/xkcd1313.ipynb b/ipynb/xkcd1313.ipynb
similarity index 100%
rename from xkcd1313.ipynb
rename to ipynb/xkcd1313.ipynb
diff --git a/xkxd-part3.ipynb b/ipynb/xkxd-part3.ipynb
similarity index 100%
rename from xkxd-part3.ipynb
rename to ipynb/xkxd-part3.ipynb
diff --git a/SET.py b/py/SET.py
similarity index 100%
rename from SET.py
rename to py/SET.py
diff --git a/beal.py b/py/beal.py
similarity index 100%
rename from beal.py
rename to py/beal.py
diff --git a/docex.py b/py/docex.py
similarity index 100%
rename from docex.py
rename to py/docex.py
diff --git a/ibol.py b/py/ibol.py
similarity index 100%
rename from ibol.py
rename to py/ibol.py
diff --git a/lettercount.py b/py/lettercount.py
similarity index 100%
rename from lettercount.py
rename to py/lettercount.py
diff --git a/lis.py b/py/lis.py
similarity index 100%
rename from lis.py
rename to py/lis.py
diff --git a/lispy.py b/py/lispy.py
similarity index 100%
rename from lispy.py
rename to py/lispy.py
diff --git a/lispytest.py b/py/lispytest.py
similarity index 100%
rename from lispytest.py
rename to py/lispytest.py
diff --git a/pal.py b/py/pal.py
similarity index 100%
rename from pal.py
rename to py/pal.py
diff --git a/pal2.py b/py/pal2.py
similarity index 100%
rename from pal2.py
rename to py/pal2.py
diff --git a/pal3.py b/py/pal3.py
similarity index 100%
rename from pal3.py
rename to py/pal3.py
diff --git a/parse.py b/py/parse.py
similarity index 100%
rename from parse.py
rename to py/parse.py
diff --git a/py2html.py b/py/py2html.py
similarity index 100%
rename from py2html.py
rename to py/py2html.py
diff --git a/spell.py b/py/spell.py
similarity index 100%
rename from spell.py
rename to py/spell.py
diff --git a/sudoku-easy50.txt b/py/sudoku-easy50.txt
similarity index 100%
rename from sudoku-easy50.txt
rename to py/sudoku-easy50.txt
diff --git a/sudoku-hardest.txt b/py/sudoku-hardest.txt
similarity index 100%
rename from sudoku-hardest.txt
rename to py/sudoku-hardest.txt
diff --git a/sudoku-top95.txt b/py/sudoku-top95.txt
similarity index 100%
rename from sudoku-top95.txt
rename to py/sudoku-top95.txt
diff --git a/sudoku.py b/py/sudoku.py
similarity index 100%
rename from sudoku.py
rename to py/sudoku.py
diff --git a/testaccum.py b/py/testaccum.py
similarity index 100%
rename from testaccum.py
rename to py/testaccum.py
diff --git a/yaptu.py b/py/yaptu.py
similarity index 100%
rename from yaptu.py
rename to py/yaptu.py