Boston University Seal Boston University
College of Arts and Sciences
Computer Science Department

CS111: Introduction to Computer Science, Fall 2006
Contact Info Course Description Books & Software Labs Assignments Examples

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, azs@bu.edu
http://www.cs.bu.edu/courses/cs111/
Last update: 31 August 2006