Nifty Assignments

The CS classics,
in your language.

Assign Word Ladder, Seam Carving, Evil Hangman, and other CS classics in Java, Python, or C++. Each one is ready to run and auto-graded.

Nothing to install. Choose from 125 problems in the language your course uses, each one click to assign.

From the ACM SIGCSE Nifty Assignments project, adapted for Alps by 2Sigma School

125
Problems in each of Java, Python, and C++
3
Levels: CS1, CS2, and Advanced
13
Topics across the CS curriculum
Auto-graded, with a reference solution

Why teachers reach for them

Instructors already trust these assignments to make a concept click. Alps takes care of the setup and the grading.

Every problem in your language

Each problem comes in Java, Python, and C++, with the same task, tests, and answers. Switch languages between terms, or assign one problem to sections that use different languages.

Auto-graded, solutions included

Students click Run Tests and get instant pass/fail from hidden tests. A reference solution is there when you want it.

Add to your course in a few clicks

Add the books next to your textbook with the multi-curriculum classroom. Assign one problem or a themed set, and keep the rest hidden until you’re ready.

One problem, three languages

The same problem in Java, Python, or C++

Each original Nifty assignment comes in one language. We rebuilt every one in idiomatic Java, Python, and C++, with the same tests and answers.

Java
// Word Ladder — fewest one-letter steps
int ladderLength(String begin, String end,
                 Set<String> words) {
    Queue<String> q = new LinkedList<>();
    q.add(begin);
    int steps = 1;
    // ... explore neighbors (BFS) ...
    return steps;
}
Python
# Word Ladder — fewest one-letter steps
def ladder_length(begin, end, words):
    queue = deque([begin])
    steps = 1
    while queue:
        # ... explore neighbors (BFS) ...
        steps += 1
    return steps
C++
// Word Ladder — fewest one-letter steps
int ladderLength(string begin, string end,
                 set<string>& words) {
    queue<string> q;
    q.push(begin);
    int steps = 1;
    // ... explore neighbors (BFS) ...
    return steps;
}
The collection

Pick a language, get three levels

Each language comes as three books: CS1, CS2, and Advanced. Together they hold 125 problems from every year of the project (1999–2026). Across all three languages, that’s 9 curricula ready to assign.

Nifty Assignments — Java edition
Nifty Assignments — Java
3 levels · 125 auto-graded problems
Nifty Assignments — Python edition
Nifty Assignments — Python
3 levels · 125 auto-graded problems
Nifty Assignments — C++ edition
Nifty Assignments — C++
3 levels · 125 auto-graded problems

All of these books come with Alps. Add an edition to your class, then assign it directly or mix it into your curriculum.

Three levels

CS1, CS2, and Advanced

Problems are leveled by the concepts they use, and each shows an estimated time. Match the right work to the right week.

CS1 · Introductory Programming
60 problems · ~20–50 min each

Loops, conditionals, strings, basic functions, and simple objects — heavy on visual, media-driven payoff that motivates beginners.

Images & MediaData AnalysisGames & PuzzlesMath & NumericalStrings & Text
CS2 · Data Structures & Algorithms
57 problems · ~40–60 min each

Linked structures, trees, graphs, algorithmic design, and larger object-oriented programs.

Data StructuresObject-Oriented DesignSimulationGraphs & PathfindingStrings & Text
Advanced Topics & Applications
8 problems · ~60–80 min each

Dynamic programming, advanced graph algorithms, and applied, multi-part projects.

Dynamic ProgrammingGraphs & PathfindingCryptographyData Structures
Topic coverage

13 topics, from CS1 to capstone

There’s a fit for almost any week of an intro, data structures, or algorithms course.

Images & media
Image Filters, Seam Carving, Image Stacker, Steganography
Data analysis & machine learning
Yelp Maps (k-means), Twitter Trends, Movie-Review Sentiment
Games & puzzles
2048, Tetris, Minesweeper, Boggle, Evil Hangman
Math & numerical methods
Estimating Avogadro’s Number, primes, numerical integration
Simulation & modeling
N-Body Gravity, Schelling Segregation, Forest Fire, Game of Life
Strings & text processing
Anagram Solver, Random Writer (Markov text), Catch Plagiarists
Object-oriented design
Card Games, UNO, Face Pamphlet, Ants vs. SomeBees
Recursion & fractals
Fractals, Recursive Turtle Graphics, Blocky (quadtrees)
Cryptography & security
Enigma Machine, Hamming Codes, Digital Signatures
Graphs & pathfinding
Word Ladder (BFS), Bear Maps (Dijkstra), Maze Solver
Searching & sorting
Sorting visualizers, search, selection problems
Data structures
Huffman Coding, Autocomplete-Me, Guitar Heroine (ring buffers)
Dynamic programming
Seam Carving, Edit Distance / DNA Matching, Mountain Paths

How students work a problem

Students write code in the browser and get instant feedback. There’s nothing to set up.

Open the problem

Students read the prompt and fill in starter code marked with TODOs.

Write the algorithm

They write it in the editor, in your course’s language. No graphics or file setup gets in the way.

Run tests, get graded

One click runs hidden tests for instant pass/fail on every case. Teachers can see the reference solution.

Quality checked

A grader you don’t have to double-check

Every problem is tested before it ships, so you can assign it without checking the answer key yourself.

  • Graded end to end on the Alps runtime, the same environment your students use
  • Made deterministic, so every run gives the same answer
In every problem
Starter code with TODOs and any helper code
Hidden tests that grade instantly
A note on what was adapted for Alps
Credit to the original author, with a link to nifty.stanford.edu

True to the original, without the setup

The originals are desktop projects with starter files, an IDE, a graphics library, and data on disk. We adapted each one to run on Alps.

We kept the code students write

Each activity is the core algorithm the assignment teaches, without the interface and file code around it.

Repeatable, no files needed

Tests give the same result every run. Large files and datasets become small built-in samples.

Credited and transparent

Each problem notes what changed and why, credits its author, and links to the source on nifty.stanford.edu. Authors may request removal at any time.

Note on coverage. The Nifty catalog has 157 assignments, and we’ve adapted 125 of them. We left out the ones that can’t be auto-graded in a browser, like real-time arcade games, hardware and robotics labs, and web-scraping projects. Everything with a testable algorithm is in, and the collection keeps growing. Each problem links to its original if you want the full multi-week project.
How it compares

Nifty on Alps vs. the original downloads

Feature Nifty on Alps Original download
Runs on Chromebooks with nothing to install
Auto-graded in the browser with instant feedback
The same problem in Java, Python, and C++
Add to your course and assign in a few clicks ~
Reference solution included ~
FAQ

Questions teachers ask

Assign a classic this week

Start free, add the edition in your course’s language, and let auto-grading check the work.

“Nifty Assignments” is a project of the computer science education community, presented at the ACM SIGCSE Technical Symposium (nifty.stanford.edu). 2Sigma School made all adaptations for Alps. Each problem credits its original author and links to the source. Original authors can contact us to request updates or removal at any time.