writing a program requires logical thinking