Programmming Projects
[Homepage] |
[TA's & Tutors] |
[Supplements] |
[Programmming Projects] |
[Exams]
Pair Programming
All students are STRONGLY ENCOURAGED to work with a partner on the programming projects for this class.
To learn a about pair programming please read
All I Really Need to Know about Pair Programming I Learned In Kindergarten.
You should also read the pair progamming guidelines and policy for the class.
This explains what is considered to be acceptable pair programming and what to do if you have problems with your
partner.
- Program #1: Due January 14th at 10pm.
Solution
- Program #2: Due January 22nd at 10pm. (Monday is a holiday.)
- Program #3: Postponed to January 29th at 10pm.
- Program #4: Moved to February 5th at 10pm.
- Program #5: Due February 12th at 10pm.
- Program #6: Due February 19th at 10pm.
- Program #7: Due February 26th at 10pm.
- Program #8: Due March 4th at 10pm.
- Program #9: Due March 11th at 10pm.
- Program #10: Due March 18th at 10pm.
Grading of Individual Projects
You must follow the programming style guidelines listed at the bottom of this page.
Programs submitted after the due date but within 24 hours of the due date will be penalized 10%.
Programs more than one day late will not be accepted.
Be advised that WebCT can sometimes get rather slow near a deadline,
when many students are trying to submit. If you have a working program
and are just "touching up the style" or doing some final testing, go
ahead and submit it. You can always resubmit up to the deadline
without any penalty, but if it gets too busy and you fail to submit in
the last 5 minutes before a deadline, then you missed the deadline
(like getting stuck in traffic - plan ahead and leave enough time).
Grading Breakdown
Programs will be graded on corrrectness (the right output),
design, and style (see the bottom of this page).
Every program starts out with 100 points. Points are deducted as follows.
- 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 (this includes code provided by the instructor).
Correctness/Functionality (maximum deduction 50 points): See
individual project descriptions for correctness point details.
Design (maximum deduction 25 points): See
individual project descriptions for design point details.
Style (maximum deduction 25 points total):
- 1: Each occurance (up to 5 maximum)
of lines that are more than 80 characters long (including spaces). If you connect with ssh most likely the default
width of your terminal window will be 80 characters. Make sure your program looks ok there when displayed with "more".
- 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).
- 1 point: Each non-descriptive identifier (class, method, constant, or variable). Maximum of 5.
- 2 points: 1 or more tabs in a source file.
(Convert
all tabs to white space and check indentation before submitting. You can use the Unix command
expand.) NOTE: This does not mean that you should not use tabs when creating and editing
your source code. It does mean that you should use the
expand command to
replace the tabs with spaces before submitting your final program or use an editor that automatically converts tabs
to spaces.
- 1-5 points: Inconsistent or inappropriate indentation.
- 1 point: 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). If a numeric literal occurs
only once, then creating a constant is not mandatory but still often helps with documentation. Maximum 5 points.
- 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) ...".
- 5 points: Each unnecessarily long method (over 50 lines is definitely long, under 25 is almost certainly safe).
- 5 points: Each global variable other than constants (or other exceptions as explained in class).
- 5 points: Each occurance of a repetitive sequence of lines that could/should be easily converted into a method.
[Homepage] |
[TA's & Tutors] |
[Supplements] |
[Programmming Projects] |
[Exams]
This page maintained by Charlie McDowell
Email regarding this site.