Added some problem ideas
authorNeil Smith <neil.git@njae.me.uk>
Wed, 8 Mar 2017 20:08:16 +0000 (12:08 -0800)
committerNeil Smith <neil.git@njae.me.uk>
Wed, 8 Mar 2017 20:08:16 +0000 (12:08 -0800)
m269-skills.ipynb
problem-ideas.ipynb [new file with mode: 0644]

index 025c9b47546704cf625d00570e68f75dc2069a24..1ec3aa85b47934f0131118e7865f35d9d9ef2aa0 100644 (file)
@@ -15,7 +15,8 @@
     "* Lists, list operations, sublist slices\n",
     "* Sets\n",
     "* Dictionaries\n",
-    "* Integer, real, modular arithmetic.\n",
+    "* Integer, real, modular arithmetic\n",
+    "* Recursion\n",
     "* Simple hashes\n",
     "* Graph search: DFS, BFS, best first search, Dijkstra's algorithm"
    ]
diff --git a/problem-ideas.ipynb b/problem-ideas.ipynb
new file mode 100644 (file)
index 0000000..72ca021
--- /dev/null
@@ -0,0 +1,229 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Project ideas"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Monotone substrings\n",
+    "Find the Longest monotonic substring in a list of numbers (words?)\n",
+    "\n",
+    "Extension: longest non-decreasing (or non-increasing) substring.\n",
+    "\n",
+    "Extension: longest monotonic subsequence"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Product in grid\n",
+    "Given a grid of numbers, find the largest product of five numbers in a row (totally Project Euler no. 11: https://projecteuler.net/problem=11 ).\n",
+    "\n",
+    "Extension: largest product of five adjacent numbers, no necessarily colinear, but can't loop back to same number twice."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Wordsearch: \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?"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Countdown\n",
+    "Given some letters and a list of words, what's the longest word you can make from the letters.\n",
+    "\n",
+    "Extension: you're actually playing scrabble. What's the highest-scoring word you can make?"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Connect 4\n",
+    "Given a grid size and a list of moves, who won? Input is a list of games, result is number of games that went to completion\n",
+    "\n",
+    "Extension: how many games would be won by on the next go? (At least one of the puzzles has to have a game that would be \"won\" by placing a piece above an already-full column."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Travelling salesman: given a network, find the shortest route between them, without visiting the same spot twice.\n",
+    "Extension: find the longest travelling salesman route.\n",
+    "Extension: relax the constraint, and allow repeated visits to the same place. What's the shortest route now?"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Virtual machine: run the assembly program, what's the result?\n",
+    "Extension: run it again on different input."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Given a boolean expression, how many variables are in it?\n",
+    "Extension: is it satisfiable?"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Battleships: given a grid of hits and misses, where could be battleship be? (count how many positions it could be in) Assume the battleship is unhit.\n",
+    "Extension: the battleship might have been hit, but not sunk. Now how many places could it be?"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "How many ways can you fill a bunch of knapsacks (e.g. Advent 2015 days 17, 24)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Phone number puzzle: words that fit a phone number.\n",
+    "Extension: non-ascii unicode in input"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Rainfall problem:\n",
+    "http://dl.acm.org.libezproxy.open.ac.uk/citation.cfm?doid=6592.6594"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Ten-pin bowling scores. Given a sequence of number of pins knocked down, calculate total score."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Pack and justify text into paragraphs."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Word chain puzzles"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Derangement network simulation.\n",
+    "Extension: sum several networks"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Machine code execution: Collatz sequence, count steps."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Parcel pricing, by weight and volumetric weight. Find total postage cost of list of parcels. Each parcel given as w, h, l, mass."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Parcel wrapping: first, find area, then find width of 1m strip to wrap. Include extra for wriggle room."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Mastermind: how many valid solutions remain after the scores you've seen\n",
+    "How many scores are possible for this attempt?~"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "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/"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Related research\n",
+    "* https://computinged.wordpress.com/2016/12/16/graduating-dr-briana-morrison-posing-new-puzzles-for-computing-education-research/\n",
+    "* https://computinged.wordpress.com/2010/08/16/a-challenge-to-computing-education-research-make-measurable-progress/\n",
+    "* http://dl.acm.org.libezproxy.open.ac.uk/citation.cfm?doid=6592.6594\n",
+    "* https://computinged.wordpress.com/2017/01/18/power-law-of-practice-in-software-implementation-does-this-explain-the-w-going-away/\n",
+    "* https://www.cs.utexas.edu/users/mckinley/305j/pair-hcs-2006.pdf"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.5.2"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 1
+}