CS Department Mt. Holyoke College
CS 101
Problem Solving and Structured Programming

One of the main jobs of computers is to solve problems. Problems arise in many application areas. You are probably most familiar with desktop computing, that is, applications on your PC or Mac. For example, document processing applications like Word, need to solve problems such as deciding where to place line breaks and page breaks and identifying misspelled words along with likely corrections. More generally, computers solve problems of a much larger scale, including aircraft flight control, routing information through the Internet, modeling the environment to predict the effects of global warming, and controlling medical equipment.

Programming is the act of telling a computer how to perform these and many more tasks. A computer is a piece of hardware. The hardware gives it amazing speed and large, perfect memory. It is the programs, though, that give it its flexibility and apparent intelligence. A program is a list of instructions (often quite long!) that a computer follows very precisely. If the instructions are correct, a computer is the perfect servant. If the instructions are not correct, the result is generally aggravated users or worse.

In this course, we will focus on the basics of programming. We will learn how to design algorithms to solve problems and to translate those algorithms into a programming language. In the beginning of the semester, we will work with Alice, a tool designed for learning programming by creating simple animations and games. We will then transition to Java, a very popular modern programming language used in the development of many applications.

Topics covered include conditionals and loops, event handling, graphical user interfaces, classes, arrays and strings.