Ein Programmierpuzzle enthält ein Ziel, ein teilweise abgeschlossenes Programm und Regeln, die festlegen, wie das Programm geändert werden kann. Das Programm wurde speziell entwickelt, um das Erreichen des Ziels zu erschweren. Eine Antwort auf ein Programmierpuzzle nimmt das Programm und ändert es nur auf die in den Regeln festgelegte Weise, so dass das Ziel erreicht wird.