The Nifty Assignments session at the annual SIGCSE meeting is all
about gathering and distributing great assignment ideas and their
materials. For each assignment, the web pages linked below describe
the assignment and provides materials -- handouts, starter code, and
so on. See the info page for ideas about what
makes a nifty assignment and how to apply for the Nifty session.
Please email any suggestions
or comments to Nick
Parlante @ cs.stanford.edu with "nifty" in the subject. Nick's Home, greatest geocache ever
SIGCSE 2012: See experimental Dan Garcia "Ensemble" markup pages on the 2011 assignments
| Nifty Assignments 2012 | |
| Stereo Sound Processing -- Daniel Zingaro | CS1 (early) - remove vocals from sound |
| Guitar Heroine -- Kevin Wayne | CS1/CS2, Extremely neat -- math model creates realistic guitar sound |
| Uno -- Stephen Davies | CS1, Strategy AI to play Uno. |
| Image Editor -- Joshua T. Guerin and Debby Keen | CS1/CS2 Code to experiment with images, but requiring only the ability to change text files. |
| Igel Ärgern -- Zachary Kurmas | CS2 Hedgehogs in a Hurry game |
| Binary Bomb -- David O'Hallaron | Post CS2 -- neat assignment puzzle to play with understanding of compiled code and memory as they truly are. On the linked page, see the README, Writeup, Release Notes, Self-Study Handout which all work without a password. To play with the code, email Dave and he'll send you what you need to get the binaries. |
| Nifty Assignments 2011 | |
| Image Puzzles -- Nick Parlante | CS0 or later, great puzzles using images, tiny code required |
| BMP Puzzles -- David Malan | CS1, More and better image puzzles, looking at bytes of BMP file representation |
| Book Recommendations -- Michelle Craig | CS1, Like the Netflix movie-recommendation system, generate book recommendations. Surprisingly simple algorithms give a neat results. |
| Generic Scrolling Game -- Dave Feinberg | CS1, Project pattern which supports a variety of games. Easily allows students to customize rules, graphics etc. of simple game. |
| Wator World -- Mike Scott | CS1-CS2, Shark/fish simulation using GridWorld type abstraction. Neat simulation/modeling example working from simple rules. |
| Hamming Codes -- Stuart Hansen | CS2, Neat exercise with a real algorithm. Push the students to understand that it's really all bytes. |
| Evil Hangman -- Keith Schwarz | CS2 or late CS1 - Awesome variant of Hangman, where the computer cheats by dodging all the user's guesses |
| Nifty Assignments 2010 | |
| Picobot -- Zachary Dodds | CS0-CS1, day-1 assignment -- neat environment to get students started, works in the browser |
| Pig -- Todd Neller | CS1, intermediate difficulty game to implement, but students love it and lots of variations |
| Song Generator -- Daniel Zingaro | CS1, implement filters with short bits of code, but it all works in the domain of sound, making in a novel and engaging domain for the students |
| CSI: Computer Science Investigation -- David Malan | The instructor accidentally erases the compact flash card containing their images. Students write code to recover the images, solve the treasure hunt using the images |
| Encryption Chase -- Mark Sherriff | CS2, encryption coding, embedded in a team active-learning campus treasure hunt |
| Chatting Aimlessly (IM) -- Thomas Murtagh | CS1, implement simple instant messaging client in CS1 -- talk about a technology near to the student heart! |
| Nifty Assignments 2009 | |
| Star Map -- Karen Reid | CS1, neat drawing of the night sky and constellations -- simple file reading and drawing |
| Face Pamphlet -- Mehran Sahami | CS1, simple Facebook application built with just CS1 technology, students love it |
| Secrets In Images -- Brent Heeringa, Thomas Murtagh | CS1, hide secret messages inside images -- neat image manipulation with data as simple arrays |
| Random Art -- Christopher A Stone | CS1, build nifty images with recursive nested random symbolic math expressions (python) |
| Enigma Encryption -- Dave Reed | CS1-CS21, range of easy to complex cryptography projects, using paper/manipulation model to get started |
| DNA Splicing -- Owen Astrachan | CS2, surprisingly easy DNA manipulation, set up for the students to measure/experiment with their code |
| Nifty Assignments 2008 | |
| Catch Plagiarists -- Baker Franke | CS1-CS2, typical CS2 data structures, difficulty can be adjusted. Search within a set of documents to find pairs with copied content |
| Genetic Algorithm TSP -- Raja Sooriamurthi | CS1-CS2, basic genetic algorithms. Use genetic algorithms to solve the traveling salesman problem |
| Asteroids -- Dan Leyzberg, Art Simon | CS1-CS2, objects, inheritance, abstract classes. An impressive implementation of Asteroids with OOP design and inheritance |
| Huffman Images -- Morgan McGuire, Tom Murtagh | CS1(late) or CS2(early). Labs to explore huffman compression in the context of image bitmap manipulation |
| Maze Solver -- Don Blaheta | CS2, stacks, queues, 2d arrays. Play around with algorithms to solve a maze. Works with gridworld |
| Dice Flip -- Cay Horstmann | CS1-CS2, prolog for advanced CS2, java for late CS1 variant. Explore simple but subtle dice game |
| Nifty Assignments 2007 | |
| Media Manipulation -- John Cigas | CS0-CS1, spreadsheet use or basic code. Transfer media data to spreadsheet form to make manipulation easy |
| ASCIImations -- Dave Reed | CS0-CS2. ASCII animations make fun, creative output with surprisingly simple code (Javascript, Java, ...) |
| Mindreader -- Raja Sooriamurthi | CS1, CS2. basic logic, map interface (arrays or Hashmaps). Build a surprisingly good computer opponent for a guessing game |
| Solitaire OOP -- Robert Noonan | CS2, OOP and patterns to explore family of solitaire games |
| Sliding Blocks Puzzle -- Mike Clancy | CS2, significant recursion and data structures. Recursive and heuristic work to solve the sliding blocks puzzle. |
| Fire -- Angela Shiflet | CS2, 2-d arrays, simulation. Neat, real-world example simulating spread of fire across a terrain, depending on humidity etc. |
| Nifty Assignments 2006 | |
| Book Code (ISBN) -- John Motil | CS1, basic logic to play with ISBN numbers. Fun because we are surrounded by these numbers .. use them for basic examples |
| Natural Prestidigitation -- Steve Wolfman | CS1, basic logic, loops, arrays. Appears dull, but has a neat surprise ending. |
| Breakout -- Eric Roberts | CS1, basic logic, loops using ACM graphics early in the term |
| Dancing Turtles -- Chris Nevison | CS1, inheritance with dancing turtles and ACM graphics |
| Solitaire Encryption -- Lester I. McCann | CS2, list manipulations, algorithmic code, file reading. Implements a very novel type of encryption. |
| Anagram Solver -- Stuart Reges | CS2, recursive backtracking ... a very fun application of recursive search |
| RSS Reader -- Jerry Cain | CS2, data structures, networking ... neat to implement a client for a real protocol |
| Nifty Assignments 2005 | |
| Test Me -- David Levine | CS0-CS1, students write tests to examine black box code -- nifty and no code writing |
| Grid Plotter -- Alyce Brady and Pam Cutter | CS1, neat way to learn and practice loop code |
| Complementary Currency -- Paul Kube | CS1, OOP by creating a currency ... has a community/social aspect among the students |
| Name Surfer -- Nick Parlante | CS1, loops, arrays, files. Graph baby name data for the last 100 years. Nifty because the data is nifty. |
| Photomosaics PPT (PDF version) -- Rich Pattis | CS2, create image made of many little images .. but there is a patent on it |
| Image Lab -- Aaron Gordon | CS2, framework to allow students to write filters on 2-d data and see them applied to images |