Object-Oriented Programming (Java)

Object-Oriented Programming (Java)


Summer 2011
05/23/2011 - 07/24/2011

Course Information

Section 005
Distance Learning
Richard Baldwin

Office Hours

No office hours have been entered for this term

Course Description / Rationale

IMPORTANT: See the Main Web Page for this course at for additional information, including a requirement for online orientation.

Course Description

Introduction to object-oriented programming. Emphasis on the fundamentals of structured design with classes, including development, testing, implementation, and documentation. Includes object-oriented programming techniques, classes, and objects  The Java programming language is used as the teaching vehicle for this course.  Also see the Expanded Course Description.

Course Rationale

This course is designed to teach Object-Oriented programming concepts, techniques, and applications using the Java programming language.

-end Description-

File: Description.htm

Student Learning Outcomes/Learning Objectives

IMPORTANT: See the link to the Main Web Page for this course on the Lighthouse Course Description / Rationale page for additional information about this course, including a requirement for online orientation.

Course Objectives/ Learning Outcomes

To learn Object-Oriented programming concepts and techniques using the Java programming language. To learn to write, test, and debug introductory level Object-Oriented programs using Java.  In addition, the student will be introduced to the following concepts, which are important workforce activities:

  • Design/Develop Program
  • Implement Program
    • Write code
    • Perform unit testing
    • Integrate subsystems
    • Resolve defects and revise and adapt existing code
  • Test and Validate Program
    • Develop test procedures
    • Perform tests

Scans Competencies

Refer to for a compete definition and explanations of SCANS. The following list summarizes SCANS competencies addressed in this course.

The following is a summary of the Scans Competencies attributable to this course with the following scale:

1 – Concept
2 – Application
3 – Advanced

Competencies not covered by this course are not listed.

C1 Time:  Selects goal-relevant activities, ranks them, allocates time, and prepares and follows schedules.


C5 Acquires and evaluates information.


C6 Organizes and maintains information.


C7 Interprets and communicates information.


C8 Uses computers to process information.


C15 Understands Systems:  Knows how social, organizational, and technological systems work and operates effectively with them.


C16 Monitors and Corrects Performance:  Distinguishes trends, predicts impacts on system operations, diagnoses systems performance, and corrects malfunctions.


C18 Selects Technology:  Chooses procedures, tools, or equipment, including computers and related technologies.


C19 Applies Technology to Task:  Understands overall intent and proper procedures for setup and operation of equipment.


F1 Reading:  Locates, understands, and interprets written information in prose and in documents such as manuals, graphs, and schedules.


F3 Arithmetic:  Performs basic computations; uses basic numerical concepts such as whole numbers, etc.


F4 Mathematics:  Approaches practical problems by choosing appropriately from a variety of mathematical techniques.


F5 Listening:  Receives, attends to, interprets, and responds to verbal messages and other cues.


F9 Problem Solving:  Recognizes problems and devises and implements plan of action.


F10 Seeing Things in the Mind’s Eye:  Organizes and processes symbols, pictures, graphs, objects, and other information.


F12 Reasoning:  Discovers a rule or principle underlying the relationship between two or more objects and applies it when solving a problem.


F13 Responsibility:  Exerts a high level of effort and perseveres towards goal attainment.



-end of Outcomes-

File: Outcomes.htm


IMPORTANT: See the link to the Main Web Page for this course on the Lighthouse Course Description / Rationale page for additional information about this course, including a requirement for online orientation.

Textbook: Introduction to Computing and Programming with Java: A Multimedia Approach.

ISBN-10: 0131496980
ISBN-13:  9780131496989

This is the textbook from which I will draw most of the material for the in-class lectures.

Primary Teaching Vehicles: Baldwin’s Introductory Java Tutorials available at in addition to the textbook.

Recommended Self-Study OOP Material: BlueJ, Greenfoot, and Processing

Recommended Supplementary Text:  The Java Tutorials, available for free downloading from

Recommended Supplementary Text: Thinking In Java by Bruce Eckel.  Available for free downloading at

Recommended Supplementary Text: Java In A Nutshell, (latest edition), by David Flanagan.  This is an outstanding desktop reference on Java programming.  Although I don't have any statistics to prove it, I believe this is the best-selling Java book of all times.  However, it is not a textbook.  It is a reference book and beginners may find it a little brief and cryptic.

Downloading Online Material at ACC Labs: Note that although you will be allowed to download these online materials in the ACC labs, you are specifically prohibited from printing them using ACC facilities.

Software: It should not be necessary for you to purchase any software in order to complete this course successfully.

As a student, you have access to the CIS labs at the various ACC campuses.  You should find the appropriate Java software available at NRG, CYP, RGC, RVS and PIN and possibly other campuses as well.  If you don't find that software available at another campus, ask the lab manager at that campus to coordinate with Betty Jones at NRG and to install the same software there that is installed at NRG.

Assuming that you have private access to a computer with an operating system that supports the latest version of the Java Virtual Machine, all of the Java software that you will need can be downloaded for free from Sun at

For working at home, you will need to download and install the Java Platform, Standard Edition, JDK 6 Update (latest released update). You should probably avoid the bundles that also contain Java EE, JavaFX, NetBeans, etc. All you will need is the JDK with the included JRE.

-end of Readings-

Course Requirements

IMPORTANT: See the link to the Main Web Page for this course on the Lighthouse Course Description / Rationale page for additional information about this course, including a requirement for online orientation.

Exam Schedule

See the published schedule for the beginning and ending dates of the semester.

  • All students must complete and submit the first exam not later than 8:00am on June 13, 2011.
  • All students must complete and submit the second exam not later than 8:00am on July 4 2011.
  • All students must complete and submit the third exam not later than 8:00am on July 22, 2011.

The word "submit" means received by and physically in the hands of the instructor.  Submit early. Don't procrastinate and let a last minute problem cause you to miss a deadline.

Because you will have the exams available to work on during most of the semester, there will be no grace period and no makeup possibility.  Barring a genuine emergency (such as an extended stay in the hospital) failure to submit an exam by the deadline will result in a maximum allowable score on the exam of zero.


Prerequisites: See the ACC course catalog for the official prerequisites. This is not a beginning programming course and fundamental programming concepts will not be covered. If you don't already understand fundamental programming concepts including sequence, selection, and loop using a modern structured programming language, you may find it difficult to succeed in this course.

Examinations: All students must meet the examination requirements described below. Exams for this course are to be taken at home and submitted to the instructor in accordance with a companion document entitled Instructions for Downloading and Submitting Exams.

Because the exams are take-home exams, the amount of work required to complete an exam, and the range of material covered by each exam is greater than you might ordinarily expect to be the case with a classroom exam.  In short, you should view each exam as a major programming project.

All students must successfully complete three exams by the deadlines specified above. You can complete and submit the exams ahead of the deadline if you wish but I usually save them and grade them all at the same time.

Exams will be made available for downloading via the web early in the semester.  You should check the Main Web Page for this course (see the link given above) on a daily basis so that you will know when the exams are available.

Your best preparation for the exams will be to carefully study the sample programs in the lessons in Baldwin’s Introductory Java Tutorials in addition to the material in the textbook. You can view the tutorials on line and download the individual lessons via your browser.  It might also be useful for you to review my companion publication entitled Test Your Java Knowledge.  In addition, it will be necessary for you to do quite a lot of outside research into Java programming topics not covered in the classroom, and possibly also not covered in the introductory tutorials.

Note that the lessons in the tutorial may be updated during the semester so you will need to be aware of the revision dates on the lessons and take any updates into account.

All exams are "open-book" exams. You may use any books, notes, diskettes, or other material that you have available. However, you are instructed not to obtain assistance from anyone else in completing an exam. 

Programming Assignments: Your exams are your programming assignments.

Java Software Compatibility: You are free to use whatever Java compiler you choose subject to the conditions described later regarding submittal of exams. ACC will provide JDK 6 (or later) in the CIS laboratory at the Northridge campus. You are welcome and encouraged to make use of that facility.

The final version of the programs that you submit for exams, must include source code files, class files, any required image files, and any required sound files. Those files must be compatible with the version of Sun's JDK installed in the NRG laboratory on the due date of the exam. Among other things, this means that you must use Sun's JDK 6 or later.  (Please read the Preface in my lesson entitled Generics in J2SE 5.0 to understand Sun's nomenclature regarding the different versions of Java, although that explanation may be somewhat dated now that JDK 6 has been released.)

In addition, some of the programs that you submit for exams must also be compatible with Ericson's media library.  Although there is a copy of the media library on the CD in the back of the textbook, the version in my textbook is lacking some features and has a few known bugs.

For working at home, you wil need to download the Java 1.5+ version:  This version has some new features as seen at New Features in 8-14-07 or later bookClasses.  For more information, see

Grade Policy:  Your grade will be based both on concepts and practical application.

Grading Scale: Letter grades will be assigned as follows:
90% - 100% A
80% - 89%  B
70% - 79%  C
60% - 69%  D
 0% - 59%  F

Depending on the final scores of all the students taking the course, it is possible that a curve may be applied to the final grades before they are submitted for recording.

-end of Requirements-

File: Requirements.htm

Course / Class Policies

IMPORTANT: See the link to the Main Web Page for this course on the Lighthouse Course Description / Rationale page for additional information about this course, including a requirement for online orientation.

Although it is technically possible for a student to transfer from one section to another section of the same course, this process has caused many problems in the past, and is not allowed unless the reasons for the transfer are compelling.  Students desiring to transfer between CIS/CSC courses must first obtain permission from an Assistant Dean for CIS/CSC who will initiate the paperwork.  (Note, however, that I will allow you to informally transfer between my in-class section and my distance-learning section of the same course at any time during the semester in those semesters where both are available.)

Here is the official information that I have received regarding Incomplete grades:

A student may receive a temporary grade of "I" (Incomplete) at the end of the semester only if ALL the following conditions are satisfied:

  1. The student is unable to complete the course during the semester due to circumstances beyond their control.
  2. The student must have earned at least half of the grade points needed for a “C” by the end of the semester.
  3. The request for the grade must be made in person at the instructor’s office and necessary documents completed.
  4. To remove an “I”, the student must complete the course by two weeks before the end of the following semester.  Failure to do so will result in the grade automatically reverting to an “F”.

To give you an idea of the gravity of the situation, I don't recall ever having given a student a temporary grade of "I" during my entire teaching career at ACC.

Freedom of  Expression Policy: 
It is expected that faculty and students will respect the views of others when expressed in classroom discussions.

Academic Integrity:
A student is expected to complete his or her own projects and tests.  Students are responsible for observing the policy on academic integrity described in the Current ACC Student Handbook.

“Acts prohibited by the college for which discipline may be administered include scholastic dishonesty, including but not limited to cheating on an exam or quiz, plagiarizing, and unauthorized collaboration with another in preparing outside work.  Academic work submitted by students shall be the result of their own thought, research or self-expression.  Academic work is defined as, but not limited to tests, quizzes, whether taken electronically or on paper; projects, either individual or group; classroom presentations, and homework”. 

The penalty accessed for violations will be in accordance with the current ACC Student Handbook policy. See  for more information.

Attendance Policy:
The college policy states that students are expected to attend classes and will be held responsible for all material covered in class. Regular attendance helps ensure satisfactory progress towards completion of the course.

(Students enrolled in Open Campus classes are not expected to attend class.  Prof. Baldwin does not call the roll and does not maintain an official record of attendance.)

Withdrawal Policy:
It is the student's responsibility to complete a Withdrawal Form in the Admissions Office if they wish to withdraw from this class. The instructor may withdraw students from this class if their absences exceed 10% of the total number of class meetings. The last date to withdraw for this semester is provided in the ACC Academic calendar for the semester in which the student is enrolled. It is not the responsibility of the instructor to withdraw students from the class even though the instructor has the prerogative to do so under the above listed circumstances.

A grade of "W" will be automatically assigned if the student initiates a withdrawal through the Admissions and Records office, in accordance with the requirements of that office.  If the student fails to complete the work and also fails to properly withdraw, a grade of A, B, C, D, or F will be assigned in accordance with the work that was completed.

ALERT:  New state law for new students:
No more than six course withdrawals throughout your undergraduate education, regardless of how many colleges you attend.  Apparently, students who entered college before fall 2007 are not affected.  Ask a counselor for details.

Students with Disabilities Policy:
“Each ACC campus offers support services for students with documented physical or psychological disabilities. Students with disabilities must request reasonable accommodations through the Office for Students with Disabilities on the campus where they expect to take the majority of their classes. Students are encouraged to make this request three weeks before the start of the semester. (Refer to the Current ACC Student Handbook)”

Testing Center Policy (Open Campus Sections Only):
Visit the ACC web site at Select Search, and then search for the keywords testing center.

-end Policies-

File: Policies.htm

Course Subjects

IMPORTANT: See the link to the Main Web Page for this course on the Lighthouse Course Description / Rationale page for additional information about this course, including a requirement for online orientation.

Schedule of topics for the course

As mentioned elsewhere in this syllabus, classroom lectures will be based primarily on material from the Ericson textbook.  I will present that material generally in accordance with the following list:

  • Creating and Manipulating Turtles and Pictures in a World
  • Image Processing Algorithms, Image Inversion, and PictureExplorer Objects
  • Implementing a space-wise linear color-modification algorithm
  • Abstract Methods, Abstract Classes, and Overridden Methods
  • Indirection, Array Objects, and Casting
  • Using Nested Loops to Process Pixels
  • Cropping, Flipping, and Combining Pictures
  • Green-Screen Processing
  • Darkening, Brightening, and Tinting the Colors in a Picture
  • Interfaces, Object Arrays, etc.
  • Scaling, Rotating, and Translating Images using Affine Transforms
  • Rotating and Mirroring Images Horizontally and Vertically
  • GradientPaint and other Java2D Classes
  • Using Shapes to Clip Images During the Drawing Process
  • Merging Pictures

For the benefit of Distance Learning students, online video lectures for most of these topics are available here.

In addition to the topics listed above, students will be expected to study and understand the following topics, which are based primarily on Lessons 1600 through 1630 at

  • Objects, and Encapsulation
  • Classes
  • Inheritance
  • Polymorphism Based on Overloaded Methods
  • Polymorphism, Type Conversion, Casting, Etc.
  • Runtime Polymorphism through Inheritance
  • Polymorphism and the Object Class
  • Polymorphism and Interfaces
  • Static Members
  • Array Objects
  • The this and super Keywords
  • Exception Handling

-end of Subjects-

File: Subjects.htm