Grading
Annotations
Packages
Exporting and Submitting
Much of the grading for this course is automated. Because of this, you must be careful to follow the instructions exactly. Filenames, directory names, and annotations should all be written precisely to avoid confusion by the automated system. Submission should be done according to the instructions. Mistakes mean extra work for the grader and instructors, and will result in undebatable loss of points.
Start early and test often. Attempting to write an entire program without testing is asking for trouble. When you
are done with a data structure or class, create a
public static void main(String[] args) within the class that creates
instances, tests methods, and prints the results.
Each class should start with a comment block that includes:
To use automation for this course, we require incorporating annotations to describe the code being
written. For this we have five annotation interfaces. SpaceComplexity,
TimeComplexity, TimeComplexityAverage,
TimeComplexityAmmortized, and TimeComplexityAverage.
Each of your data structures should have a SpaceComplexity annotation
at the top, and at least one of the Time Complexity annotations for
each method. Valid values for the complexity are: "O(1)", "O(n)",
"O(n^2)", "O(n^3)", "O(lg n)", "O(n lg n)", "O(n^2 lg n)", "O(2^n)",
and "O(?)", though some may be added later. The "O(?)" should only be
used when complexity isn't relevant.
To use the annotations, simply add the correct annotation above the method or class name:
@TimeComplexity("O(n)")
METHOD_DECLARATION
Be sure that each of your annotations exactly the same as one of the annotations listed. Note that the notation is a capital 'o', not a zero.
Each non-trivial method should include special comment blocks that begin with the letters "SCJ" or "TCJ" that justify the time cost (TCJ=Time Cost Justification) or space cost (SCJ=Space Cost Justification). These will be highlighted in a special color so the grader can clearly see your arguments for your anticipated time and space costs.
The book uses a number of interfaces and exception classes that you will need. These are included in a package
called net which are included in each assignment and
on
wopr. The assignments will include all the interfaces for that assignment, but the package in wopr includes all interfaces from the net package. When you submit, you must submit the net
package with your code. Do not rename the package, or put it inside
another package. This is important for the automated grading.
You will be writing a number of data structures through this course
and annotating them. The structure for the data structure
implementations, and annotation definitions will be in a package called
cs2321.
These will be provided for you in the assignment.
You must submit a program without errors. You may make multiple submits - the grader will grade the last program submitted before the due date. (Note: Anything submitted after the "official due date" and before the "resubmit date" will be considered late and will have a 10 point penalty (1 letter grade).
You must export your project to an archive file from Eclipse - DO NOT simply "zip" it up from your file browser. To export your file:
After you have exported your project to progN.zip (where N is the number/letter of the assignment), use the command submit to turn your program in.
(Note: this is only available on CS lab machines. If you are not working in
a lab, you will need to either come to campus or transfer your file and
remotely login to complete your submission)