The objective of this class is to teach the concepts, principles and methods of developing application software. The focus will be on how to compose programs using libraries of components and layers of existing software as much as possible.

This is to be contrasted to a course in "programming." In particular, we will not be focusing on how to program algorithms for data structures, which is a mainline thrust for computer science majors.

Approach

This will essentially be a laboratory class. We will discuss concepts in lecture and illustrate the concepts with examples. The laboratories will then focus on how to implement, test, etc. the examples.

The material covered coverage will be as follows:

We will learn about the processes of software development.

We will learn how to create reusable software components.

We will learn how to compose programs from components.

We will understand algorithms and how to match algorithms to problems.

We will learn to test and evaluate programs for their functionality and their performance.

Course Materials

The background materials for the class will include three elements:

The text is "Object-Oriented Software Development Using Java" by X. Jia. It is available for purchase at the University Coop.

We will use the Code Warrior development environment in the Elements Laboratories.

The text will be supplemented by course notes and references to material on the web.

The course notes and other material will be on Web pages. We will use the WebCT online course system for this class.

Course Work Requirements

The class work will consist of examinations, laboratory exercises and projects. All work will be submitted in JAVA.

There will be a mid-term exam and a final exam. The exams will be open book and open notes.

The laboratory exercises will be a substantial portion of the class. There will be a laboratory exercise associated with many lecture topics.

The projects will be chosen to enable demonstration of composition of programs from libraries of components. The projects are individual projects.

The laboratory exercises and project must be your own work except where permission for collaboration is explicitly given.

The grade in the class will come 50% from the two exams, 20% from the laboratory exercises and 30% from the projects.

Facilities

You may use your own computer or Computer Sciences Department laboratories. The CS Department laboratory will provide Code Warrior and the JAVA Development Kit Version 1.2.

Policy on Academic Honesty

We follow the University’s standard policies on academic honesty. They will be rigorously enforced. Cheating will result in action commensurate with the policies stated in the University’s Manual on Academic Honesty.

Lecture Schedule

The schedule for lectures with topics and pointers to reference materials will be available on WebCT.