Łamigłówka programistyczna obejmuje cel, częściowo ukończony program i zasady określające sposób modyfikacji programu. Program jest specjalnie zaprojektowany, aby utrudnić osiągnięcie celu. Odpowiedź na łamigłówkę programistyczną bierze program i modyfikuje go tylko w sposób określony w zasadach, tak aby cel został osiągnięty.