Syllabus
COP2253: Introduction to Programming in Java
Instructor Contact Information
Mr. Chris Alvin
Email: calvin@uwf.edu
Virtual Office Hours: Day and Times to be Determined
Course Information
Course Web Site: elearning.uwf.edu
Prerequisites or Co-requisites: none
Course Description
Introduction to algorithms and object-oriented programming using Java. Emphasizes developing fundamental programming skills and
software engineering principles in the context of an object-oriented language.
Student Learning Outcomes
Upon completion of the course, students will be able to:
1. Use the constructs of the Java programming language as building blocks to develop correct, coherent programs.
2. Analyze problems, develop object-oriented designs that solve those problems, and transform those designs to Java programs.
3. Understand the fundamentals of object-oriented programming using the Java programming language.
4. Program using the fundamental software development process, including design, coding, documentation, testing, and
debugging.
Topics Covered
Topics include Java language fundamentals, object-oriented design and development, the Unified Modeling Language (UML),
abstraction, encapsulation, class design, data types, methods, parameter passing, introduction to graphics and applets, selection
constructs, repetition constructs, arrays, documentation, testing, and debugging.
Required Textbook
Big Java by Cay Horstmann, 4th edition, ISBN 978-0-470-50948-7, © 2010 Textbook’s companion site
References
1. Sun’s Java site: http://java.sun.com/
2. Java Software Development Kit and Documentation: http://developers.sun.com/downloads/ (JDK 5.0 or above)
3. JGRASP Development Environment: http://www.eng.auburn.edu/department/cse/research/grasp/index.html
Grading
Programming Assignments 30%
Workshop Assignments 15%
Exam 1 12.5%
Exam 2 12.5%
Comprehensive Final Exam 30%
Total 100%
Grading Scale
A 92-100
A- 89-91
B+ 87-88
B 82-86
B- 79-81
C+ 77-78
C 72-76
C- 69-71
D+ 67-68
D 60-66
F 0-59
NOTE: An "I" grade will not be given unless at least 70% of the course work is completed and must be approved by the Department
Chair. A "WF" Grade will be given after the Withdraw deadline which is exactly the same as "F". Last Day of Automatic Withdraw
is posted on the UWF Academic Calendar (and noted on the course schedule: Friday, June 8th).
Online Learning and Contacting the Instructor: Communication
I do not have a physical office on campus. In fact, it is rare that I am on campus. Therefore, I will not have any physical office hours.
Instead, I will offer Elluminate sessions a few times a week to supplement your learning. This is an opportunity for you to ask
questions and have immediate responses.
Teaching this course (and other UWF courses) is a supplement to my full-time job. However, I am available via email and check
regularly during the day. However, I reserve the right to have a life outside of the course; therefore you must be aware of the
following:
• I reserve the right to answer email and reply to discussion forum messages within 24 to 48 hours; however, during the week it
should be much more rapid.
• I reserve the weekend for my family and therefore I reserve the right to not check email or discussion forums from Friday
noon until Monday morning at 8am.
• There may be times when I am not able to answer email during the week until the afternoon.
• I will reply to messages based on priority.
• If you are asking a question about a program, I will need to see your source code. Therefore, please (1) copy and paste the
specific source code into the email an (2) attach the source code file to the email. I ask that you do both because that allows
me to answer questions away from my computer (via my phone).
• General questions on the discussion boards have higher priority, since they will probably help multiple students. This means
individual questions that were emailed have lower priority, although I try to address all questions as soon as possible.
• All course content will be provided via elearning at the beginning of the course.
• I will post assignment clarifications on the appropriate discussion board and update the program specification.
• I will not respond to any inquiry regarding a programming assignment on the day it is due unless I deem the question merits
attention. It is YOUR responsibility to begin assignments early and to stay on top of material. If given two weeks to complete
an assignment and you ask a question about a basic part of the assignment two days prior to its due date, you are not going
about this course properly. Your grade will inevitably suffer.
It is important to understand that waiting until the last minute to complete an assignment is a poor choice in this course since it is
completely online and may require interactions between us via the discussion forums and / or email.
Student Responsibilities for Communication (Policies)
In order to facilitate your learning in this course, please adhere to the following policies.
• All course-related email will be sent to UWF ArgoNet student email accounts, so make sure that your account is active.
Students are responsible for checking their email and the course web site regularly: email once a day, elearning 4-5 times per
week.
• Please post general questions (those that may be helpful to others) on the appropriate discussion board.
• Please try to post responses if you can answer questions that have been posted. This is preferred to my answers since
you, as a class, can learn much from one another’s struggles.
• For more specific questions (e.g., questions and problems that require I look at your code, grade issues), you may email me.
• Please use appropriate email formalities: address me as Mr. Alvin and sign your name. Courtesy, professionalism, and
respect as well as information about who you are much appreciated.
• Since I may be teaching multiple programming courses, please indicate to me what course you are referring to since I may
not associate your name with a specific course in the beginning of the semester.
Virtual Office Hours (Live Elluminate Sessions)
Live Elluminate sessions are an opportunity for you to interact directly with the instructor and have questions answered. I strongly
encourage you to purchase a cheap headset with microphone to communicate with me verbally, not simply via a text window.
Sessions do not require you to interact; feel free to be a lurker. However, live sessions are for you, the student, and you may ask me to
talk about anything related to the course. That is, if you do not have a specific question but you are confused about a topic, ask and I
can develop further examples to help.
If you are not able to attend the Elluminate sessions, you may email me questions ahead of the session as well. I will always post any
recording after the session for your review.
If all else fails, you may request a private Elluminate session where I can answer your specific questions as well as look at any code
you have developed. Requests for private session will only be granted if you have tried and failed using all other methods: discussion
forum, email, and researching online.
Technology Requirements
All programming projects will require using the Java development environment. This environment is available in the SAIL lab in
Building 79. This environment is available in the eDesktop on Argus Software tab or you may download and use it on your personal
computer.
I strongly encourage you to download the software; to do so, follow these instructions.
To work from home, you must install JGrasp and a C++/Java compiler. JGrasp is a front end that:
• provides an editor to type in the program
• issues commands to the actual compiler (we will use MinGW) to create an a.exe executable program (for C++) and
.class files (for Java).
• issues commands to the operating system to execute the a.exe file the compiler created
Install JGrasp
Go to the download section of the JGrasp web site and follow the download and installation instructions.
http://www.eng.auburn.edu/department/cse/research/grasp/index.html
It may help to download the JGrasp Handbook as well; a link to the handbook is located on the JGrasp home page.
Install MinGW
Download the minGW environment (http://sourceforge.net/projects/mingw/files/). On this website, click the "Download Now!"
button. You should have a choice to Run or Save. Choose Run. If you are not given the choice, save the file, go to where you
saved it, and run it by double clicking it.
Install to c:\MinGW\
Go to: Start>Control Panel>System>Advanced>Environment Variables.
Modify the "path" variable to include c:\minGW\bin\
You should now be able to compile C++ and Java programs in JGrasp.
Starting the Course
Go to elearning.uwf.edu and login. Select the programming course. Select the “Content”. If you are reading this document, inevitably,
you were successful in navigating the course website. You should see content for Chapters 1-8 as well as other information. Start by
reading this document carefully and following the instructions on the first assignment (labeled First Assignment). Do not delay in
starting this assignment since it is due in the first few days of class: see the Course Schedule for an exact date.
Each chapter is an instructional unit and will contain Power Point slides, pre-recorded Elluminate videos, and assignments. There is
approximately one chapter assignment and one programming assignment in each instructional unit. Please follow the instructions on
the assignment as well as the submission requirements below.
For this course, there are:
• 8 Workshops (+ First Assignment)
• 6 Programming Projects (1 extra Programming Project)
• 2 Midterm Exams (online via elearning)
• 1 Final Exam (In-Person)
Submitting Non-Programming Assignments (Documents)
Any assignment that is not strictly source code must be constructed in a word processor (Word, Open Office, etc.). Before submitting,
you must create a PDF file; this is standard printing option in most word processors. However, if applicable, CutePDF Writer is
freeware that can be downloaded (http://www.cutepdf.com/).
Submitting Source Code
All the commands in these instructions assume that your name is John Smith.
1. Compile and execute your program one last time. If your program does not compile, the graders will not be responsible for
trying to test it. See “Completing Programming Assignments (Grading Policy)” below for more detailed information.
2. When submitting source code, first delete all extraneous files from the folder where you developed your solution. Extraneous
files include: .class files for Java and *.o or a.exe for C++.
3. When ready to submit, create a ‘zip’ file (standard winzip) of the folder you are submitting. In Windows, Right-Click
> Send To > Compressed (Zipped) Folder.
4. Change the name of the file to -.zip. For John Smith and
workshop 1, he would submit SmithJ-ws1.zip. For Chris Alvin and Program 1, he would submit alvinc-p1.zip.
5. Upload the file via the elearning Dropbox.
6. Check the dropbox to insure that the file was uploaded.
7. There are times when students may fix an error and resubmit an assignment. If an assignment is resubmitted, I will delete,
without inspection, all earlier submissions grading only the last assignment submitted.
Completing Programming Assignments (and Grading Policy)
All programming projects have been constructed with very explicit instructions for your benefit. Every effort has been made to
remove ambiguity. However, there are times when the English language fails and multiple interpretations are possible. In this case,
please post in the discussion forum so that all students may comment and I may answer for the entire class.
Accompanying each programming assignment will be a rubric that describes how grades will be assigned. Please use the
accompanying rubric to help guide you in completing and testing your programming assignments.
A critical element in software development is the need to thoroughly test your code. If you submit a program that does not compile,
you will earn at most 50% of the points. Code that does not compile is extremely difficult to grade effectively, efficiently, and fairly.
Therefore, you must make every effort to submit source code that, minimally, compiles.
In this situation, the definition of compilation is multi-faceted.
1. Your code must compile as a stand-alone unit. If not, 50% will be lost.
2. All of your code must meet all specifications in the assignment in order to compile with my testing code. In most cases, I will
use my own testing code to determine correctness. If your code does not compile with my testing code, you will minimally
lose 50% of all points on each method or function for which compilation fails.
Expectations for Academic Conduct / Plagiarism Policy
As members of the University of West Florida, we commit ourselves to honesty. As we strive for excellence in performance,
integrity—personal and institutional—is our most precious asset. Honesty in our academic work is vital, and we will not knowingly
act in ways which erode that integrity. Accordingly, we pledge not to cheat, nor to tolerate cheating, nor to plagiarize the work of
others. We pledge to share community resources in ways that are responsible and that comply with established policies of fairness.
Cooperation and competition are means to high achievement and are encouraged. Indeed, cooperation is expected unless our directive
is to individual performance. We will compete constructively and professionally for the purpose of stimulating high performance
standards. Finally, we accept adherence to this set of expectations for academic conduct as a condition of membership in the UWF
academic community.
Any occurrence of academic dishonesty, including all forms of cheating and plagiarism, will be punished by a range of punishments
from a grade of zero on the assignment to expulsion from the university. For more information, see the UWF Student Handbook
(http://www.uwf.edu/uwfmain/stuHandbk/).
Exams and Taking Exams on eLearning
There will two midterm exams and a comprehensive final exam. The two midterm exams will be administered under the followings
rules / restrictions:
• Midterm exams will be administered via elearning on the Wednesday of the indicated week.
• Midterm exams will be made available for a 24 hour period: 12:01am to 11:59pm.
• You will have 90 minutes to complete each midterm exam.
• You must use the Respondus Lockdown Browser for the exam. It is available in the CyberLounge, SAIL Lab, and other
computer labs. You may download it for your own computer if you wish (recommended). You can read about it here:
http://uwf.edu/itsdocsandtraining/elearning/respondus/guest.cfm .
• All exams are closed-book, closed-notes, and to be completed individually.
• Tests are graded relative to each other. If you help a friend get a better grade, you have hurt your own grade.
• If you cheat in any way, you have cheated yourself, because you will have to take a face-to-face final exam upon which you
will not be able to cheat. If there is evidence of a large difference between midterm exam scores and what is earned on the
final exam, it will cast suspicion on your grade.
• Makeup exams will NOT be given except with a serious, documented medical or legal excuse. No make-ups will be given
unless students make advance arrangements.
Final Exam
The final exam is comprehensive and is weighted heavily in relationship to the programming assignments; this is by
design. Assistance, resources and time are plentiful for the programming assignments; however, you are on your own during the
exams. An exam is a test of your understanding of the content; therefore, you must prepare extensively for the exams or there will be a
significant difference between your programming grades and your exam grades.
The final exam will be administered at UWF main campus on
December 8, 2012, SSE (Building 4), Room 310 from 9:00am-11:30am
You must make arrangements to take the final exam at the UWF campus or with an approved proctor. If you are not able to take
the exam on campus, you must acquire a proctor who will administer the exam. More information on how to acquire a proctor if you
cannot attend the exam on campus is available at this link: Proctor information at the UWF Online Campus. Arrangements for
proctoring must be made in advance and certain fees may apply.
If you cannot attend the final exam at UWF, I suggest you arrange a proctor early in the course. For the final exam, I will adhere to the
following procedure:
• Approximately six weeks prior to the final exam, I will ask the class about proctoring plans for the final exam.
• You will respond to me, via email, how you plan on taking the exam.
• If you do not meet my deadline for informing me how you will take the exam, I will remove five percent (5%) from your
final exam grade. If you fail to inform me before the final exam, I will not be responsible for your exam and how it is
administered.
Independent of the method by which you take the final exam, you will have to provide photo identification.
Due Dates and Times
All workshop and programming assignments will be due on Friday of the indicated week at 11:59pm. Again, no late assignments will
be accepted. The elearning clock is considered the master clock. That is, if your computer clock differs and you were not able to
submit the assignment via the dropbox, it is late and will not be accepted. Please do not email saying you missed the dropbox and am
hoping I will accept the assignment; I will not since it is your poor planning that lead to the issue. Inevitably, I would copy and paste
this paragraph from the syllabus in response.
As indicated earlier, Exam 1 and Exam 2 will be administered via elearning on the Wednesday of the indicated week.
Other Course Policies
Course programming assignments, announcements, powerpoints, discussion facilities, etc. will be available using the UWF's elearning
system for course delivery. If you have not already done so, you will need to activate your Argus account to access these resources.
Use the Discussion Forum on elearning to submit question and problems; it is the fastest way to get help. Any other student or
instructor may answer your question.
Programming can only be learned by doing, and students need to work extensively on programming assignments or they will not do
well in this course. You should expect to spend 9 to 12 hours per week doing programming work. All work will be done in the
jGrasp environment unless you would like to use another environment (Eclipse, Visual Studio, NetBeans). You may find it
convenient to use a PC at home for program development, but you must ensure that your program runs successfully.
Late Policy
1. You are expected to complete all work according to the course schedule. Deadlines are part of the real world; therefore, you
must be able to meet and /or exceed expectations. Timeliness is an important asset.
2. It is the responsibility of the student to make prior arrangements with the instructor concerning missed
assignments. Documentation of health or family problems will be required.
3. Late workshops and programming assignments will not be accepted.
Additional Information on Late Assignments
At the end of the term I will have an extra optional programming assignment that can be substituted for the lowest workshop or
programming project grade. Therefore, although not recommend since the programs help prepare for exams, you can miss a
programming assignment and it will not affect your final grade. However, because of this policy, I will not accept any late
assignments for any reason (computer malfunction, internet connect failure, job, medical problem etc). In addition, all assignment
must be uploaded to the specified elearning dropbox, emailed assignments will not be accepted.
Re-grading Assignments
It is the student’s responsibility to check graded assignments when feedback has been provided. I will gladly re-grade an assignment
when a question or mistake is brought to my attention. To ensure fairness, I reserve the right to re-grade the entire assignment. As a
result, your grade may increase, decrease, or remain the same. Grades will not be changed after one week from the date graded
assignments are returned to the class. Please feel free to contact the instructor if you have question or need more extensive feedback
related to an assignment.
Participation and Feedback
I encourage active participation and regular feedback. I believe that effective communication between the instructor and students will
make the course more useful, interesting, and productive. Please contact me if you have any questions, concerns, or suggestions!
Important Notes
This is a challenging, programming-intensive course. It gets more difficult as the semester progresses, so please do not fall behind.
Again, you should expect to spend approximately 9-12 hours per week reading, doing exercises, and programming for this course.
This is not a self-paced course. You are required to complete all assignments and programs by the deadlines in the Course Schedule.
Again, I will not accept late assignments except for documented extenuating circumstances.
Communication. In addition to communication via the News and Discussion forums in elearning, I will post to the News section
information about updates, deadlines, links to live Elluminate sessions, exams, etc. It is your responsibility to read the news as it is
posted. I will post a few times a week at most, but it is your responsibility to be aware of announces made on the elearning news. Also
make sure your email account is established and that you check it regularly.
Advice
I have been programming for more than 15 years and spent time as a professional software engineer so sometimes I forget about the
struggles of the “first programming class.” I am not a sage, but there are some important pieces of advice I can share.
• If you receive an error from the compiler you do not understand and cannot resolve, email me. I will be able to fix the issue
fast. If you email me, I am under the assumption that you have already spent a considerable amount of time trying to resolve
the issue on your own.
• If you have a bug in your program and worked for extended period of time to resolve the issue, get up and walk away. Come
back with a clear mind and try to fix the problem. If that fails, email me.
• Unless you are a night owl, do not program late at night. Just as writing a paper when you are sleep-deprived can result in a
poor product, programming suffers in the same way.
• Programming is unlike any other course you have taken. It is frustrating. This is because you not only need to understand and
use a new language, but you are required to solve problems using that language.
I want you to be successful in this course, so I’ve tried to alert you to some things that will maximize the likelihood of success. Now
just add a big helping of effort, participation, questions when you are stumped, etc, and everything will work out fine.
Assistance
Students with special needs who require specific examination-related or other course-related accommodations should contact the
UWF Office of Disabled Students Services (http://www.uwf.edu/DSS/ or telephone 850-474-2387). DSS will provide the student with
a letter for the instructor that will specify any recommended accommodations.
Important Note
Any changes to the syllabus or schedule made during the semester take precedence over this version. Check the course website on
elearning regularly for up-to-date information. I reserve the right to make changes to the schedule or other elements of the course.
Appropriate notification and discussion will precede any changes.