Dr. Nate Chambers
Capt. Matthew Sikora, USAF

ABET Learning Objectives

  1. Adapt knowledge of programming in C++ to Java
  2. Understand the use of objects in Programming
  3. Understand the principles of Object-Oriented Programming (OOP) including Encapsulation, Information Hiding, Inheritance, and Polymorphism
  4. Understand how to use advanced Java features such as threads, GUIs, and network programming

ABET Program Outcomes

This course contributes to the following ABET program outcomes that you should be able to do upon graduation:

  1. (Outcome c) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs;
  2. (Outcome e) An understanding of professional, ethical, legal, security, and social issues and responsibilities;
  3. (Outcome g) An ability to analyze the local and global impact of computing on individuals, organizations, and society.

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.


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.

Honor and Academic Integrity

You are required to abide by the USNA and department honor policies at all times, including, but not limited to: The Honor Concept of the Brigade of Midshipmen, the Policies Concerning Graded Academic Work, and the departmental Policy Concerning Programming Projects, found at

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.

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.


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.

Submission TimePenalty Days
By the due date and timeNone
One minute after due time1 day
23 hours and 59 minutes after due time1 day
24 hours and 1 second after due time2 days
etc.n days