Course description

This course will be an introduction to computer science and object-oriented programming through the vehicle of programming in the Java language. The course will focus on the skill of programming, to be sure, but will also attempt to introduce the student to the discipline of computer science.

It serves as a stand-alone, rigorous sample of computer science, suitable for math and science majors, and also as the first course in the CS concentration.

Our emphasis in teaching programming in this course centers on the following:

  1. Using objects as building blocks for program development.
  2. Developing elegant and efficient code from an abstract specification;
  3. Literate programming (writing a program that can be read by a human as well as a machine);
  4. Programming methodology, which involves
    • Thinking about the best way to plan out the design using object-oriented design and appropriate features of Java;
    • Methodical and efficient development of the implementation using step-wise refinement and incremental testing and debugging (using appropriate debugging tools);
    • Being able to convince yourself of the correctness of the implementation by mathematical reasoning.

What You Need to Know About Computer Programming

I believe anyone can succeed at learning Java. This is a first course in computer programming, and there are no formal pre-requisites. The only expectation of students' computer skills before taking this class is to be comfortable with using email, web browsing, and copying and pasting text. In addition, familiarity with high school-level algebra (e.g. MA 118) is assumed.

In addition, you will need time, and this is more important than you can imagine. Many people believe that computer programming is extremely difficult, and that the code is written in some arcane syntax understandable only by experts. Although some parts of the process are indeed complex, most of the source code required for homework assignments can be easily understood.

So, what makes programming so hard? Itís not the difficulty: Itís the time required to achieve any decent results. The homework assignments will take time, so make sure you have plenty of it.

Adapted from text in ďCore Techniques and Algorithms in Game Programming,Ē Daniel Sanchez-Crespo Dalmau.

Created by: Aaron Stevens,
Last update: 31 August 2006