Routing/Approval:
(chair’s initials/date)

                    
Department

                    
Division

                    
APC

                    
Senate

PROPOSAL FOR A NEW COURSE

Date of proposal: 4/10/06

Title: Object-Oriented Java Programming

Department and Course Number: CSCI 131

Crosslisted?   Yes   No X     If yes, crosslisting department and number:

Credit: 1/2   Hours/week: 6 in one module

One-time:     or    Permanent Offering: X

Instructor: Darrah Chavey

How will this course be taught, given present staffing, without creating a course overload?

This course proposal is part of a comprehensive change to the computer science curriculum. The course load under this proposal will not create an overload.

Are there any course fees? If so, specify what the course fees are intended to cover.

None

Prerequisite(s):

Computer Science 121 or experience with programming.

Catalog description (50-150 words, please):

If applicable, include the following language at the end:  “May be repeated for credit if topic is different.”

An introduction to programming in Java. Students are presumed to have substantial programming experience in some language, but not necessarily in Java. The first half of the course focuses on the basic programming constructs in Java, with particular emphasis on the writing techniques that have become standard for specifying and documenting computer programs. The second half of the course focuses on the methods of object-oriented programming, including the use of standard Java objects and the creation of new objects. Testing techniques are emphasized throughout. (LW)

Additional course content description (aims, purposes, etc.) beyond the catalog description:

A second course in programming, this concentrates on the Java programming language and the programming paradigm known as Object-Oriented Programming, wherein data objects are responsible for performing data transforming operations on themselves. Object-Oriented Design is used to analyze problems and plan solutions. This includes specification, design, implementation, and testing. We will use "JUnit Testing" routines to improve the testing of objects, and of programs that use those objects. Students will learn the basics of how to write and document programs in the style of computer professionals, including the use of JavaDoc to create Web documentation for their programs.

Students will learn how one uses the techniques of object oriented analysis to decompose the solution of a problem into more tractable problems. Most data structures will be introduced as "canned" objects that can be manipulated during the solutions of other problems; these include arrays, sets, vectors, and linked lists. Students will also program some simple objects of their own.

Students will use an "automatic code generating" system to aid in the construction of programs with a graphical user interface (GUI). The system will construct the GUI elements as objects that the student can then manipulate. Inheritance of object capabilities by newly constructed objects will be demonstrated using both GUI elements and traditional data structures. In the process, students will learn how to create event-driven programs.

The lettered/numbered lines below come from CC2001. Underlined items are considered essential to a basic curriculum in computer science. Numbers in () indicate minimum number of hours to cover in a lecture style according to CC2001.
Items with a * indicate we plan to cover them in multiple courses.
Other lines include additional topics we plan to cover or clarification of topics we will cover within a CC2001 topic.

Course goals/objectives/outcomes: 

Course structure. Check all that apply:

 Lecture/Discussion  X     Studio     Lab/Workshop X    Other (Specify)

If current library or equipment holdings are inadequate, estimate the cost of additional holdings required.

adequate.

Please attach names of a proposed text and/or core readings.

Form revised 11/04