Homework Guidelines for CS 4961
Homework will be graded on the following bases:
- 10% - Usability - How easy was your code to test and run. Did the
interface make sense or was it clumsy to use?
- 10% - Programming Style - Is your code easy to read? Do you make
good use of commenting and whitespace?
- 40% - Correctness - Does your code do everything required of it?
Did you provide all required parts of the project?
- 20% - Design - Is the design of your code relatively efficient?
This is not a course on code optimization and you will not be
tested like it is, but the flow of control and data structures in
your program should show some evidence of being well-planned. Also,
do you place any unnecessary restrictions on your program?
- 20% - Documentation - Your documentation should describe how to use
your program as well as the major data structures and functions in your
program. It should also give an overview of the flow of control. Technical
details should be high level. You should include a list of all the elements
of the project that you implemented (especially if the program gave you options -
tell me what your choices were). It should also include a list of all project
elements you did not complete as well as any bugs in the program. I will try
to help you solve any bugs you report, and will take off points if documentation
is lacking in this regard.
It should be noted that I will be reading your code. If I cannot understand
how your program works based on your commenting and documentation, you
may lose points. Be sure to make a reasonable effort to make your code
readable.
Projects will be tested on UNIX. If you develop on Windows, it is your
responsibility to ensure that your code ports. Projects must run on either
the CADE or CS environments. Your project will be tested on whichever
environment you turn it in on (see Handing-in Assignments). All programs
must be written in C/C++. Hand in your source (in addition to any other
project requirements). Submitted executables will not be looked at. You
are responsible for making sure the grader knows how to compile your code.
Toward that end you should provide a makefile or some other compilation
script. You should include this even if your project can compile using
the original class makefile.
Handing-in Assignements
Assignments will be handed in electronically using handing (on the CADE
side) or submit (on the cs side). Each project will have its own project
folder. To submit (or handin) a project, type on the command line:
submit cs4961 project file1 file2 ...
Where project is replaced with the project's name given in
the assignment, and file1, file2, etc. are the files
of your project. You are responsible for making sure all necessary files
have been turned in.
You can check to see which files you have turned in thus far by typing:
submit cs4961 project
Or just see what projects are in the class folder by typing:
submit cs4961
Late Policy
All homework is due before the start of class on the due date. (10:45 AM)
It is strongly recommended that you get everything turned in on time
if for no other reason than the fact that there is usually a new project
assigned on the day the previous project is due. Another good reason is
that subsequent projects generally build on previous projects so delays
in earlier assignments can hold up later work. Late submissions will
be penalized 25% per day. Note that it is generally better to turn in
a partially complete assignment on time than to turn in a complete
assignment two days late.
Contesting Scores
If there is something in your grade summary that you do not understand or
believe that points were taken of (or added up) incorrectly, please contact
the grader. We want to make sure you get the correct score. You must
protest your score within a week of receiving your grade for the assignment.
No scores will be changed after that point.
It you think that the grader was unfairly harsh (or not harsh enough -
it's happened before) you may talk to the grader about it. However, understand
that your entire project will be looked at if you request a regrade and your
score may be revised in either direction as the grader sees fit.
Cheating
Just as with every other class you have taken, cheating is unacceptable.
People caught copying from other people's work will receive a 0 for that
project and will be referred to the administration for disciplinary action.
Students are encouraged to speak with each other about projects. However,
solutions and code are to be entirely your own. Do not copy other students'
code.