Nifty Assignments

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. To apply for Nifty please see the info page Please email any suggestions or comments to Nick Parlante @ cs.stanford.edu with "nifty" in the subject (See also Nick's Home and Nick's online java practice problems project).

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

  • Nifty Assignments 2004

  • Nifty Assignments 2003

  •  
  • Nifty Assignments 2002
  • Nifty Assignments 2001
  • Nifty Assignments 1999
  • Also of interest: The Stanford CS Education Library of free CS Education Materials, home of the Binky Pointer Video!