programming and problem solving 5969