Programming 102: Think Like a Computer Scientist