Heuristic Programming Project (pages 26-50)