heuristic programs can teach themselves