THE HEURISTIC PROGRAMMING PROJECT