Advanced Java
Programming (0368-3348)
Submission Guidelines
General
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.
Procedural Issues
·
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
·
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).
Hardcopies
·
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 (system@cs.tau.ac.il) 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 java-checker@cs.tau.ac.il
(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.
Grading Criteria
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.
Design
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.
Implementation efficiency
Your
programs are expected to be reasonably efficient.
Documentation
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.
Honesty
No extra
points will be given for honesty. Any suspicion of deception, however, will
cause immediate and severe steps.
Good
luck