Rules for Exercises

Past experience with checking of exercises has made it clear that one has to be very strict with enforcing certain minimal rules.

Points and Deadlines

Unless otherwise specified, the value for an exercise is 3 points. These points will only be given when the exercise is shown before the deadline. Up to one week after the deadline, 2 points will be given. Up to two weeks after the deadline, 1 point will be given. Exercises that are shown more than three weeks after the deadline, will not receive any points.

Linux

Solutions for exercises must be shown on a Linux system, and the student must be able to run them on a Linux system. Programs must be compiled by the following command: g++ -Wreturn-type -pedantic -pedantic-errors -Wundef [name.cpp] -o [name]

Lay Out

I will not even look at solutions that are in unacceptable lay out. It is not difficult at all to format code, so the only possible reason for bad code lay out must be student lazyness.

The lay out of code must be such, that for each while,do,if,try block, for each class or struct definition, for every namespace, for every function definition, it is clearly visible where its scope ends.

Lots of problems with code lay out are caused by the usage of Windows tools that try to format the code by themselves. Don't use such tools. Use vi, edit, nano, or gedit.

Make

Exercises must be compiled with make.

Constness

Reference must be const wherever possible. Wherever possible, const_iterator must be used.

Each class in a Separate File

Each class must have a separate .h and a separate .cpp file. Each .h file must have an include guard.

Showing Code in Class

The teacher has a right to show code, written by students, in class for educational purposes. If he chooses to do so, he will not tell who is the author of the code, unless the author is proud of his code.