Nifty Assignments

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.

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

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

CS0-CS2. ASCII animations make fun, creative output with surprisingly simple code (Javascript, Java, ...)

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

Virtual Pests-- Jeffrey L. Popyack -- a fun CS1 assignment using JavaScript

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)

Neat Javascript projects-- Dave Reed -- Using Javascript as a simple introduction to programming (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!