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.
Applyingfor Nifty is now done as its own track with a similar deadline to special sessions. The format and content of the .zip you submit is unchanged. See theinfo pagefor ideas about what makes a nifty assignment and how to apply for the Nifty session.
Please email any suggestions or comments to the nifty-admin email:nifty-ford.edu
Spelling Bee + Wordle- Eric Roberts, Jed Rembold
CS1 Fantastic string-logic, now with Wordle
Food Web Zombies- Ben Stephenson and Jonathan Hudson
Handwriting Recognizer- Stephanie Valentine
CS1 Graphical handwriting recognition with templates
Bias Bars- Nick Bowman, Katie Creel, Juliette Woodrow
CS1 Exploring bias in data, bringing ethics discussion into code
CS1-2 Code to interact with reddit threads
Ray Marching- Joshua Crotts, Andrew Matzureff
CS1 Sankey diagram - neat data visualization algorithm
Rocket Landing Simulator- Adrian A. de Freitas and Troy Weingart
CS1 Rocket Landing Simulator - fun algorithm
CS1-CS2 Covid 2D infection simulator - timely if scary
Linked List Labyrinth- Keith Schwarz
CS2 Neat memory / debugger skill exercise, custom per student
Thanks to our presenters for getting everything together including videos for this COVID-interrupted year.
CS1 Fill in algorithm of fun typing-speed test.
CS1 or later: Students are given a data file, but no description about what it represents. Can they solve the mystery by generating a reasonable image?
CS1 - use real data to make a animated bar chart - captivating!
Recursion to the Rescue- Keith Schwarz
Nifty recursion projects using tied to real-world applications.
Two hour exercise illuminating algorithms and life
CS1 Very engaging falling simulation
CS1 The fantastic 2048 game works great as a CS assignment
CS1 Amazing sound generation and visualization
CS1-CS2 Fun big data application to the familiar SAT word problems
CS2 Captivating gravity simulation. Gravity .. its everywhere!
CS1 Neat simple algorithm in 2D arrays
Restaurant Recommendations Yelp Maps-- Brian Hou, Marvin Zhang, and John DeNero
CS1 Nifty data visualization of restaurant data
Rack-O Game-- Arvind Bhusnurmath, Kristen Gee, and Karen Her
CS1 Play and AI code for an easy game
Movie Review Sentiment-- Eric Manley and Timothy Urness
CS1/CS2 Neat word analysis from a surprisingly simple algorithm
CS1/CS2 Grid simulation game that shows off testing
CS2 Neat applied use of word storage and binary search
Counting Squares-- Mark Sherriff, Luther Tychonievich, and Ryan Layer
CS0/CS1 Neat and easy squares activity
Packet Sniffing-- Suzanne Matthews and David Raymond
Melody Maker-- Allison Obourn and Marty Stepp
Analyzing Google Books Dataset-- Josh Hug
Game Of Sticks-- Antti Laaksonen and Arto Vihavainen
CS1 Neat Game AI from shockingly simple trick
Ants vs. SomeBees-- John DeNero, Tom Magrino, and Eric Tzeng
Segregation Simulation-- Frank McCown
Image StackerandThe Pesky Tourist-- John Nicholson
CS2 Two very neat 2-d image manipulations
Twitter Trends-- John DeNero and Aditi Muralidharan
CS0-CS1 Neat output with a hip big-data source
CS0 Novel media output by combining images
Authorship Detection-- Michelle Craig
CS1 Surprisingly effective data driven categorization with basic coding
Recursive TurtleGraphics-- Eric Roberts
CS1 Get at the essential recursive idea very easily
Estimating Avogadros Number-- Kevin Wayne
CS1/CS2 Surprisingly easy image processing of lab data to get a real-world result
Stereo Sound Processing-- Daniel Zingaro
CS1 (early) - Fun and impressive early in the quarter - remove vocals from sound
CS1/CS2, Extremely neat -- math model creates realistic guitar sound
Image Editor-- Joshua T. Guerin and Debby Keen
CS1/CS2 Code to experiment with images, but requiring only the ability to change text files.
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 hell send you what you need to get the binaries.
CS0 or later, great puzzles using images, tiny code required
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.
CS1-CS2, Shark/fish simulation using GridWorld type abstraction. Neat simulation/modeling example working from simple rules.
CS2, Neat exercise with a real algorithm. Push the students to understand that its really all bytes.
CS2 or late CS1 - Awesome variant of Hangman, where the computer cheats by dodging all the users guesses
CS0-CS1, day-1 assignment -- neat environment to get students started, works in the browser
CS1, intermediate difficulty game to implement, but students love it and lots of variations
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
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!
CS1, neat drawing of the night sky and constellations -- simple file reading and drawing
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
CS1, build nifty images with recursive nested random symbolic math expressions (python)
CS1-CS21, range of easy to complex cryptography projects, using paper/manipulation model to get started
CS2, surprisingly easy DNA manipulation, set up for the students to measure/experiment with their code
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
CS2, stacks, queues, 2d arrays. Play around with algorithms to solve a maze. Works with gridworld
CS1-CS2, prolog for advanced CS2, java for late CS1 variant. Explore simple but subtle dice game
CS0-CS1, spreadsheet use or basic code. Transfer media data to spreadsheet form to make manipulation easy
CS1, CS2. basic logic, map interface (arrays or Hashmaps). Build a surprisingly good computer opponent for a guessing game
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.
CS2, 2-d arrays, simulation. Neat, real-world example simulating spread of fire across a terrain, depending on humidity etc.
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.
CS1, basic logic, loops using ACM graphics early in the term
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.
CS2, recursive backtracking ... a very fun application of recursive search
CS2, data structures, networking ... neat to implement a client for a real protocol
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
CS1, OOP by creating a currency ... has a community/social aspect among the students
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
CS2, framework to allow students to write filters on 2-d data and see them applied to images
Pong-- Grant Braught -- a neat objects first assignment
Lunar Lander-- Stuart Reges -- another fun objects first assignment
HTML Browser-- Scott Dexter and Chaya Gurwitz -- CS2 assignment to render HTML
Backtracking-- Stephen Weiss -- CS2 all about backtracking
Random Writer-- Joe Zachary -- a neat CS2 data structure problem
Shall We Play A Game?-- Dan Garcia -- A system where students can play around with game playing AI (CS0)
Adventure-- John Estell -- Using the classic adventure game as a largish project (CS2)
Sorting Detective-- David Levine -- A fun variation on the old sorting algorithms homework (CS2)
Boggle-- Julie Zelenski (in cahoots with Owen Astrachan) -- Using the Boggle game to explore recursive algorithms and data structure tradeoffs (CS2)
Windows and Regions-- Mike Clancy -- an algorithmic problem using 2-d regions. An excuse to do some linked-list (or ArrayList) type manipulation. Give the students a feel for window manager region operations.
Personality Test -- Stuart Reges -- sort and match the personality data of the class (more fun than it sounds!)
Quilt-- Julie Zelenski -- a fun, drawing-intensive CS1 project that emphasizes decomp
Word Ladder-- Owen Astrachan -- a string manipulation puzzle
Tetris-- Nick Parlante -- a large OOP project, with a tetris board, tetris piece, tetris game, and a pluggable tetris brain . Can be used as a small project where students just write a Tetris brain and plug it in, or can be used as a large CS2 OOP project. The nifty materials include a runnableJTetris.jarsample, and anInstructors Guide
Cat And Mouse-- Mike Clancy -- (CS1) a cute problem which requires non-trivial geometry and algorithms, but can be solved in 100 lines.
Bagels-- Stuart Reges -- (CS1) a fun game with some algorithmic complexity.
DNA-- Richard E. Pattis -- (CS1) great first data structures and performance tuning problem.
Huffman Coding-- Owen Astrachan -- (CS2) decomposition and data structures.
The Random Sentence Generator-- Julie Zelenski -- (CS2) a fun use of grammars, recursion, and ADTs.
Darwins World-- Nick Parlante -- (CS2) a simulator featuring decomposition and a simple interpreter.
Also of interest: The StanfordCS Education Libraryof free CS Education Materials, home of the Binky Pointer Video!