Where it started: C++ and an exam nobody could cheat on
Colegiul Național „Moise Nicoară” · Arad, Romania · 2011–2015
I went to a high school specialised in mathematics and computer science. 4 years of C++: algorithms on paper first, then on the computer, then in competitions where your program had one second to answer or it failed. Nobody wrote the code for you. If it didn’t compile, you read the error until you understood it.
In numbers
- Time: the main loop took an afternoon, the edge cases 2 months. A teacher reads the log in 10 seconds.
- Money: free for the school, instead of about €750 for commercial lockdown software on every lab computer.
- Errors: false alarms fell from about 20% of tests in the first version to 2%.
- Adoption: the lab kept using it for 3 years after I left, and about 400 students took tests with it.
- Scale: 30 lab computers, each checked 10 times a second, by about 1,200 lines of C++.
The final project
For my final project I built Exam Guard, an app that stopped students cheating during tests on the school’s computers. The teachers had a real problem: tests ran on the lab PCs, and a student was one Alt+Tab away from searching for the answer.
Exam Guard ran as a full-screen overlay on top of every other window. It watched for the ways out of an exam and reported each one to the teacher:
- Switching windows, with Alt+Tab or the taskbar.
- Copying and pasting from anywhere outside the test.
- Opening the task manager to close the overlay.
- 3 strikes: after the last warning, the test locked itself.
How it worked
At its core was a loop that checked, 10 times a second, which window was in front. If it wasn’t the exam, the app logged it, brought the exam back and showed a warning.

One loop and the Windows API.
The loop took an afternoon. The edge cases took 2 months: a Windows Update pop-up is not cheating, a student who unplugs the network cable is. That turned out to be true of almost every project since: the main feature is quick, and the real work is everything around it.
What it taught me
- Read the documentation. The Windows API reference was my only teacher for this project.
- Build for the people using it. The teachers needed a log they could read in 10 seconds, not a technical report.
- Security is about the ways around it. Students are creative. Every version I tested in class, they found a new gap.
Exam Guard got the highest grade in my year, and the computer lab kept using it for tests after I left.