writing a program requires thinking