You may work alone, although groups of two persons are encouraged. Groups larger than two are not permitted.
A minimal amount of functionality is required of the submitted work before any real testing, or review of source code and documentation is done. The test to check this minimal amount is called the basis test. Experience has shown that most submitted work will not pass the basis test the first time. To prevent students from being surprised by failing even this basis test after submitting their final version, students can submit their work for a basis test before the beginning of every month (max. 3 times / exercise).
Failing the basis test means the work is returned without being graded at all. Passing the basis test allows the student's work to be graded at the end of the semester. Passing the basis test does not imply that a grade >= 5.5 will be given. On failure of the basis test, students will only be told what kind of error was encountered. Students can discuss ways to find the error and their testing plans with their advisor. A precise description of where, why, and how the basis test failed will not be given. The basis test is not meant as an aid to help students test and debug their implementation, it is meant only to warn them if their current implementation will not be accepted. Students should therefore test their implementation THOROUGHLY before submitting it. Students are only allowed to submit each exercise three times for a basis test. If more tests are needed, please contact your supervisor. More than three submissions will result in lower grading of the exercise.
You should show a professional approach in writing your code, commenting your code, and in writing the documentation. Assume insiders as the audience, and write for them. So, leave out details about the specification (which are mentioned in the assignment and the man-pages) and trivialities.
The documentation needs to adhere to the following requirements. First, for exercises 1 and 2, the documentation needs a section describing the design of your user program. Second, for all exercises, the documentation needs a section on the kernel changes you made. Third, for all exercises, your test procedures hould be described in the documentation, and an evaluation of the apparent thoroughness of these procedures.
The documentation should not be a chronology of what you have done, but rather a theoretical treatment of the problems you encountered, showing to us that you understand the issues that occur in modifying the kernel or writing the user programs. In other words, WHY did something go wrong, and why did you choose a particular solution, rather than only describing the final solution. For example, next to describing your final solution, this solution may well be illustrated by a description of earlier solutions that failed. The documentation should, as a whole, provide insight in the issues encountered during the exercises. It can contain, amongst others, descrip tions of design decisions, comments on problems encountered and their solutions, descriptions of the testing phase, etc.
Since a third of your grade depends on the documentation, you should give a great deal of care to it, and not postpone writing it until the last moment. Students should preferrably discuss the contents and the format of the documentation with their advisor. The deadline for submitting your exercises for final grading also applies to the documentation! Documentation should be sent in postscript-format to bs@cs.vu.nl before the prakticum's deadline! If this is not possible, please contact your supervisor.
Documentation should be written during the whole period, so no time is allocated.
| Exercise | Phase | #Weeks |
|---|---|---|
| 1: Exercise 1 | Exploration | 2 |
| Implementation | 2 | |
| Testing | 2 | |
| Sub-total | 6 | |
| 2: Exercise 2 | Exploration | 1 |
| Implementation | 2 | |
| Testing | 2 | |
| Sub-total | 5 | |
| 3: Exercise 3 | Exploration | 1 |
| Implementation | 1 | |
| Testing | 2 | |
| Sub-total | 4 | |
| Total Number of Weeks | 15 | |