This course introduces students to the application of the computer to solving real-world problems. Students taking this course will develop skills in the science and art of computational thinking. A wide range of topics is covered and students will learn to identify specific problems as instances of more general ones whose solutions they understand and know to implement.