From: Neil Smith Date: Wed, 8 Mar 2017 20:08:16 +0000 (-0800) Subject: Added some problem ideas X-Git-Url: https://git.njae.me.uk/?a=commitdiff_plain;h=6bce78b3e53a6a4399d9108f7fc9c7f2c7b31945;p=ou-summer-of-code-2017.git Added some problem ideas --- diff --git a/m269-skills.ipynb b/m269-skills.ipynb index 025c9b4..1ec3aa8 100644 --- a/m269-skills.ipynb +++ b/m269-skills.ipynb @@ -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 index 0000000..72ca021 --- /dev/null +++ b/problem-ideas.ipynb @@ -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 +}