##### Description:

This course provides a gentle introduction to computer programming using a modern programming language such as Java or C#. It is an introductory course appropriate for any student. No prior programming experience is required. The focus of this course is to teach students the very basic programming concepts and methodologies including data types (arrays, strings, numbers, lists, queues, and stacks), control structures (iteration, switch, and conditional statements), simple algorithms (sorting and searching), basic object-oriented programming (classes and objects), and a few advanced concepts (exceptions and threads). Students also learn how to use methods/procedures to decompose a large programming task into smaller pieces, how to write simple graphics, graphical user interface, and animation programs, and how to write cool artifacts (using Java applets or ASP.NET) to spruce up their web pages. All programming assignments are done using a modern real-world development tool (e.g., Microsoft VS.NET) which often provides a visual programming interface, a great debugger, and a huge application library. Students who have already had significant past programming experience should speak with the instructor about other course opportunities.

##### Expected Quantitative Preparation:

Computer programming is a self-contained subject area and requires no mathematical background. Some programming assignments may require knowledge of high school algebra (see example problems below). The algebra knowledge is required not for the programming part, but rather to set up these problems.

##### Sample Problems

Perform the indicated operations:

• [(24-9)^{2}] / 5 =_____________

Simplify:

• ab^{2} + 2ab - 3ab^{2} - ab = _____________

Solve for X:

• 8/(3X-1) = 4 _____________

Plot and label the following points on graph paper:

• {5,0}

• {5,5}

• {1,3}

• {-1,-1}

Plot and label the following functions on graph paper:

• Y = 2X + 4

• X = 4

• Y = -2

• Y= -X + 2