University of West Florida
Department of Computer Science
COP3022 - Intermediate Programming


Instructor and Contact     

Dr. John W. Coffey,

Bldg 4, rm 434



Course Description:

An intermediate course in object-oriented programming. Topics include object oriented modeling, algorithms, inheritance, polymorphism, input/output, exception handling, recursion, event driven programming, and basic GUI programming. Emphasis will be on issues of object-oriented design and good programming practices. Students entering this course are expected to have solid knowledge of programming in the object-oriented paradigm.

COP 2253 or similar Intro Java course

Student Learning Outcomes:


Upon successful completion of this course, students will be able to:

Course Topics:

         Review of object-oriented design and programming; basic principles of object-oriented programming: abstraction, encapsulation, classes and methods; emphasizing class design and modeling UML.

         Input/output; exception handling; exceptions in the I/O classes; exception class hierarchy; creating exception classes

         Multi-dimensional arrays; dynamic arrays and ArrayList classes.

         Recursive programming; run-time stack and activation records

         Multi-dimensional arrays; dynamic arrays and ArrayList classes.

         Polymorphism; abstract classes and interfaces; typecasting; static methods and wrapper classes; container/collection classes and iterators

         Event-driven programming: event-handling methods,

         Database connectivity and Java Server Pages

         GUI programming: user interfaces, event handling


Absolute Java, Savitch, 6th edition


Dia: Dia is a terrific UML diagramming program that is free to download. We will be using it in this class.

Download Dia at this website.

Grading & Evaluation

Tests 17.5% + 17.5% + 25% = 60%
Programming Assignments 5 x 8% = 40%

Test Policy:
Tests other than at designated times will be given only when significant extenuating circumstances make it impossible for the student to take the test at the regular time. No makeup tests will be given unless students make arrangements in advance or provide official documentation of the problem that prevented them from taking the test. Tests are typically closed-book, closed-note, cell phones turned off and stowed. Students will not be allowed to leave the room during the conduct of the test.

Reviews (posted before each exam)

Exam 1 Review

Exam 2 Review

Final Exam Review

Academic Conduct and Plagiarism

 The Student Code of Conduct (pdf) sets forth the rules, regulations, and expected behavior of students enrolled at the University of West Florida. Violations of any rules, regulations, or behavioral expectations may result in a charge of violating the Student Code of Conduct. It is the student’s responsibility to read the Student Code of Conduct and comply with these expectations. The Academic Misconduct Policy (2009) defines various forms of academic misconduct and describes the procedures an instructor should follow when he or she suspects that a student has violated the Academic Misconduct Policy.

Assistance for Students with Special Needs

The University of West Florida supports an inclusive learning environment for all students. If there are aspects of the instruction or design of this course that hinder your full participation, reasonable accommodations can be arranged. Prior to receiving accommodations, you must register with the Student Disability Resource Center. Appropriate academic accommodations will be determined based on the documented needs of the student. For information regarding the registration process, email or call 850.474.2387.

Veterans Services

The UWF Military & Veterans Resource Center (MVRC) serves as a leading campus advocate for military and veterans students, working to ensure the needs of these individuals are met through coordinating with multiple university offices and services. The center provides assistance with the following: GI Bill ® education benefits, active duty tuition assistance, out of state fee waiver, tutoring, paper reading, counseling, disability accommodations, coordinating academic advising and referral to state /federal resources and services. The MVRC is located in bldg. 38. For more information on MVRC service, call 474-2550 or visit

Programming Projects: Programming projects are an important part of this course and they are always individual projects.


All projects will require technical and user documentation. For object-oriented programs, we will develop class diagrams as the technical documentation. Here is a link to basic UML diagrams including class diagrams:

Overview tutorial on class diagrams

User documentation is a user's manual that contains all details necessary to run the program.

Important Note on Programming assignments: You may think that some details are lacking in these programming assignments. It is deliberately so. Real-world clients rarely have a clear idea of what they want or need in their software, and it is an important responsibility of anyone participating in the software development process to clarify vague or ill-specified details. I will be happy to answer any questions you might have, preferrably in-class so that others might benefit from your insights.

Programming Project Policies:
Projects will be graded on whether they correctly solve the assigned problem, whether they are adequately commented, and whether they adhere to good programming practices. Projects must be handed in by the due-date. Incomplete projects may be submitted by the due date for partial credit. Projects will not be accepted after the due date.

Each of your program source code files must have a header with the following information:

  Student Name:
  File Name:
  Assignment number

  Other comments regarding the file - description of why it is there, etc.

Each method should have a banner header coded in javadoc style.

All programs will be submitted through the dropbox for the course which is located at

Template Grading sheet:
You may view  a generic grading sheet online here.

Course Overheads

Course overheads will be available for download in eLearning.

Please note:
The overheads will change slightly throughout the semester as I discover and correct errata and as I seek to make them more clear or complete.

Tentative Schedule

Note - Schedule changes made in class always supercede information that is posted here.

Week Starts* Topic
1   Aug  22 Introduction to the Course,  Review Arrays, ArrayLists (Prog1 assigned)
2           29 Arrays, ArrayList, Inheritence
3  Sept    5 Inheritence
4          12 Polymorphism, Interfaces (p1 due**, Prog2 assigned)
5           19 Interfaces
6           26 Test #1
7  Oct     3 Input/Output, Exceptions, Swing  ( p2 due**, Prog3 assigned)
8           10 Input/Output, Exceptions, Swing
9           17 Database
10     ***24 Database (p3 due**, Prog4 assigned)
11           31 Recursion
12 Nov     7 Recursion, , Java Server pages (p4 due**, Prog5 assigned)
13           14 Test #2 
14           21 Object-Oriented Design
15           28 Review, Catch up (p5 due**)
16  Dec     5 Final Exam,  Wednesday, 8:00-10:30am

 * Dates in the schedule are the Monday of the week:

** The due-date for assignments is always the Thursday of the week in which they are due.

*** October 28 is the last day of the term for withdrawal from an individual course with an automatic grade of "W."