This is a nifty assignment from 2011 proposed by Nick Parlante. Source
The purpose of this assignment is to learn to
The goal of this assignment is to solve a puzzle by finding where pieces of a pin code fit into a background image. The background image is composed of random noise and each number image overlays onto the grid at exactly 1 place. The programmer must determine where this one place is on the background and draw the numbers in revealing the full pin code.
First the programmer must fill in the empty functions of the image class. These include reading a ppm image, overlaying one image onto another, and finding what position one image overlays onto another without overlap.