Object-Oriented Programming (Java)

Object-Oriented Programming (Java)


Credit Summer 2019
05/28/2019 - 07/30/2019

Course Information

Section 001
Distance Learning
Richard Baldwin

Office Hours

  • Sa
    See Note - --->
    See Note --->
    Due to some medical issues, office hours this semester will be limited to:
    1. Telephone at any time - leave message if no answer: (512) 223-4758
    2. Email at any time
    3. Video conference by appointment
    4. On-campus by appointment
    Don't hesitate to email or phone for an on-campus or video appointment.

Course Description / Rationale

YOU SHOULD NOT NEED TO PURCHASE A TEXTBOOK FOR THIS COURSE. Most students find the free online material that I have provided to be sufficient for you to succeed in this course. In any event, I recommend that you defer the purchase of a textbook until after you have an opportunity to view the assignments in Blackboard. If you do decide to purchase a textbook, a used copy with no CD should suffice.

Also note that if you do purchase a textbook, it should be the book by Guzdial and Ericson described in the READINGS section of this syllabus and not the book used by instructors in other sections of this course.

This syllabus applies to all sections of ITSE 2321 OOP taught by Prof. Baldwin including:

Important Notes

  • See the Main Web Page for this course here for additional information.
  • All students enrolled in this course are required to complete online orientation at the beginning of the course.  Click here and follow the instructions to complete the orientation process.

    Then open your Blackboard course, read the Announcements, and select Orientation Test00 in the menu on the left side of the page. You must successfully complete Test00 with a score of at least 80 before you can view and begin working on your assignments. If you don't achieve a score of at least 80 on your first attempt, keep reading the orientation material and repeating the test until you achieve a score of at least 80. When you achieve a score of at least 80, select Assignments-Encap in the Blackboard menu on the left and the first four assignments should become visible. If you fail to do this within the first few days of the course, you may suffer administrative penalties, which may include being administratively dropped from the course and the loss of eligibility for financial aid. (See the announcement regarding being declared as "Never Attended" in Blackboard.)

Logical steps for starting and completing this course

  1. Begin by reading this syllabus in its entirety paying particular attention to the section titled Course Requirements.
  2. Access the Assignment-XXX and TestXX sections for the course on Blackboard to get more specific information regarding the Assignments and the Tests.
  3. Access Instructions for Downloading and Submitting Assignments to get specific instructions for downloading and submitting assignments.
  4. Access Instructions for Accessing and Taking Blackboard Tests to get specific instructions for accessing and taking Blackboard tests.
  5. Go to Follow the link to the Main page for your course, complete the online orientation, and confirm completion as described above.
  6. Complete the orientation test identified as Test00 with a score of at least 80-percent to cause the first four assignments to become visible in Blackboard.
  7. Follow the links to the learning resources provided at in order to complete the assignments, take the tests, and successfully complete the course.

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-

Student Learning Outcomes/Learning Objectives

IMPORTANT: See the link to the Main Web Page for this course on the 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

Accelerated Programmer Training (APT) Competencies

  • Encapsulation - Demonstrate the ability to make effective use of object-oriented encapsulation.
  • Inheritance - Demonstrate the ability to make effective use of object-oriented inheritance.
  • Polymorphism and Collections - Demonstrate the ability to make effective use of object-oriented polymorphism and the Java Collections Framework.

Scans Competencies

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

  • Time: Selects goal-relevant activities, ranks them, allocates time, and prepares and follows schedules
  • Acquires and evaluates information
  • Organizes and maintains information
  • Interprets and communicates information
  • Uses computers to process information
  • Understands Systems: Knows how social, organizational, and technological systems work and operates effectively with them
  • Selects Technology: Chooses procedures, tools, or equipment, including computers and related technologies
  • Applies Technology to Task: Understands overall intent and proper procedures for setup and operation of equipment
  • Reading: Locates, understands, and interprets written information in prose and in documents such as manuals, graphs, and schedules
  • Arithmetic: Performs basic computations; uses basic numerical concepts such as whole numbers, etc.
  • Mathematics: Approaches practical problems by choosing appropriately from a variety of mathematical techniques
  • Listening: Receives, attends to, interprets, and responds to verbal messages and other cues
  • Problem Solving: Recognizes problems and devises and implements plan of action
  • Seeing Things in the Mind's Eye: Organizes and processes symbols, pictures, graphs, objects, and other information
  • Reasoning: Discovers a rule or principle underlying the relationship between two or more objects and applies it when solving a problem
  • Responsibility: Exerts a high level of effort and perseveres towards goal attainment

-end of Outcomes-


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

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

ISBN-10: 0131496980
ISBN-13: 9780131496989

Before purchasing this textbook, you should see the note regarding a textbook in the above section titled COURSE DESCRIPTION / RATIONALE

Primary Teaching Vehicles:

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 may not be allowed to print 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 the lab manager 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 Oracle at

For working at home, you will need to download and install the Java SE 8uX (latest released update). You should probably avoid the bundles that also contain Java EE, NetBeans, etc. All you will need is the SE that includes the JDK and the JRE.

Also see the link to the Ericson library in the Course Requirements section of this syllabus.

All you really need to develop the required programs for this course are a text editor and the JDK described earlier. However, if you elect to use an IDE for program development, several are freely available for downloading on the web. Some students prefer DrJava, which should run on any computer that has a compatible Java JRE installed. I personally prefer the free version of JCreator. JGrasp and BlueJay are other popular Java IDEs. You can find these IDEs and others as well through a Google search.

-end of Readings-

Course Requirements

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

Assignment and Test Schedules

During the Fall and Spring semesters, this course is offered during the 16-week, 12-week, and 8-week sessions. In the summer, the course is offered in the 9-week session. The information in this section of the syllabus is intended to apply to all four sessions.

You must complete and submit the following sixteen items:

  • One take-home orientation test before beginning work on the programming assignments. This test carries the same grade value as a programming assignment. (See Orientation Test00 in the left-side menu in Blackboard.) This test is further described in the document titled Instructions for Accessing and Taking Blackboard Tests and in the Course Description / Rationale section of this syllabus.
  • Twelve take-home programming assignments -- four for each of the three competencies. (See Assignments-Encap, Assignments-Inher, and Assignments-Poly in the left-side menu in Blackboard). Also see Instructions for Downloading and Submitting Assignments.
  • Three proctored Blackboard competency tests -- one for each of the three competencies. Each test carries the same grade value as a programming assignment. (See Test01, Test02, and Test03 in the left-side menu in Blackboard.) These tests are further described in the document titled Instructions for Accessing and Taking Blackboard Tests and in the Course Description / Rationale section of this syllabus.

You may submit each assignment up to two times on or before the submission deadline explained below. Your highest score among the two scores for each assignment will be used to compute your final grade.

You may take Test00 an unlimited number of times on or before the submission deadline. The submission deadline for Test00 is the same as the submission deadline for Test03 at the end of the semester. (However, you need to achieve a score of at least 80 on Test00 very early in the semester to gain access to the assignments. You can continue taking it until the end of the semester in an attempt to improve your score.) Your highest score among the scores for Test00 will be used to compute your final grade.

You may take the proctored Test01, Test02, and Test03 up to two times each on or before their respective submission deadlines Your highest score among the scores for each test will be used to compute your final grade.

The submission deadlines for these sixteen items vary depending on the session in which you are enrolled. You can find the submission deadline for each item by opening your course in Blackboard, selecting Tools from the left-side menu, and selecting My Grades. You can also find the submission deadline for each item by opening your Blackboard calendar. It will not be possible for you to submit an item after 11:59 PM on the date shown.

Note that submission deadlines may fall on holidays or on other days that the campus is closed. If so, you need to anticipate that circumstance and make appropriate arrangements in advance to avoid missing a deadline.

Because the deadline for Test00 falls on the same day as the deadline for test03, there are 15 unique deadlines (twelve for assignments and three for tests).

For general planning purposes, the deadline for the first assignment (Asg01) in the 16-week session is approximately four weeks following the first day of class. The remaining fourteen deadlines occur approximately every six days thereafter. The deadlines for the three proctored tests follow the deadlines for Asg04, Asg08, and Asg12.

The startup time and the time interval between deadlines is correspondingly shorter for the 12-week, 9-week, and 8-week sessions.

You are permitted and encouraged to submit your assignments and to take your tests early.

Code of conduct and copyright protection regarding assignments

Your professor is the copyright holder for all assignments used in this course. To receive credit for an assignment, you will be required to attest to a short-form certification statement similar to the following when you submit each assignment: "I certify that this program is my own work and is not the work of others. I agree not to share my solution with others."

The above statement is referred to as a short-form certification because it is intended to remind you that by enrolling in and pursuing this course of study, you agree to the following terms:

  • To the best of your knowledge (unless you explain otherwise), the solution that you submit for each assignment meets the requirements of the assignment.
  • The solution that you submit is your own work and is not the work of others.
  • You agree not to share the solution with anyone other than your professor now or in the future without the express written permission of your professor.
  • You agree not to distribute or publish the solution now or in the future without the express written permission of your professor.
  • You understand that failure to comply with these requirements could be a violation of ACC's Student Standards of Conduct and could be a violation of federal copyright laws and could therefore be subject to appropriate disciplinary action.

Academic Testing Centers

This course may require you to complete one or more online Blackboard tests in an ACC Academic Testing Center. If so, it is your responsibility to make all necessary arrangements with the testing center to complete the tests, including accessibility, hours of operation, etc. It is also your responsibility to comply with the Testing Center Guidelines. (In the event that you find the above link broken, you can search for and access testing center requirements from the main ACC web site.)

Classroom testing

Students enrolled in a classroom section must complete the online Blackboard tests during a regularly scheduled class or lab period AND must request to take the test during the first five minutes of the class or lab period.


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, loop, data types and methods (with and without parameters) using a modern structured programming language, you may find it difficult to succeed in this course.

Ericson Library Compatibility

Many of the programs that you submit must be compatible with Ericson's free media library. You must download and use the version named at For more information, see In the event that one or both of those links become broken at some point in the future, you will find a download link for the library here. You can also download a zip file containing the library by opening the Multimedia Library item in the left-side menu in your Blackboard course.

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 

Each of the sixteen assignments and tests listed earlier will be weighted equally when computing your final grade. 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-

Course / Class Policies

IMPORTANT: See the link to the Main Web Page for this course on the 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 can recall having given a student a temporary grade of "I" only once 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 the student wishes to withdraw from this course. The last date to withdraw 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 course even though the instructor has the prerogative to do so under various circumstances. For example, the instructor may elect to withdraw students from the course if he notices at some point that any one or more of the following is true:

  • The student has failed to successfully complete and submit three or more assignments or tests in a row. (Successful completion is defined as a grade of at least 70-percent on the assignment or test.)
  • There is insufficient work remaining for the student to earn a final grade of at least 70-percent in the course.
  • The student has given the instructor reason to believe that the student is not actively engaged in the course.

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 or if the student is withdrawn from the course by the instructor.  If the student fails to complete the work and also fails to properly withdraw (and is not withdrawn by the instructor), a grade of A, B, C, D, or F will be assigned in accordance with the work that was completed.

State law regarding withdrawals:
My interpretation -- no more than six course withdrawals allowed 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 the official ACC interpretation.

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.

Concealed Handgun Policy
The Austin Community College District concealed handgun policy ensures compliance with Section 411.2031 of the Texas Government Code (also known as the Campus Carry Law), while maintaining ACC’s commitment to provide a safe environment for its students, faculty, staff, and visitors.

Beginning August 1, 2017, individuals who are licensed to carry (LTC) may do so on campus premises except in locations and at activities prohibited by state or federal law, or the college’s concealed handgun policy.

It is the responsibility of license holders to conceal their handguns at all times. Persons who see a handgun on campus are asked to contact the ACC Police Department by dialing 222 from a campus phone or 512-223-7999.

Refer to the concealed handgun policy online at

-end Policies-

Course Subjects

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

Schedule of topics for the course

Classroom lectures and discussions will be based primarily on material from the Multimedia section of Baldwin's EBook titled ITSE 2321 - Object-Oriented Programming (Java):

  • 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

Online tutorials and sample programs for most of these topics are available at ITSE 2321 - Object-Oriented Programming (Java).

In addition to the Multimedia topics listed above, students will be expected to study and understand the following topics, which are based primarily on the books Java OOP Self-Assessment and Programming Fundamentals with Java plus the sections titled Essence of OOP, The Java Collections Framework, and Practice Programs in Baldwin's EBook titled ITSE 2321 - Object-Oriented Programming (Java):

  • 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
  • What is a Collection
  • Purpose of Framework Interfaces
  • Purpose of Framework Implementations and Algorithms
  • Core Collection Interfaces
  • Duplicate Elements, Ordered Collections, Sorted Collections, and Interface Specialization
  • The Comparable Interface
  • The Comparator Interface
  • The ToArray Method

-end of Subjects-

Creative Commons License This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.