"cell_type": "markdown",
"metadata": {},
"source": [
- "# Project ideas"
+ "# Project ideas\n",
+ "\n",
+ "[Project workspace](https://learn2.open.ac.uk/course/view.php?id=206050)\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Problems by day\n",
+ "\n",
+ "1. [Ticket prices](01-ticket-prices)\n",
+ "2. [Lift instructions](02-lifts)\n",
+ "3. [Door codes](03-door-codes)\n",
+ "4. [Ghost leg, follow and pack](04-amidakuji)\n",
+ "5. [Display board](05-display-board)\n",
+ "6. [Tour shapes](06-tour-shapes)\n",
+ "7. [Virtual machine](07-interpreter)\n",
+ "8. [Word chains](08-word-chains)\n",
+ "9. [Resolving the bill](09-resolving-the-bill)\n",
+ "10. [Word search](10-word-search)\n",
+ "\n",
+ "### Extras\n",
+ "* [Suitcase packing](10-suitacase-packing)\n",
+ "9. [Filling the days](08-filling-days) [Problem C](https://www.cs.uoregon.edu/Activities/Luks_Programming_Contest/problems/Problems2017.pdf): A per the problem, B when there are multiple rooms available\n",
+ "\n",
+ "\n",
+ "Problem 6 taken from [Problem B](https://www.cs.uoregon.edu/Activities/Luks_Programming_Contest/problems/Problems2017.pdf): A is check if string is a closed loop, B is finding if two partial loops make a whole one"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Longest substring of _k_ distinct characters\n",
+ "Given a string of letters, what is the longest (contiguous) substring with no more than _k_ distinct characters?\n",
+ "\n",
+ "Could also do it with words instead of letters. \n",
+ "\n",
+ "Not sure how to find the extension..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Wordsearch: \n",
+ "## [Wordsearch](wordsearch/): \n",
+ "\n",
+ "Wordsearch [creation](wordsearch/wordsearch-creation.ipynb) and [solving](wordsearch/wordsearch-solving.ipynb).\n",
+ "\n",
"Given a grid of letters and a list of words, how many words are in the grid?\n",
"\n",
"Extension: what's the longest word you can make from the leftover letters?"
"metadata": {},
"source": [
"# More problems:\n",
- "* https://books.google.co.uk/books?id=85NsAHJjTJ0C&pg=PA390&lpg=PA390&dq=phone+number+problem+programming+names&source=bl&ots=c7oC9JvpZz&sig=aNnW6t_nmGK7SyAKchK0MaxqbkA&hl=en&sa=X&ved=0ahUKEwjnzcbbgs7RAhWKKcAKHQiFCDAQ6AEIJDAC#v=onepage&q=phone%20number%20problem%20programming%20names&f=false\n",
- "* https://www.cs.uoregon.edu/Activities/Luks_Programming_Contest/\n",
- "* https://www.reddit.com/r/dailyprogrammer/"
+ "* [Advent of Code 2015](http://adventofcode.com/2015)\n",
+ "* [Advent of Code 2016](http://adventofcode.com/2016)\n",
+ "* [Programming and Problem Solving with C++: Brief Edition](https://books.google.co.uk/books?id=85NsAHJjTJ0C&pg=PA390&lpg=PA390&dq=phone+number+problem+programming+names&source=bl&ots=c7oC9JvpZz&sig=aNnW6t_nmGK7SyAKchK0MaxqbkA&hl=en&sa=X&ved=0ahUKEwjnzcbbgs7RAhWKKcAKHQiFCDAQ6AEIJDAC#v=onepage&q=phone%20number%20problem%20programming%20names&f=false)\n",
+ "* https://www.cs.uoregon.edu/Activities/Luks_Programming_Contest/ , specifically the overlapping presentaitons problem from [2017 problems](https://www.cs.uoregon.edu/Activities/Luks_Programming_Contest/problems/Problems2017.pdf)\n",
+ "* https://www.reddit.com/r/dailyprogrammer/\n",
+ "\n",
+ "* N-rooks problem from http://www.olympiad.org.uk/images/bio2012-poster-v.jpg\n",
+ "\n",
+ "* \"How tweet it is\" from [2014 APL programming language competition](http://www.dyalog.com/uploads/files/student_competition/2014_problems_phase1.pdf) (remove interior vowels from words)\n",
+ "\n",
+ "* More ghost leg: simplify a network by finding whole permuation, then splitting it down into transpositions. Look at theory of permutations for details.\n",
+ "\n",
+ "* [Strata](https://en.wikipedia.org/wiki/Strata_(video_game)) game: how many puzzles have a valid solution? How many valid solutions are there to a puzzle?\n"
]
},
{
"* https://www.cs.utexas.edu/users/mckinley/305j/pair-hcs-2006.pdf"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "Polyglot challenge languages\n",
+ "\n",
+ "- Python\n",
+ "- Ruby\n",
+ "- Haskell\n",
+ "- Lisp\n",
+ "- Prolog\n",
+ "- Ada\n",
+ "- C\n",
+ "- Brainfuck\n",
+ "- Whitespace\n",
+ "- x64 assembler\n",
+ "- Smalltalk\n",
+ "- Scala\n",
+ "- Clojure\n",
+ "- Lua\n",
+ "- JavaScript\n",
+ "- Java\n",
+ "- Dart\n",
+ "- Kotlin\n",
+ "- Elixir / Erlang\n",
+ "- Oz / Mozart\n",
+ "- APL / J\n",
+ "- Rust\n",
+ "- Go"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Polyglot challenge: languages by day\n",
+ "\n",
+ "1. [Ticket prices](01-ticket-prices): Ruby x\n",
+ "2. [Lift instructions](02-lifts): Brainfuck x\n",
+ "3. [Door codes](03-door-codes): Dart x\n",
+ "4. [Ghost leg, follow and pack](04-amidakuji): Clojure\n",
+ "5. [Display board](05-display-board): JavaScript/Node.js\n",
+ "6. [Tour shapes](06-tour-shapes): Lua\n",
+ "7. [Virtual machine](07-interpreter): Haskell (Advent 16 day 23)\n",
+ "8. [Word chains](08-word-chains): Prolog\n",
+ "9. [Resolving the bill](09-resolving-the-bill): Sense\n",
+ "10. [Word search](10-word-search): Python x\n",
+ "\n",
+ "Scala, Clojure?\n",
+ "Sense? Day 9?"
+ ]
+ },
{
"cell_type": "code",
"execution_count": null,
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.5.2"
+ "version": "3.5.2+"
}
},
"nbformat": 4,