Programmming Projects
[Homepage] |
[Lab Info] |
[TA's & Tutors] |
[FAQ's] |
[Supplements] |
[Programmming Projects] |
[Sample Program Solutions] |
[Exams]
Pair Programming
As announced in class on Wednesday April 14th, you must have a partner
starting with programming project 2 or you will lose 10 points. See
my posting about this in the discussion groups in WebCT.
If you haven't noticed, there is also a WebCT "quiz" where you need to record
your partner information. Failure to have a partner and
complete the partner information will cost
you 10 points, without written approval from the instructor to work alone.
Even then you should record in the partner "quiz" that you received approval to work alone.
You also are required to complete an online log that records the amount
of time you spent. This is not just for those in the experiment, it is
for everyone. You lose 5 points if you do not complete it.
Here is the online log link again.
Programming Assignments
You must follow the programming style guidelines listed
here.
What do I do if my partner doesn't show up for lab or another
scheduled meeting? Answer
- Assignment #1 - Writing Narrative Evaluations: Due April 8th at 10pm.
- Assignment #2 - File Compression with Run Length Encoding: Due April 22nd at 10pm.
- Assignment #3 - Functional Abstraction(Methods) - a dice game: Due May 6th at 10pm.
- Assignment #4 - Arrays - shared birthdays: Due May 20th at 10pm.
- Assignment #5 - 2D Arrays and Objects - Scat Scout: Due June 3rd at 10pm.
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 the
online log
for this assignment. The deadline for completing the log is 1 hour after the homework deadline.
- 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.
- 10 points: Fails the test case provided in the program specification.
- 10 points: Fails to produce (mostly) correct output for any non-trivial input.
- 10 points: Assignment specific correctness criteria. See the specific programming assignment specification.
Style (maximum deduction 50 points total, 10 points for any one category): Note that some of the following
refer to language constructs you will be learning about during this course. If a style requirement mentions
a language construct that you don't know about (e.g. "break") feel free to ignore it until it comes up in
class. You will be responsible for following all that refer to topics covered prior to the due date of a
particular assignment. If you aren't sure if an item will apply to a particular assignment, it will never
hurt to ask. In general the items are listed in the order you can expect to have them apply.
- 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).
- 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.)
- 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) ...".
- 5 points: Each unnecessarily long method (over 50 lines is definitely long, under 25 is almost certainly safe).
- 5 points: Each global variable.
- 5 points: Each occurance of a repetitive sequence of lines that could/should be easily converted into a method.
- 1-5 poiints: (Beginning with programming project 2) 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".
[Homepage] |
[Lab Info] |
[TA's & Tutors] |
[FAQ's] |
[Supplements] |
[Programmming Projects] |
[Sample Program Solutions] |
[Exams]
This page maintained by Charlie McDowell
Email regarding this site.