Nifty Assignments

The CS Classics,
in Your Language.

The assignments students actually remember — Word Ladder, Seam Carving, Evil Hangman — the CS-education community’s greatest hits, now ready-to-run and auto-graded on Alps in Java, Python, and C++. Nothing to install.

Assign a legendary problem in the exact language your course uses, drop it into your curriculum in a few clicks, and let auto-grading handle correctness. 125 problems in your language, every one a single click to assign.

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

125
Problems in your language — Java, Python, or C++
3
Levels — CS1, CS2, and Advanced
13
Topics across the CS curriculum
Auto-graded, reference solution included

Why Teachers Reach for Them

These are the assignments instructors already trust to make a concept finally click — minus the starter-zip, IDE, and grading friction.

Every Problem, In Your Language

The same problem exists in Java, Python, and C++ — identical task, identical tests, identical answers. Teach in the language your course uses, switch languages between terms without rebuilding, or align multiple sections on one problem.

Drops Into Your Course in Clicks

Add the books next to your existing textbook with the multi-curriculum classroom, then assign a single problem or assemble a themed set. Keep them hidden until you’re ready, with per-class visibility.

Auto-Graded, Solutions Included

Every problem ships with a hidden test suite, so students click Run Tests and get instant pass/fail — no submission queue, no manual correctness pass. A reference solution is there when you want it.

One Problem, Three Languages

The Same Nifty. Java, Python, or C++.

Original Nifty assignments exist in just one language. We rebuilt each one idiomatically in all three — same task, same test cases, same expected 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 Your Language. Get Three Levels.

Each language ships as three leveled books — CS1, CS2, and Advanced — 125 problems in all, drawn from every cohort of the project (1999–2026). Across all three languages that’s 9 ready-to-assign curricula.

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

Every book ships with Alps. Add any edition to your class in a click, then assign it directly or mix it into your curriculum.

Three Levels

CS1, CS2, and Advanced

Every problem is leveled by the concepts it actually exercises — not by its original course — with an estimated time on task, so you can 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

The catalogue spans the standard CS1/CS2 curriculum and well past it, so 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 a Student Works a Problem

No setup, no submission queue — just code and instant feedback, in the browser.

Open the Problem

They read the prompt and find starter code — function and class stubs with TODOs, plus any helper code the assignment provides.

Write the Core

Right in the editor, in the course’s language. The friction layer — graphics, file plumbing — is gone, so they implement the algorithm that matters.

Run Tests, Get Graded

One click runs a hidden test suite for instant pass/fail on every case. Alps auto-picks the fastest runtime; the reference solution is available for teachers.

Quality You Can Assign With Confidence

A Grader You Don’t Have to Double-Check

Auto-grading is only useful if the grader is right. Every problem is validated to a deliberate standard before it ships — so you can assign it without re-checking the answer key.

  • Run on a real code-execution engine — the same kind the grader uses, not eyeballed
  • Made deterministic — fixed inputs replace randomness, so every answer is reproducible
  • Graded end-to-end on the real Alps runtime — the same environment your students use
What ships in every problem
Starter code with TODOs and any provided helpers
A hidden test suite that grades instantly
A transparent “what was adapted for Alps” note
Original author credited, linked to nifty.stanford.edu

Faithful to the Original, Friction Removed

Each Nifty assignment originally shipped as a desktop project — a starter zip, an IDE, a graphics library, data files on disk. We adapted each one with a careful, expert hand.

We Kept What Students Write

Every Nifty has a codeable core — the algorithm the student is really there to implement — wrapped in UI and file plumbing the instructor provides. We extracted that core and made it the activity.

Deterministic, No Files Needed

Where an original used randomness, the graded version uses fixed inputs or a seeded RNG so tests are reproducible. File, graphics, and large datasets become a small, curated in-memory sample with recomputed expected answers — same algorithm, minus the expensive setup.

Credited and Transparent

Every problem carries a note on exactly what changed and why, credits its original author, and links the source on nifty.stanford.edu. Authors may request removal at any time.

Note on coverage. The Nifty catalogue has 157 assignments; we’ve adapted 125 of them. The ones we left out are the genuinely browser-incompatible ones — real-time arcade games, hardware and robotics labs, and web-scraping projects — which have no autogradable core. Everything with a testable algorithm is in, and the collection grows. The original (linked in every problem) remains available for instructors who want the full multi-week project.
How It Compares

vs. The Original Starter Zips

Feature Nifty on Alps Original Download
Zero setup — no IDE, no installs, works on Chromebooks
The same problem in Java, Python, and C++
Auto-graded in the browser, instant feedback
Drops into your existing course & assigns in clicks ~
Reference solution included ~
FAQ

Questions Teachers Ask

Assign a Classic This Week

Start free, add the Nifty Assignments editions your course needs, and let auto-grading and adaptive routines do the heavy lifting.

“Nifty Assignments” is a project of the computer-science education community, presented at the ACM SIGCSE Technical Symposium (nifty.stanford.edu). All adaptations to run on Alps were made by 2Sigma School; each problem credits its original author and links the source. Original authors may request updates or removal at any time — contact us.