Department of Computer Science
COP3022 - Intermediate Programming
Instructor and Contact
Dr. John W. Coffey, firstname.lastname@example.org
Bldg 4, rm 434
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.
Student Learning Outcomes:
Upon successful completion of this course, students will be able to:
Perform Object-oriented design and modeling with UML class diagrams to foster development of small multi-class programs.
Compare and contrast arrays and other containers, and develop programs that utilize container classes and arrays.
Describe the need for, and develop programs that provide exception handling.
Describe data persistence and develop programs that persist data by performing file input and output.
Describe event-driven programming. Perform GUI design and programming to create windows and other graphical elements, and to handle a small set of events.
Describe the fundamental concept of a recursive algorithm, the functioning of several actual recursive algorithms, and the flow of control as a basic recursive algorithm executes.
● 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
Textbook: 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%
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
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 email@example.com or call 850.474.2387.
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 http://uwf.edu/militaryveterans
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:
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 elearning.uwf.edu.
Template Grading sheet:
You may view a generic grading sheet online here.
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.
Note - Schedule changes made in class always supercede information that is posted here.
|1||Aug 22||Introduction to the Course, Review Arrays, ArrayLists (Prog1 assigned)|
|2||29||Arrays, ArrayList, Inheritence|
|4||12||Polymorphism, Interfaces (p1 due**, Prog2 assigned)|
|7||Oct 3||Input/Output, Exceptions, Swing ( p2 due**, Prog3 assigned)|
|8||10||Input/Output, Exceptions, Swing|
|10||***24||Database (p3 due**,
|12||Nov 7||Recursion, , Java Server pages (p4 due**,
|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."