Submission Procedures and Grading Policies
Rules and submission procedures
You should always turn in your assignments promptly; we normally will not accept late assignment, even if it is late by one minute. However, we do understand that occasionally you need more time to finish your programming assignments beyond the deadline. Therefore, each student has a maximum of TWO penalty-free late days for your programming assignments, i.e., out of the five programming assignments, you can be late up to a total of two days without any penalty. Note that we will only grade you the latest submission. If the assignment is late by one minute, you are one day late.
You must use CASS (Course Assignment Submission System) to submit your programs by the due date and time. CASS information can be found in http://cssystem.cs.ust.hk/UGuides/cass/index.html. Please submit your files individually and do NOT tar or zip your files. Please do not modify your files for the assignments on your machine after the due date and time. We may need to take a look at them in the future as a reference in case of contention.
Your submission must
contain your program(s) and documentation (including your acknowledgments) such as README, makefile, .cpp, .h, etc. Your README file must tell us how to compile and use your program, and what the executable file(s) are. Include how you approach the problem and why your solutions work. In the file, you must explicitly acknowledge the resources (books, web sites, and so on) that you have consulted and the people you have discussed the assignment with (if they are students from other sessions, state their full names, student IDs and what sessions they are in). If you have not consulted anyone, then simply state that explicitly as follows: The work included in this program is all my own work. Here is an example of a README file and makefile (in Linux and in Eclipse).
be completely self-contained; your program can only refer to the standard C++ libraries. If other non-standard .h files are included, please also submit them in the same directory.
be able to be compiled and run on the Lab2 Linux platform. Your program will be compiled there. If you develop your program in other platform, please make sure that all the platform porting issues are resolved in your submission. You do not need to submit your executable files because we will compile your program locally for testing.
¡@
Grading. Your program will be graded on:
Output correctness (60%):
This means that your program produces the correct outputs or results as specified in the assignment. If some test cases are provided, make sure that your program at least works correctly on all these test cases. However, you should also consider additional test cases to check whether your program completely satisfies the assignment specifications. Designing good test cases, as one part of software testing, is an important aspect of software development. Please feel free to submit your interesting test cases to the submission directory as well.
Make sure that your program can at least be compiled even if you have not completed the assignment. A successfully compiled program will earn you some points.
In case your program cannot be compiled, does not run correctly or works only partially, you may receive partial credits at our discretion. Therefore, try your best to accomplish as many parts as possible even if your program does not completely work. In this case, you should state in your README file what works and what does not so that we know how to test them appropriately. We may examine your output and your codes to determine the partial credits.
Program design and elegance (20%): This includes the overall design of your program, such as the correct use of .cpp and .h files for separate compilation, makefiles, object-oriented design, modularity, code conciseness, variable scoping, program and call structures, etc.
Program documentation and comprehensibility (20%): This includes your README, comments, variable and function naming, proper indentation, program readability, ease of use, user interface, etc. Some assignments may require you to use a documentation system such as Doxygen.
We understand that handling human input errors and checking for such errors can be tedious. While it is necessary to check some out-of-bound numbers or obviously wrong inputs, you may assume that users in general are well-behaved and rational. If user responses are not valid, your program may simply let the user know about the input error and prompt the user again or, in some exceptional cases, exit the program. Returned error values due to some function or system calls, on the other hand, need to be checked and handled properly.
The program you submit for grading must represent your own independent effort. To uphold academic integrity, plagiarism detection software will be used to detect plagiarism automatically. Note that plagiarism detection is already a very mature area and such systems are quite reliable and smart. Don't let others read or even copy your program. You will get into trouble if another student's submission is similar to yours. Suspected cheating and plagiarism will be referred to the relevant University authorities for disciplinary actions.