Object Oriented Programming Using Java

Overview | Details | Materials | Assignments | Exams | Policies


Overview

Because the real power of Java comes from its object orientation, Java programmers need both object-modeling and coding skills to realize Java's full potential. This course teaches those skills and also explores how they interrelate. Geared for students with no object-oriented knowledge and only introductory Java skills, the course leads students through the entire application production process with a series of practical examples. This process--developing object models, scenario diagrams, and coding--is repeated through the entire course to build the student's skill in producing real-world, practical solutions. Emphasis is on getting students to "think" in terms of objects.

Though not intended to teach Java comprehensively, the course provides enough additional information on Java for students to write significant applications, especially using AWT and threads.

Details

Lectures:
Mondays, 6:30-9:30pm, UCSC Extension Sunnyvale, July 8 - Sept 16 (no meeting Sept 2).
Instructor:
John Panzer <jpanzer@acm.org> (650) 937-4278
Prerequisites:
"Java Programming" or equivalent knowledge of either basic Java programming or some other programming language. Knowledge of object-oriented analysis and design is helpful but not required.
Course email list & message archives:
http://groups.aol.com/ucscxoujs02  (go here and click "Ask to Join")
Course web site:
http://www.johnpanzer.com/ucscx-oop-java-summer02/

Grading:

Based on a series of 4-5 short programming assignments (90% of grade) and an in-class final test (10% of grade). The lowest programming assignment score is dropped and the rest averaged together to form 90% of the course grade. The final letter grades are determined by the combination of assignments and final as follows:

A : 90%+
B : 80-89%
C : 70-79%
D : 60-69%

Materials

Required reading

Jia, Object-Oriented Software Development in Java: Principles, Patterns, and Frameworks (ISBN 020135084X)

(Try bookpool.com and amazon.com; if you're having trouble finding one in stock, bookfinder.com has a good search engine.)

Background reading

Assignments

The majority of the course work consists of several programming assignments. We will walk through the code for a solution on each assignment due date. The lowest score you receive will be dropped and the rest averaged to form 90% of your course grade. (This means that, if necessary, you can miss one assignment without penalty.)

I prefer that assignments be turned in through e-mail. The best way to do this is to attach each source code and output file for the assignment at the end of an email. This will let me give you more precise feedback on your code. If necessary, I can also accept hardcopies. Assignments are due 1-2 weeks after being assigned.

This class assumes that you have access to a computer with version 1.2 or later of the JDK (Java Development Kit). If you do not already have a JDK, you can download version 1.4 from http://java.sun.com. You can also find an IDE there (Forte for Java, Community Edition) if you wish to use it. Nothing in the course will require more than a text editor, a command line compiler, and a web browser or applet viewer (included in the JDK).

Collaboration

Unless otherwise arranged, the programming assignments are to be done individually, and all work submitted must be your own. This helps ensure a fair and uniform experience for all students. This applies to the actual programming; I encourage you to discuss design in class and on the class mailing list. If you do receive major assistance from any source, you must cite it. If you have any questions about the collaboration policy, please ask me.

Having said this, if two people wish to collaborate on class assignments and submit an assignment as a team, I can make arrangements to do this by expanding the assignment. Please see me at the start of class if you wish to do this.

Exams

We will have short quizzes (not graded) throughout the course.

There will be one final exam, worth 10% of the course grade, on the last day of class. The exam is intended to verify understanding of basic object-oriented programming principles. The content will be similar to that of the quizzes.

Policies

Late assignment policy

In general, late assignments cannot be accepted since we walk through solutions in class. I will make exceptions for special circumstances if arranged in advance. (For example, if your work requires you to miss class and you also will miss the walkthrough.)

Grade Options & Incompletes

Please contact me before the last class meeting to change grading options or request an incomplete.