Advanced Java Programming (0368-3348)
The following page describes the submission guidelines for the exercises in the course 'Advanced Java Programming'. The content of the various exercises will be separately detailed.
All the exercises will be checked by a person, some of the exercises will be also checked by an automatic program. Therefore, it is very important to follow carefully the guidelines below. Failing to follow the exact names, directories, files, times, etc. might lead to the failure of the automatic checking mechanism, which in turn, will cause a significant reduction in the exercise grade.
· Each student must submit all the exercises by himself/herself. You may share ideas, but you may not share code lines! Severe actions will be taken against students whose work will be suspected as copied!
· Most of the exercises will be given for a 2 weeks submission period. The exercises should be submitted on Sundays before (both online and in the checker drawer).
· Homework should be submitted on time. Students, who serve in the army during the semester, are asked to present an official confirmation and will receive additional time for submission. Failing to submit the homework in time due to any other reason is unacceptable and will be regarded as if not submitted.
· The exercises will be programs in Java 1.5 and should generate no warnings whatsoever.
· Deliverables - The exercises should be submitted both as jar files (one jar file per exercise) in your Linux directory, and as hardcopies (details are below).
· The printouts should be placed in mail box of the exercise checker (see the course website for his/her details).
· The printouts you submit should be composed of nicely stapled papers. The first page should include the following:
o Your full name
o Your ID number.
o Your user name (login).
o Exercise sheet number.
Then, there should appear the source code of the tasks. Each task should start on a new page, and the number of the task should appear on the top (this may be added with a pen or a marker).
Files and Directories
· For each exercise you should create one jar file as explained in the link working with Eclipse in the course web page. The names of the jar files should be 'exn.jar', where n is the number of the exercise. For example, the name of the jar file for exercise 1 will be 'ex1.jar'.
· The jar file should be submitted on the nova UNIX machine. Specifically, each student should have a subdirectory under his/her home directory, called ~/advJava06b. Under this directory build a subdirectory for each jar file with a corresponding name. For example ex1.jar should be put in ~/advJava06b/ex1/ex1.jar
· You must not touch or change the files you submit after the deadline. Each file has a property of the last time it was changed. Files that are changed after the deadline will be considered as not submitted on time!
· The permissions of the entire path from your home directory down to the exercise files themselves should provide read and execute access for everyone. Details on how to set the permissions can be found on the link working from the labs in Schreiber in the course we site.
Questions and Support
Unclear issues or problems regarding the Linux environment, the nova machine, or any other system relating issues should be directed to the system consultants. They can be accessed via email (email@example.com) or in person in the advisors room on the first floor in Schreiber building, room 019.
Other questions, regarding procedural or programming issues should be coped with in the following order:
1. Read the relevant exercise directions
2. Take a moment and think again whether the question makes sense and cannot be solved alone
3. Check the course's FAQ page to see if the issue was already addressed by the course checker. Questions about the checking procedures, grades, directories and files that were misplaced, etc. please send to firstname.lastname@example.org (your exercise checker).
Exercises should be read upon receiving them. Questions regarding the exercise should be submitted as soon as possible, to allow sufficient time to answer.
The grades will be composed of the following parts:
Submission on time
Handing in printouts after the due date or making any changes in the files after that time are counted as not submitting at all. As a rule of thumb, there will always be an 'objective' problem in the day preceding the submission; a power failure, a printer malfunction, printer running out of paper, etc. Therefore, prepare your homework way in advance. Leave plenty of time for debugging, testing, and dealing with unexpected problems. Unexpected problems are the most expected things in programming projects!
Correctness of the program
The correctness will be checked by an automatic mechanism, and therefore a special care should be taken meeting the exact syntactic requirements.
The programs should be well designed using the concepts studied in class (e.g., object-oriented, design by contract). Divide code into methods and classes.
Your programs are expected to be reasonably efficient.
Any method, field and class should be documented. Designs by Contract assertions are not required unless specified explicitly in the exercise (Nevertheless, they are always nice to have). Using other javadoc taglets (such as @param, @return, etc…) is also not mandatory. The documentation should be generated using the javadoc tool and be included in the jar file. A printout of the javadoc output is not needed (they would be graded from within the source code). Implementation comments should use the // or the /*…*/ syntax (instead of /**…*/).
Readability and Clarity
· Naming - Use intelligent naming for variables, methods and classes
· Indentation - Sometimes a Tab is better than thousands words. Note that the Eclipse editor can do it automatically.
No extra points will be given for honesty. Any suspicion of deception, however, will cause immediate and severe steps.