Course Web Page

The course website will be used to post course homework assignments, supplemental notes, labs,
project assignments, and other items of interest to the students. Students are responsible for the
information posted on the course web page. Check it often.

Textbook

Java in a Nutshell, Fifth Ed., Flanagan, O’Reilly, 2005.

We will not often explicitly refer to this text, and we will never assign reading. However, it is an
outstanding reference text, both in the concepts we will be learning, and in the packages that are
included with the Java library. If you’re stuck, it’s a great place to go, and a good book to keep in your
library after leaving the course.

Extra Instruction

The course is designed to be difficult. Many of you will be stuck at some point. Seeking help is not just recommended, but expected. You will be graded based on the understanding that you had every opportunity to seek help before turning something in.

All assignments are considered "routine" unless your instructor specifically indicates that it is a "project". All quizzes and exams must be entirely your own work. The following summarizes these policies as they apply to this course. Consult your instructor if you need further clarification.

Projects: You must do your own work in designing, implementing, and testing your projects without assistance from anyone except for your instructor. Assistance is broadly defined, and includes conversations with other students. You may not discuss the projects with other students. The Department Policy Concerning Programming Projects provides detailed guidance.

Exams & Quizzes: All written exams and quizzes will be closed book. Practicum exams will be given during a lab period. You may only use your paper-based notes, the official class notes from the web, or your textbook for the practicum. On all exams, quizzes, and practicums you may not receive help from anyone.

Labs & Homework: Collaborative conversations with regard to syntax and strategies for accomplishing labs and "routine" out of class programming assignments (labs & homework) other than projects are allowed, however design and implementation must be the work of the individual student handing in the final product. Thus, the actual pencil-to-paper or fingers-to-keyboard work must be your own. Copying a file or parts of a file from anyone is prohibited. Further, looking at another student's code. Midshipmen must clearly state on their assignment who they collaborated with.

Any cheating will result in, at a minimum, a zero for the assignment, quiz, or exam in question. All honor offenses will be reported to the Honor Board.

Grading

This course is part of the transition between "how to program" and "doing useful things with computers."
Because you have been programming for at least one semester, submissions that do not compile will be
treated harshly.

Code should be organized and easily followed. This means following conventions with whitespace and
indenting, descriptive variable names, and comments. This is an important part of making code
"maintainable". Disorganized or hard-to-read submissions will lose points. Our programs will get too
complicated to get away with disorganization.

Homework: Homework will be posted on the course webpage. Homework is due at the beginning of
the next lecture period. Homework may not be turned in late.

Labs: There are weekly labs, except for weeks which feature an exam. Labs are due at the beginning of
the next lab period. Labs may use late days (see below).

Programming Projects: The course features three programming projects. The projects are intended to
be complex enough that you cannot finish them in 1-2 nights. All programming projects are to be done
as an individual effort. See the Honor Section above. Projects may use late days (see below).

Exams: Each exam, excepting the final, will consist of two parts. The first part will assess conceptual
understanding of procedural programming with multiple choice and short answer questions. The second
part will assess procedural programming skills through practical application.

Absences: You are responsible for obtaining any material missed due to an absence. You must ensure
your work is submitted on time regardless of other commitments, i.e. duty, sick call, MO, etc. Should
bona fide emergencies arise, your floating late days are available to you.
Speak with your instructor about any other extenuating circumstances.

Floating Late Days

Unless otherwise specified, assignments are due one minute before lab or class on the due date.

You are encouraged to turn everything in on time like the responsible adult that you are. However, unexpected events do happen, so you have 5 floating late days to use during the semester. You may spread these out over any number of labs/projects. For instance, you may use 3 late days on one lab, and 2 late days on another. After using all of your late days, you will receive a 0 (zero) on any late assignment thereafter.

Weekend days count as full late days. An assignment due on Friday is 3 days late if turned in on Monday.

Floating days are intended to flexibly handle things like illnesses, injuries, and stressful circumstances. You shouldn't have to worry when these things happen. This is your safety net. However, if you use up your 5 days for "trivial" reasons, and then you fall ill, please consider what you're asking before pleading for extra late time.