next up previous contents
Next: Algorithms and Data Structures Up: Descriptions of Modules and Previous: Descriptions of Modules and   Contents

Subsections

Major Projects

These projects aim to introduce you to the methods of coping with the problems that arise with the design and implementation of large scale computer systems. It is intended that students will gain experience in deciding how to:

Computer Science Individual Project

This project gives students experience in developing a non-trivial system and providing some analysis of its behaviour. In particular:

Structure:
You should pay careful attention to the structure of you proposed system ensuring that the design is sufficiently simple that it eases verification and analysis.
Verification:
You will be asked to ensure that certain properties can be guaranteed of the system and will be asked to provide evidence that the system has these properties.
Analysis:
You will be asked to provide an analysis of the timing behaviour of some parts of your system.
The central task is to design and develop a small client that allows peer-to-peer information sharing. The project is divided into two phases: the first is to generate a design, preliminary analysis of its behaviour and some exploratory code; the second is to provide an initial implementation of the system and provide some verification and analysis of the implementation. Java is the preferred language for most of the project but this is not compulsory.

The first phase of the project runs through term 1 and the second in term 2. There will be briefing meetings at the start of each phase, and a support team will be available to help with any problems. In addition, you are strongly encouraged to use the CS3 newsgroup eduni.dcs.cs3 for discussion of the project. This allows you to share any questions with the largest possible audience, and can highlight any common difficulties with the work.

Assessment

Project assessment is primarily based two deliverables. For each deliverable you will be provided with a pro-forma that will allow you to audit your submission and provide a self-assessment of your work. These assessments are an integral part of the assessment procedure. The deadline for submission of phase 1 is the start of week 7 of term 1; for phase 2 it is the start of week 7 of term 2. Phase 1 contributes 50% of the project mark, and phase 2, 50%. Note that the CS Individual Project contributes 10 points towards your overall mark for the third-year course, against 12 points for a single technical module. This fact should be borne in mind when dividing your time between the project and the taught modules.

Software Engineering Individual Project

This project aims to provide students with experience in the engineering of a non-trivial system. In particular we will focus on:

Non-functional requirements:
The functionality provided by the system will be simple. The emphasis of the project will be in capturing and ensuring the delivery of non-functional attributes of the system. For example: performance, scalability, maintainability, and availability.
Process:
You will be required consciously to consider your process, the elements comprising the process, and how they combine. You will be expected explicitly to plan your time and the delivered systems should include documentation, test results etc as well as the code. You will be expected to use tools to support your process where these are available.
Technologies:
The project will require you to use some key technologies e.g. some Java distributed system technologies as well as XML. The practical will stress a component-based approach to design and implementation.
The central task is to design and develop a small client that allows distributed peer-to-peer information sharing. The project is divided into two phases: the first is to develop a design document and carry out some preliminary prototyping of the system design; the second is to develop an initial implementation of the system. The preferred language for most of the project is Java but this is not compulsory.

The first phase of the project runs through term 1 and the second in term 2. There will be briefing meetings at the start of each phase, and a support team will be available to help with any problems. In addition, you are strongly encouraged to use the CS3 newsgroup eduni.dcs.cs3 for discussion of the project. This allows you to share any questions with the largest possible audience, and can highlight any common difficulties with the work.

Assessment

Project assessment is primarily based on two deliverables. For each deliverable you will be provided with a pro-forma that will allow you to audit your submission and provide a self-assessment of your work. These assessments are an integral part of the assessment procedure. The deadline for submission of phase 1 is the start of week 7 of term 1; for phase 2 it is the start of week 7 of term 2. Phase 1 contributes 50% of the project mark, and phase 2, 50%. Note that the SE Individual Project contributes 10 points towards your overall mark for the third-year course, against 12 points for a single technical module. This fact should be borne in mind when dividing your time between the project and the taught modules.

System Design Project

In addition to the general project aims outlined above, the System Design Project, which runs in term 3, is intended to provide experience of the following issues (many of which are discussed in the term 2 Professional Issues lectures):

Students work in groups of about ten, on the design of both hardware and sofware of a complete system. Full details of the system to be designed will be given to the groups at the start of term 3, but recent examples include a speech synthesis device for blind computer users and a shape recognition device for automation. The project lasts for four weeks.

During term 2, the groups are announced and a staff member is assigned to each group as supervisor. The supervisor's task is to advise and provide feedback on the progress of the group during the project, not to provide technical input.

On the first day of term 3, the details of the project task will be announced, and groups will be allocated a budget (real money) to buy components, along with some initial equipment for their use. They will also receive a second budget (virtual money) which can be used to pay for staff ``consultancy'' time. Staff consultants will be available to advise on management, design, specification, software and hardware.

During the project itself, each group will meet with their supervisor three times a week and should also hold their own meetings as often as necessary. Most work will be done in the North Machine Hall, where each group will have bench space and a dedicated linux PC, together with other equipment.

On the Friday of week 4 of term 3, groups will demonstrate their implemented system, and give a ``sales'' presentation of it, to an audience of the other students, supervisors, and visitors from industry.

Assessment will be based on the final product developed, the documentation, the demonstration and presentation, the group's ability at self-management, group self-assessment and supervisor moderation of the above. Both an overall mark for each group (which carries a prize), and derived individual marks will be awarded.

High marks will be given to groups which develop clear, realistic designs which meet the spirit of the requirements. Quality of documentation, success of team working and flexibility in solving problems are also key factors. Individuals who opt out of group efforts will be heavily penalised.


next up previous contents
Next: Algorithms and Data Structures Up: Descriptions of Modules and Previous: Descriptions of Modules and   Contents
CS3 dummy user 2001-09-25