In previous years, correcting projects has proved to be a cumbersome task, due to compatibility problems and lack of user friendliness. Many hours were spent installing software necessary to get code up and running. Therefore, we introduce a few requirements of those handing in a project this year, whether it is a one-week project or a one-month project.
The important thing for us is that the project software can be set up in a simple manner (preferably: one step). As such, required non-standard software should be bundled with your software, or eventually be available through the Debian and Ubuntu package management systems (APT). If your project involves interacting with complex applications such as MySQL, be warned that we do not intend to spend time configuring such solutions. For instance, if you are writing software utilizing MySQL, communicate with a server you have set up yourself. Or you could possibly provide us with access to an external machine already set up with the software you developed. If in doubt, don't hesitate to ask us.
Developing on Windows is acceptable, but also here a simple installation process must be provided.
The deadline for handing in the project is October 31. Elsewhere, the deadline for the approval of the project is mentioned to be November 14. This means that November 14. is the absolute maximum for approving the project. We need you to hand in your project to us by October 31. so that we have time to correct all projects. This also gives us, and you, some leverage in the case your project is not approved the first time. Any obvious attempts on handing in a project that is insufficient in order to get an extension, however, will likely result in the project not being approved.
In some cases, it might be required that you come to us with a working version of your project in order for us to correct it. If somehow your project can not comply with the requirements, let us know, and we can agree on a time for your demonstration.
Project requirements
- The file structure must be logical, organizing files in folders such as bin, src, and doc.
- The project should be easy to install (if necessary) and run. If your software requires building from source code and/or installing, you need to supply a simple way of doing so. For Python code we strongly suggest you write a Distutils script (setup.py), you can study Distutils by looking it up in the text book index or taking a look at the documentation. You can also supply a traditional Make file or a corresponding shell script.
- All code should be well documented. A tool like pydoc, epydoc or HappyDoc should be used to create documentation. See Scripting Resources for more information on these tools.
- A website containing everything related to the project, including, but not limited to
- Source code
- Documentation
- Project report
- Screen shots or other demonstrations
- A detailed overview of the amount of time spent on the different parts
An good example of how to structure and present your project is the hand-in of Tomas Johnsen in 2010.