Please make sure you read these guidelines before submitting any assignments.
If you do not follow ALL of the instructions below, then you may receive a mark of 0 for your assignment.
About the marking system
The COMP2304 marking system is a computer program written in C#, C++, PHP and SQL. The marking system compiles each assignment submission against a set of Boost.Test unit tests, executes the resulting executable, and records the results of each test. Marks will be awarded for each test that is passed. In order to ensure that the marking system is able to correctly compile and run your submission, please follow the guidelines below. If the automarker CANNOT compile your assignment (or is unable to run it) then it will be unable to award any marks.
Your code must pass the core unit test
A core unit test file (assignment_n_core.cpp) will be released with each assignment. Add this file to your Visual Studio project and ensure that the project compiles and passes the test before submitting. The core test ensures that all the methods and classes required for the assignment are available. If the core unit test does not compile, or does not pass, then you will most likely receive a mark of zero for your submission. The core unit test does not check the functionality of your assignment - it is still possible to receive a mark of zero for a submission which passes the core unit test.
You are encouraged to augment the file with additional unit tests - however be careful not to modify or remove the core test.
Now is a great time to work through the Unit testing tutorial if you have not already completed it.
Do not submit the main() function or any tests
If your submitted code includes Boost unit tests, or defines a main() function, then it may collide with the functions defined in the testing framework, causing an error. During testing, keep your unit tests in a separate file to the code which you are testing so that you do cannot accidentally submit it.
File names are important
Each assignment will direct you to submit files with a certain name (i.e. assignment_one.cpp). The marking system will miss your submission if you do not follow these naming guidlines exactly.
Keep the code for each assignment in a single pair of .cpp and .h files
Although code moduralization is a great thing, it makes marking in a university environment difficult. Because of this, we only allow you to submit files that we have specifically asked you to create in the assignment. If your code depends on code in another .cpp file, then it will not compile on our marking system.
Do not use stdafx.h
If you use Visual Studio incorrectly, it will add a precompiled header called stdafx.h to your project and #include it in your code. As you are unable to submit this file, your code will not compile if it still references it. If your project has this file, create a new project, and ensure that you tick the 'Create empty project' box in the project creation wizard.
Your code must compile and run in release mode.
Confirm that your code will compile correctly with the default Visual Studio "Release mode" settings. If your code does not compile, or runs differently, seek advice from a tutor. It is common for code to run perfectly in debug mode, but crash or produce incorrect output in release mode (usually due to memory management errors).
Function definitions must be correct.
Some assignments will direct you to create a class, class method or global function with a spefic name, parameter types and return types. For example int returnANumber(int, int);. The (case sensitive) marking system will not be able to compile with your function unless you follow these instructions exactly. For example, none of the following methods would compile:
int returnSomeNumber(int, int); (Incorrect name)
float returnANumber(int, int); (Incorrect return type)
int returnanumber(int, int); (Incorrect capitilization)
int returnANumber(int); (Incorrect number of parameters)
int returnANumber(float, int); (Incorrect parameter types)
The same rules apply to class names and class methods.
Return values must be exactly as specified.
If the assignment asks you to return or output the string "Hello" then "hello", "Hello\n" or any other variation will be marked as incorrect. This emphasises the importance that is placed on precision and accuracy when following software specifications.
How marks are assigned
Each assignment will carry a weighting, indicating the total number of marks available for that assignment. Submissions which are completely correct will receive all of those marks, and submissions which are completely incorrect, or do not compile, will receive no marks. Submissions with errors will obtain a mark that is representitive of the number of different types of errors found in their submission. The exact breakdown of marks cannot be released beforehand, as it would remove a significant part of the challenge of computer programming (developing tests!).
