A major part of COMP8440 is the practical work. During the five day intensive part of the course over half the time will be spent in the lab, and the majority of the [course assessment](assessment) is based on the lab work.
The lab work will be run on the Ubuntu Linux systems in the CS labs. During the intensive part of the course each student will use the same lab machine each day, allowing the machine to be customised to suit the project being worked on (for example, by installing extra libraries or other package dependencies).
## Introductory labs
The two labs on the first day are meant to get you started with the idea of working with FOSS projects.
* Lab 1: [Building tuxpaint](tuxpaint)
* Lab 2: Choice of 3
* Lab 3-8: project work
## Selecting a project
The FOSS project you choose for your lab work will make a big difference to both your enjoyment of the course, and your ability to demonstrate your knowledge of the course material in your submitted [reports](assessment).
As a start, we strongly suggest the following criterion for any project you choose:
* The project is moderately active. A reasonable rule of thumb is that the project has had at least several commits per month over the last few months.
* The project must use a FOSS license.
* We suggest choosing a project that is at least 3 years old. This is not a strict rule, but we certainly do not suggest choosing a project which has only just started.
* The project should have produced a usable release.
* The project should be welcoming to new contributors. You may be able to judge this by looking at the projects mailing list archives.
* The project should have several active contributors
* The project should be usable on the Ubuntu systems in the CSIT Linux labs
Of course, the project should also be something that you find interesting!
If you want to choose a project that does not meet these criterion then please discuss your choice with one of the lecturers to ensure that your choice is acceptable.
## Finding projects
There are a huge number of FOSS projects to choose from (certainly hundreds of thousands). If you don't know where to start looking to find one that suits you, then you may wish to browse through the project lists on one of these sites:
You should also look at the language specific development sites for any programming languages you know. For example, if you know some perl, you may wish to look at the projects at [cpan.org](http://cpan.org).
## Multiple projects
In the introductory labs you will be introduced to two FOSS projects, and after that you need to choose a project for yourself to work on for your Saturday presentation. After that is complete you can choose to either stick to that project for your submitted project work report, or you can choose a different project. If you do decide to change projects then you should discuss your choice with Paul or Bob, to make sure you get some feedback before you start on the major assessment work.
## Building a FOSS project
Learning to build a FOSS project from source can be tricky sometimes. To get you started, you may find the [build tips](building) page useful.