classwithmrbabb.comPROJECT 1.1.6 · UNITS 1.1.1–1.1.5
🧐 Numbers Riddle: Remix Edition
Part A is the classic PLTW riddle — every programmer in this room builds it, and every program lands on 3. Part B is where you stop following a recipe: you invent a brand-new riddle that has never existed, built from numbers only YOU have, proved on paper before you type a line, and defended live at Mr. Babb's desk. Part A shows you can code. Part B shows the code is yours.
⚠️ Read this first — how this project is graded
This project is graded on three things, and only one of them is the program:
1. The code (runs, meets the requirements below) · 2. The Design Sheet — handwritten in class, no devices, signed and dated BEFORE you write code · 3. The Defense — 90 seconds at my desk where I pick a line and you change it live.
About AI: an AI can write a number riddle in two seconds — which is exactly why the riddle alone earns little. It cannot sit in class and handwrite your design sheet, it doesn't know your jersey number or your street address, and it cannot be you at my desk changing your own code on request. If your code doesn't match your sheet, or you can't modify your own riddle live, the originality points are gone — whoever or whatever wrote it. Use your brain for Part B; it's the only tool that scores.
📚 PART A — The Classic Riddle (the PLTW requirements)
"Choose any number, double it, add 6, divide it in half, subtract the number you started with. The answer is always 3." Your program proves it — printing the starting number, every step's result, and the final 3. No shortcuts: compute it, don't just print "3".
A1
Class header matching the file name, main method, multiline AND inline comments, camelCase names.
A2
Six test variables covering: positive int, negative int, zero, one, positive double, negative double.
A3
Both print and println used; a print statement for the chosen number, each calculation, and the final result.
A4
At least one compound assignment operator (+=, -=, *=, /=) doing riddle math (1.1.4).
A5
A conversion between int and double with a cast like (int) or (double) (1.1.5).
👑 PART B — YOUR Riddle (the originality points)
Invent a number riddle of your own: a sequence of at least four operations where the starting number always cancels out, so the riddle lands on a number you chose — no matter what anyone starts with.
B1
Personal fingerprint: your riddle's target comes from YOUR numbers — and at least one constant must be computed from your own name with .length() (e.g. String myName = "..."; int nameNumber = myName.length();). Jersey number, birth month, house number, locker number — your call, but it must be yours and you must be able to say what it is.
B2
Paper before keyboard: the riddle is invented on the Design Sheet, in class, by hand — operation table, the algebra showing why the start cancels, your predicted landing number, signature. Mr. Babb initials it before you're cleared to code. Code that doesn't match the sheet scores as unoriginal.
B3
The riddle story: your riddle gets a name and a 2–3 line printed intro in your voice ("The Locker 118 Trap"). Theme it to your life — your sport, your song, your block.
B4
Prove it in code: run YOUR riddle on at least 3 different starting values (reuse your Part A test variables) and print each run landing on your number. Use compound assignment operators for the steps.
B5
The Defense: at my desk, I'll ask you to change ONE thing live — "make it land on 12 instead," "make step 2 use *=," "why does the start cancel here?" 90 seconds. If you built it, this is the easiest points of the project.
How do you invent one? Work backwards. Decide where it should land (say, your jersey number 23). The classic trick: multiply the start by something, add that same multiple of 23, divide the multiple back out, subtract the start — the start is gone and 23 remains. Now disguise it: different multiple, extra steps that undo each other, your name-length added at the end. On PAPER. If you can't explain why the start disappears, neither can your code.
📦 Starter shell (Part A skeleton only — Part B is yours alone)
/* NumbersRiddle Remix
by (your name) - Period (x)
Part A: the classic riddle. Part B: (your riddle's name). */
public class RiddleRemix
{
public static void main(String[] args)
{
// ===== PART A: six test variables =====
// ===== PART A: the classic riddle, step by step =====
// ===== PART B: MY riddle - matches my signed Design Sheet =====
}
}
Build in VS Code or Replit (class Main on Replit). Milestones and time estimates go in your notebook like every PLTW project.
📊 Scoring — 100 points
Part
What
Points
A
PLTW program code (display number, perform operations, display results)
60
A
PLTW test values (the six types)
6
B
Design Sheet: handwritten in class, algebra proof, signed before coding
12
B
Original riddle in code: 4+ steps, lands on YOUR number, personal fingerprint incl. name-length constant, 3+ test runs
12
B
The Defense: live modification + explain the cancel
10
Penalties follow PLTW: code that errors, extraneous output, missing/poor screenshots. Part B points require the sheet — no sheet, no originality points, no exceptions.
🚀 Pre-Flight Check
Paste your whole program. This checks the Java mechanics only — it cannot check originality. The Design Sheet and the Defense do that. Green here + signed sheet + solid defense = done.
🧐 MECHANICS CLEAR — the Java checks out. Now the parts only you can do: screenshot code + output, staple it to your signed Design Sheet, and book your 90-second Defense. Reminder: green lights here earn nothing without the sheet.
classwithmrbabb.com · Mr. Babb · AP Computer Science A · Paul Public Charter School