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
These are the assignments instructors already trust to make a concept finally click — minus the starter-zip, IDE, and grading friction.
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.
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.
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.
Original Nifty assignments exist in just one language. We rebuilt each one idiomatically in all three — same task, same test cases, same expected answers.
// 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; }
# 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
// 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; }
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.
Every book ships with Alps. Add any edition to your class in a click, then assign it directly or mix it into your curriculum.
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.
Loops, conditionals, strings, basic functions, and simple objects — heavy on visual, media-driven payoff that motivates beginners.
Linked structures, trees, graphs, algorithmic design, and larger object-oriented programs.
Dynamic programming, advanced graph algorithms, and applied, multi-part projects.
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.
No setup, no submission queue — just code and instant feedback, in the browser.
They read the prompt and find starter code — function and class stubs with TODOs, plus any helper code the assignment provides.
Right in the editor, in the course’s language. The friction layer — graphics, file plumbing — is gone, so they implement the algorithm that matters.
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.
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.
TODOs and any provided helpers
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.
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.
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.
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.
| 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 | ~ |
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.