Cookie preferences

HundrED uses cookies to enhance user experiences, to personalise content, and analyse our web traffic. By clicking "Accept all" you agree to the use of all cookies, including marketing cookies that may help us deliver personalised marketing content to users. By selecting "Accept necessary" only essential cookies, such as those needed for basic functionality and internal analytics, will be enabled.
For more details, please review our Cookie Policy.
Accept all
Accept necessary
search
clear

Reverse Engineering

place India

Decode it. Define it. Build it.

Most school coding contests hand students a written problem and ask for a solution. That rewards pattern-matching on familiar problem types and rarely asks students to analyse. Real problem-solving starts earlier: understanding what a system does before you build anything.

Overview

Information on this page is provided by the innovator and has not been evaluated by HundrED.

Updated October 2026
Web presence

2019

Established

1

Countries
Students upper
Target group
I hope to see classrooms move from teaching students to solve problems toward teaching them to understand problems first. Real problems rarely arrive as a clear question, so Reverse Engineering starts with a hidden program or app and asks students to observe, question and test before they build anything. Along the way, students build: → Computational thinking: breaking problems into parts, spotting patterns in inputs and outputs, forming rules from evidence, and testing edge cases → Perseverance: there is no instruction sheet, so they handle wrong guesses, unexpected outputs and the discomfort of not knowing → A healthier view of failure: being stuck is part of the process, and a failed guess is useful information In the age of AI, this matters more than ever. When code can be generated in seconds, the valuable skills are analysing what a system does, describing it precisely and verifying the result. I hope more schools replace “here is the problem, now solve it” with “here is a puzzle, now figure out what it is.”

About the innovation

Why did you create this innovation?

Most school coding contests give students a problem statement and ask for code. I found this didn’t stretch their analytical thinking. I created Reverse Engineering to flip it: students must first discover the problem by testing a hidden program, then solve it themselves.

What does your innovation look like in practice?

Students receive a compiled program (.exe) with no instructions. They give it inputs, watch how the outputs change, and work out the hidden logic. Once they’ve identified the problem statement, they write their own code for it in a language of their choice. They have 90 minutes in total.

The challenges are real-world logic problems, such as an invoice calculator that applies tax and discounts per item, or a denomination problem that finds the fewest notes for an amount. Solutions are judged on how fast they’re completed and whether they handle every use-case, so students have to test edge cases rather than just the obvious inputs.

How has it been spreading?

It began as an event at Technophilia, the IT Fete of Cambridge International School, Amritsar, where it ran from 2018 to 2020 and drew students from around 10-12 schools. I still propose it to Grade IX-XII students in my sessions today.

I am using it as a part of the hackathons, coding events I organize anywhere in K-12 schools or colleges.

How have you modified or added to your innovation?

The core format has stayed the same since it began: decode a hidden program through inputs and outputs, then rebuild it in 90 minutes. That consistency is deliberate, because the format works.

The latest addition extends the same thinking to app innovation and vibe coding. Students decode an app prototype, working out what it does and how it behaves, and then build the same using vibe coding. This shifts the skill from writing every line of code to understanding a product well enough to describe, direct and verify what gets built.

If I want to try it, what should I do?

There are two ways to run this: the coding route and the vibe coding route. Both start with the same step, decoding something hidden, and they differ in how students rebuild it.

Route 1: Coding
Before you write a single line of code, you have to work out what the code is supposed to do. The facilitator prepares a logic-based problem, such as an invoice with tax and discounts or the fewest notes for an amount, and builds it as an .exe with no source code or instructions. In a 90-minute session, students first decode the program by feeding it inputs, noting how the outputs change, and testing edge cases to uncover the hidden rules. They then write their own code for the identified problem in a language of their choice, check it against the .exe, and submit. Entries are judged on completion time and on handling every use-case, and a final debrief reveals the intended logic and what students missed.

Route 2: Vibe coding
When AI can write the code, the real skill is knowing exactly what to ask for. The facilitator shares a working app prototype with no source code or specification. Students decode it by using it closely, mapping its features, flows, rules and edge cases into a plain-language spec. They turn that spec into clear prompts for an AI coding tool, build the app through vibe coding, and iterate by reviewing and refining the output. They then verify their build against the original, feature by feature. Entries are judged on how closely the build matches the original,

Implementation steps

Choose a logic-based problem
Choose a logic-based problem with clear rules and edge cases, such as an invoice with tax and discounts, or the fewest notes that make an amount.
Build it as a program
Build it as a program (.exe) that takes inputs and gives outputs. Keep the source code hidden and give no instructions.
Set the rules
90 minutes, any programming language, no access to the source code.
Let students decode
They enter inputs, record the outputs, and test edge cases such as zero, large values and boundaries, to uncover the hidden rules. Let students identify the problem statement in their own words.
Students build and test
Let students build. They write their own code for the same problem in a language of their choice.
Let students test their code against the original program and submit.
Judgement
Judge on completion time and on how many use-cases the solution handles correctly.
Debrief
Reveal the intended logic and discuss which rules students missed and why.