Dr. Nate Chambers
Capt. Matthew Sikora, USAF
ABET Learning Objectives
- Adapt knowledge of programming in C++ to Java
- Understand the use of objects in Programming
- Understand the principles of Object-Oriented Programming (OOP) including Encapsulation, Information Hiding, Inheritance, and Polymorphism
- 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:
- (Outcome c) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs;
- (Outcome e) An understanding of professional, ethical, legal, security, and social issues and responsibilities;
- (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.
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 http://www.usna.edu/CS/resources/honor.htm.
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.
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 Time||Penalty Days|
|By the due date and time||None|
|One minute after due time||1 day|
|23 hours and 59 minutes after due time||1 day|
|24 hours and 1 second after due time||2 days|