The third year project provides an opportunity to carry out a substantial piece of work for which you are individually responsible. It is a key element of the Honours degree, in which you are required to apply and explore in more depth some of the things you have learnt elsewhere in the course, and to show initiative in expanding and applying your knowledge.
In a project you should not expect to be told everything that you need to know - you will have to find much of the information for yourself. Nor should you expect to be told exactly what to do - you are responsible for planning and steering the project. You will have a Supervisor who will provide advice and guidance, but it is your project, and you are expected to take responsibility for it.
All projects consist of four elements, which are typically each of equal importance. It is important to remember that a project is intended to be more than just the production of a piece of software - you need to show a deeper understanding of what you are doing (see Skills You Will Need to Develop below). This means that you are expected to put the work in a context, to think about alternatives, to justify your choices, and to evaluate your work. The four elements expected of every project are:
Research and Background. This is where you provide the context for your project. You will need to identify and absorb related and parallel work, identify the key ideas you will build on in your project, and identify and acquire any new skills and techniques you will need. Here you will also identify the criteria you will use in the evaluation of your project.
Planning and Design. Any project requires planning, to identify what needs to be done and what will be produced, when this will be produced, and to give a feasible strategy for carrying out the project. The software that you will produce also needs to be designed according to some methodology, and thought given to how it will be tested and evaluated.
Realisation and Implementation. Having a plan is no good unless it is carried out. So the plan must be realised, in accordance with the milestones you identified in your plan: the literature must be surveyed and the design must be implemented and tested, and the experiments must be performed. All of this will need to be documented in the final report.
Evaluation. In an academic project you are supposed to be able to look critically at what you have done. Evaluation needs to cover what was produced: for example, how well does the software perform?; the decisions made: with hindsight were the design choices you made the right ones?; how your project compares with other related work; where there are users: how do they react to the software?; the extent to which the objectives of the project were met; and the scope for further development of the project.
Throughout the project you should keep the need for it to show all four of these elements well in mind.
In a project you will be using skills you have learnt on your course, but you will also need to develop and demonstrate new skills. Some of these will be technical skills, but you will also need to develop a variety of other, important, skills. Some of these are described below:
Planning skills. If you are going to carry out a long term piece of work successfully, you will need to have a plan. You will need to analyse what you have to do, identify stages in the work, decide what should be produced from each stage, identify what can be done in parallel and what depends on other stages, and estimate how long each stage will take. This will give you a set of milestones (completion dates for significant project goals) by which you can monitor your progress against your plan, so that when things do not go as expected you can adjust the plan.
Surveying Literature. In a successful project you will need to put your work in a context. This means that you will need to be aware of what else has already been done in the area of your project. You will need to identify, read and evaluate this work.
Finding Information. You will probably need to extend your technical skills in the course of this project. To do this you will need to discover where you can get the information you need, locate it, and use this information to teach yourself the new skills.
Time Management skills. Following a plan requires discipline and effective use of time. The project represents a quarter of the year, so you should expect to spend 10-12 hours each week on it. It is important that this time is used effectively. It is required that you keep a project diary recording the work you do on the project, the thoughts that occur to you, the choices you make, the versions of the software you produce, and the like. As well as helping you to keep track of how you are spending your time, such a record is invaluable when you come to write up your project. This diary should be available for inspection by your supervisor at any time.
Presentation skills. In the course of the project you will present your work in a variety of ways:
Short written report (the specification): You will need to provide a short written summary of the project you intend to carry out. This needs to be concise, well structured and to contain all the essential information.
Formal oral presentation (the design): You will be required to give an oral presentation of your progress at the end of the first semester. Skills involved here include preparing overheads, organising your material, deciding on the appropriate level of detail and keeping to time when giving the presentation.
Informal oral presentation (the demonstration): Typically this takes the form of a demonstration of the software you have produced. Here the ability to convey a clear idea of what you have done, to be able to explain your system, and to answer questions are important.
Final written report (the dissertation): The final project report is the most sustained piece of writing you will do on the degree course. Preparing a report requires a number of skills to enable you to structure the material appropriately, to present it clearly and concisely, and to put your work in a context, and to justify what you have done.
Evaluation skills. An important part of the project is the evaluation of what you have done. To be able to look critically and objectively at your work is important.
Awareness of professional issues. The British Computer Society issue a Code of Practice and a Code of Conduct. These set out guidelines for the proper conduct for a software professional undertaking a project. Of course, these were written with a large multi-person development in a commercial environment in mind, but you should be aware of these codes, and apply their principles, where appropriate, as you carry out your project.