Homework
[Homepage] |
[General Lab Info] |
[TA's & Tutors] |
[FAQ's] |
[Supplements] |
[Homework] |
[Excellent Programs] |
[Exams]
Programming Assignments
Only assignment one is available at this time. The others are place holders
and provide with you the planned due dates. Programs will be submitted using
WebCT. It will not allow late work. Late work will not be accepted or graded.
- Basic Non-OOP Java Syntax (Due: Thursday, 1/15/04 at 10am)
- Using classes as ADTs (Due: Thursday, 1/29/04 at 1am)
- Using the Standard Template Library (Due: Thursday, 2/12/04 at 1am)(
- Graphical User Interfaces (Due: Thursday, 2/26/04 at 1am)
- Client Server Computing (Due: Thursday, 3/11/04 at 1am)
Grading
Programs will be graded both on corrrectness and style (see the class
style guidelines).
Every program starts out with 100 points. Points are deducted as follows.
- 5 points: Fail to complete WebCT program log by the program due date.
- up to 50 points: Woefully incomplete implementation. This is intended
to prevent students from getting 50 points for a stylistically correct nearly
vacuous file. It will not apply to any program that made a serious attempt to
implement all required features.
- 100 points: Including code from any source other than the identified (at the top of the file) creator(s)
without proper attribution.
Correctness/Functionality (maximum deduction 50 points)
- 20 points: Fails to compile without syntax errors.
- 5 points: Fails a test case with all legal input.
- 5 points: Fails a test case containing illegal input.
- 10 points: Fails the test case provided in the program specification.
- 10 points: Fails to produce (mostly) correct output for any non-trivial input.
Style (maximum deduction 50 points total, 10 points for any one category)
- 2 points: Each method not preceeded by a meaningful block comment.
- 5 points: Each source file not beginning with an informative block comment including the name(s) of
the creator(s).
- 2 points: Each non-descriptive identifier (class, method, constant, or variable).
- 2 points: Each "magic number." A magic number is a literal constant (with the exception 0, +1, and -1) appearing
anywhere in the source of a program except to initialize a symbolic constant (e.g. "static final int size = 5;"
is ok, "for (i = 0; i < 5; i++) ..." is not (because of the 5 not because of the 0).
- 2 points: Each use of a series of if-statements (without else clauses) when an if-else is called for.
- 2 points: Each use of "break" in a loop when the loop predicate could easily be modified to handle the
loop temination without a break.
- 5 points: Using an integer where a boolean is called for. E.g. don't use "while (hasMoreInput == 1)...", use
"while (hasMoreInput) ...".
- 1-10 points: Inconsistent or inappropriate indentation. The presence of TAB characters in the source file. (Convert
all tabs to white space and check indentation before submitting. You can use the Unix command "expand".)
- 5 points: Each unnecessarily long method (over 50 lines is definitely long, under 25 is almost certainly safe).
- 5 points: Each occurance of a repetitive sequence of lines that could/should be easily converted into a method.
- 5 points: Each global variable. Be careful not to abuse instance variables - they are meant to store the state of
an object, not to avoid passing parameters to methods.
- 5 points: Each poorly designed method or class. A method should do "one" thing. A class should represent a
coherent abstraction. (For assignment 1, your class may simply be a collection static methods.)
Bonus points can be achieved for:
- Up to 10 points: Useful pre and post conditions on a substantial portion of the methods.
- (Other possibilities to come.)
A program's total will never exceed 100. Bonus points can be used as insurance against possible minor "slip ups"
in other areas.
[Homepage] |
[General Lab Info] |
[TA's & Tutors] |
[FAQ's] |
[Supplements] |
[Homework] |
[Excellent Programs] |
[Exams]