Introduction To Computing Projects
Introduction To Computing Projects
Aims
1. Introduce the project components of the BSc (Hons) Computing and BSc (Hons)
Computing Science programmes offered in the School of Computing
Mathematical Sciences. These components are specified in the course definitions
for COMP1161 and COMP1169 respectively.
2. Provide an overview of what is required from any student taking these courses.
Learning Outcomes
The BSc (Hons) Computing and the BSc (Hons) Computing Science both have a core
project course at Stage 3, Project (Computing) and Project (Computing Science)
respectively. A recent survey of computing degrees in Universities in the United
Kingdom shows that the majority of computing degree programmes incorporate a
project component, mostly compulsory, and usually in the final year of the degree.
This could be viewed as simply a matter of ‘custom and practice’ amongst institutions
offering degrees in computing. There are however, some very good reasons why a
project should be considered as a core part of a computing degree. It’s worth noting
that degrees in other disciplines, civil engineering, law, education, fine art, and so on,
also have compulsory projects. We can surmise therefore that educationalists in
general agree on the benefits to be gained from undertaking a project. The benefits are
generally acknowledged to include:
• It provides students with the opportunity to plan, organise and carry out a
sustained, individual piece of supervised work, relevant to their degree
• It provides students with the opportunity to produce a scholarly piece of work,
that is, work that has been researched, carried out according to sound principles
and critically reviewed before being presented in a dissertation that conveys
clearly and concisely, the work and its conclusions.
• An academic project, carried through to a successful completion, demonstrates to
interested parties such as prospective employers and admissions tutors for
postgraduate degrees, that the student will have practised and gained skills that
will be relevant in employment and further study alike.
So, with these key aspects in mind, you should realise that completing your
undergraduate project will be one of the most important things that you will achieve
during your degree. It is the opportunity for you to bring together the knowledge
acquired from some or all of the courses that you studied, together with the technical
and professional skills learnt, to create a significant piece of work that you can be
proud of.
The project should also be considered important for the following reasons:
• The final year project represents one quarter of your final year assessment (see
below).
• It is the only major individual piece of work carried out during the degree
course.
• It provides evidence to prospective employers and admissions tutors for
postgraduate courses, of your ability to tackle a non-standard problem.
Students normally take 120 credits at level 3 during the final year of the BSc Hons.
Computing. This can be made up from single 15-credit courses and/or double 30-
credit courses (make sure that you are familiar with the structure of the final year).
Courses carry equal weighting into the end-of-year total; a weighting for a double
course is consequently twice that for a single course. The project is a double 30-credit
course and therefore contributes 30 out of 120 credits or one-quarter of the total
marks for the final year1.
1
Students who study the BSc Hons. Computing in part-time mode of attendance will normally take
more than one calendar year to complete the 120 credits.
The inevitable questions that this simple calculation raise are “if I do badly in my
other courses, will a good project mark pull me up?” and “if I do well in my other
courses but get a poor project mark, will this drag my overall mark down”. In other
words, can the project mark significantly affect the classification of degree awarded?
The answer must be that in certain cases, where for example, a student’s overall mark
is on or around the borderline between classifications, then the weighting for the
project course could make a difference. It must also be pointed out that where a
student’s marks are not conclusive in indicating a particular degree classification, then
the Progressions and Awards Board (PAB) will look for evidence of academic
achievement. The project is seen as an indicator of academic achievement.
Generally speaking, a student’s project mark is not normally far outside the range of
marks for their other courses. Some students score slightly better in their project than
in their examinable courses (perhaps because they do not perform so well in
examinations), and some slightly worse, again perhaps because they normally do well
in examinations. The important point to take on board is that you should try to
apportion your time fairly equally between all your courses. That notwithstanding, a
student might reasonably be expected to give a little more time to a course that they
have particular difficulty with. A consistent set of marks is usually better than having
a set of marks that appears to show an erratic performance.
1. Constructive (Development)
This type of project will normally involve design and implementation, for example:
This type of project is primarily concerned with development. The actual product
arising from the development may vary quite considerably in practice. For example, a
project might be concerned with the development of either a software system or a
hardware system, or with the development of new methods, techniques or algorithms.
The common factor in all of these projects however, is the application of a
development process that consists of recognisable development stages, from
feasibility or evaluation through to a fully tested and documented product, complete
with user manuals and guides.
Development projects may vary also with the degree programme studied. Computing
science degrees with a strong element of software engineering tend to emphasise
projects that concentrate on the development of software, using a well-defined and
documented software development life-cycle (SDLC). In contrast, degrees in
information systems may emphasise the use of alternative development approaches
such as the soft systems approach, DSDM, and prototyping, as well as systems
development tools such as CASE tools, 4GLs and visual development products like
Microsoft Access and Visual Basic.
2. Evaluative
This type of project is concerned primarily with evaluation; this could include for
example (the list is not exhaustive):
3. Investigative (Problem-Solving)
This type of project involves investigation into particular systems or their aspects such
as implementation methods, technical installation, acceptance within the user
community, etc. It may require that an experiment be carefully constructed so as to
generate appropriate data for subsequent analysis. A particularly relevant type of
investigate project is one that is primarily concerned with problem-solving. In this
case, the investigation could be focused on:
2
Taking a scientific approach will be discussed more fully in a later lecture.
The types of projects described above are the commonest types of undergraduate
computing project. We have not included pure research projects because these are
more fitting to be carried out on a postgraduate programme ( research is defined as a
considered activity which aims to make an original contribution to knowledge).
Research projects are more conceptually demanding and require a significant amount
of time to carry them out properly. We will discuss research-based projects below.
Both the Computing Science and the Computing degrees are accredited by the British
Computer Society. The Computing Science degree with honours provides exemption
from the BCS Part II Examinations and the Professional Project, whilst the
Computing degree with honours carries exemptions form the BCS Part I
Examinations and the Professional Project (subject to passes in certain 'core' courses).
For further details refer to the later section 'Exemption from the Professional Project'.
The project courses COMP1161 and COMP1169 are designed to meet the
requirements for the BCS Professional Project at Level II. Stated briefly, these are:
(The required contents of the report are given in the later section 'Exemption from the
Professional Project').
In order to meet the above requirements, projects undertaken for both the Computing
and the Computing Science degrees must be constructive in nature. The
characteristics of this type of project require that the project:
• is a sustained piece of work of between 150 and 200 hours of effort, e.g. an
average of 6 hours per week for 30 weeks!
• is carried out individually without a significant contribution by others;
• must relate to the programme;
• include a practical, problem-solving element;
• include a relevant literature review;
• include the production of a piece of software;
• employs well-defined principles of software engineering;
In some cases, it may be feasible for a student to carry out a project that includes a
significant element of evaluation or problem-solving. In such cases, it is important to
the eventual success of the project that the student understands how to apply scientific
thinking and reasoning in carrying out their project, and that the completed project
meets all the requirements for the project course (COMP1161 or COMP1169).
You would normally include a section or chapter on each of these aspects, in your
project report. For this reason, the final document is rather more than a normal
technical project report and because it is produced as part of an academic project, it is
usually referred to as a dissertation.
Industry-Based Project
An industry-based project is one that you will probably carry out for an organisation
with whom you are employed on a full-time or part-time basis (if you are a full-time
student working more than one day a week then it will be difficult to find enough time
to carry out your project as completely as you might like). You may even have the
agreement of the organisation with whom you completed an industrial placement to
carry out a project on their behalf, possibly using their resources. You should take
care that your project is not forced in a direction that is not suitable for the academic
requirements of your project.
Research-Based Project
We said earlier that pure research projects are more fitting to be carried out on a
postgraduate programme largely because the research activity should aim to make an
original contribution to knowledge. Undergraduate projects may still contain an
element of research nonetheless, or be based upon research that is being carried out by
a particular research group.
Most research groups are able to specify work products that will contribute to their
overall research effort, and these can be packaged to form suitable final-year
undergraduate projects. The benefits of this include:
• supervision by knowledgeable academics in the field who have already carried out
substantial investigation, literature searches and reviews;
• project requirements already identified and already formulated (either wholly or
partly);
• good grounding in postgraduate and research activities.
We have already made much of the fact that the project is probably the largest,
individual assessment that you will carry out during your degree. This together with
the aims for an academic project and the characteristics of a constructive project
should suggest that it is important for you to identify and develop certain skills that
will help you throughout your project. The skills that a student is expected to acquire
for an undergraduate computing project include:
• be able to draw together and apply the knowledge and skills gained from studying
other courses on your degree programme;
• be able to identify and use the various sources of information available in order to
obtain background and specific references for the project topic;
• be able to identify and clearly define problems and to organise solutions, where
feasible, to problems;
• be able to select and apply methods and techniques in a rigorous manner;
• demonstrate the willingness and capacity to pursue a task or activity to a
conclusion;
• apply at a level appropriate to an undergraduate degree, critical analysis to
knowledge gained, critical evaluation to work carried out, and logical reasoning to
determining any conclusions given;
• develop the capacity to plan, organise and carry out an extended, independent
work;
This may seem rather a lot to achieve, but bear in mind that your previous years of
study will not have been in vain. Many of these skills will have been evident in the
course and course assignments that you completed. Your task is to make an honest
assessment of those skill areas that you are not yet confident in, and then to decide
how to go about making improvements. In many cases, learning can take place
through examples of good practice. Find examples that show how practised academics
and professionals do things. For example, find a published paper on some aspect of
computing, (preferably close to your project topic if possible but this is not essential),
and study it to see how it is structured and presented. Many texts now have fully-
worked case studies showing the design and implementation of a software system or
subsystem using standard methods and techniques. Look at previous projects and find
examples of both good and poor practice. Think about how you, with hindsight,
might have done it better.
We stated in the previous section that the majority of computing projects for the BSc
(Hons) Computing tend to belong to the constructive category. You might therefore
reasonably think that you will be expected to write a computer program. In most
cases, this is true, but the type of program and the tools used to develop it can vary
considerably. The commonest occurrences of programming in projects include:
Any code that you produce should be implemented, tested and of an acceptable
quality. This will depend upon the nature of your project and on what is considered
acceptable for such a project. Your supervisor should be able to advise you on the
breadth and depth of any software that you produce as part of your project.
Whatever the case, as a computing student you will naturally be expected to produce
code. In selecting and specifying a suitable project, you should be clear from the start
how much code you intend to write yourself and how much you will generate using
software packages. By far the most common student project today consists of a
relatively simple database of records, and a front end developed using Microsoft
Access or Microsoft Front Page for developing web pages for linking to the database.
Over 90% of such an application can be generated by the software packages used.
Whilst this may be of benefit to a hard-pressed software developer, it could be argued
that in an academic project, it demonstrates little more than the ability to use packages
(this is of course an important skill but not a major one that the project is intended to
assess).
The project will be assessed by your supervisor and by a second marker both of whom
are academic staff in the CMS School. At the time of writing, the marking scheme is:
A detailed description of the assessment of each project course can be found in their
respective course definitions.
Any good text written on the subject of projects and their management identify five
main stages through which all projects, whether commercial and industrial or
academic, progress during their lifetime. These are:
• Definition
• Planning
• Initiation
• Control
• Closure
Experience shows that students approach the problem of managing their own projects
with strategies that range from no clearly defined project management strategy to
finely detailed activity analysis. One of the assessment criteria for all of the project
courses requires that your supervisor awards a mark that reflects your ability to
manage a project throughout its duration. You will need to demonstrate your progress
to your supervisor throughout your project. Formal project planning and management
methods and techniques are discussed in a later lecture, but for now you should think
about arranging regular project meetings with your supervisor. Through these and
intermediate deliverables, you will be able to assure your supervisor of your progress
at all times.
There are of course other attributes that you are required to show such as the ability to
work without constant supervision (this does not mean without regular meetings with
your supervisor), the ability to clearly define a problem and to set about finding and
organising a solution to the problem and so on. For a more detailed list of attributes,
you should read the course definition for the appropriate project course and reread the
previous section Skills Required for an Academic Project.
Remember – you alone must bear the final responsibility for your
project, i.e. the work carried out, the final product, and the project
report.
A supervised piece of work allows a supervisor to have regular contact with you
throughout the duration of the work. This enables them to build up a picture of you as
someone who is able to carry out a sustained piece of work, and who is able to
investigate, query and solve problems that may arise. This in turn forms part of the
project assessment. You are judged on your ability to organise and manage a project
as well as on the quality of your final product. This face-to-face tuition is an important
aspect of a project. It allows someone with more experience that yourself, to guide
you throughout the project and to help you to achieve what you are capable of.
Remember that there are academic requirements that must be met as well as practical
ones. Too often, a capable student can lose direction during their project, or even start
off with a poorly specified project proposal.
We can summarise the role of the supervisor by dividing the project lifecycle into
three stages and looking at the supervisor's role during these three stages: initial role,
continuous role, and final role.
Initial Role
• Assess whether the project is an appropriate one for the programme studied.
• Act as a 'sounding board' for you to bounce ideas off, and to help you to clarify
your own thoughts.
• Discuss the possible directions that your project might take.
• Provide feedback on your project proposal.
Continuous Role
Final Role
• Review early drafts of parts of your project write-up, and provide comments on
correctness and completeness of content and also on the standard of English used.
• Make suggestions regarding possible improvements to analysis and presentation
of results.
• Make suggestions regarding logical structure of final report, and on the formatting
of the content within.
You can help to make the most of the opportunity to carry out work that is supervised
if you follow these simple guidelines:
Supervisors provide the first-line support for all academic matters pertaining to
projects, and may even be able to help in certain specialised technical areas. A
significant part of your project however, is concerned with your ability to seek out
sources of technical support when necessary. It is vitally important that you be able to
understand the nature technical problems that occur and be able to formulate solutions
where possible. This will require you to make a list of candidate sources of
information, and to assess whether they will be able to provide any help in practice,
e.g. holding on to an engaged telephone line to the technical help desk of a well-
known computing vendor may not turn out to be very practical. Some suggested
sources of information and help include:
The British Computer Society (BCS) is the professional representative body for
computer scientists and information systems practitioners within the UK. As a student
registered on a computing degree in the CMS School, you are given student
membership for the duration of your degree. Under its Royal Charter the BCS is
required to 'establish and maintain standards of professional competence, conduct and
ethical practice for Information Systems Practitioners' (BCS 1998: 4).
The Society requires that in order for projects to meet the requirements for exemption
they 'must be passed at the first attempt to gain the award, with no condonement and
no referral'. The Society also identifies what your project's report (dissertation) should
include. The following list is taken directly from the BCS guidelines (1998: 10):
Summary
You should now be in a position to get started with the preparations for setting up
your project. These will include:
Where the project is already known, for example, one that derives from an
organisation, then the draft document should be more detailed, and should be
presented to the supervisor for their approval. The supervisor may require additional
information before being able to allow or disallow the project.
Appendix
We now turn to the problem for most students, encapsulated succinctly in the question
‘what project shall I do?’ It may be that you already have a good idea of what you
want to do. If so, the follow-up question should be asked ‘does what I want to do
satisfy the requirements for an academic and constructive project?’ We shall address
this question later. For the moment, we need to give some suggestions to help those
students who don’t know where to turn to (apart from their own creative thinking
powers!) for an appropriate idea for a project. The following are some suggested
guidelines to follow:
• It’s a useful principle that projects should draw upon previous experience; this
might include knowledge concerning a particular computer system or knowledge
drawn from previous courses studied. For example, anyone who has taken courses
in databases might want to develop a complete database application. A course in
knowledge-based or expert systems might lead someone to undertake to build a
knowledge-based system or an expert system in a particular application area e.g.
‘An Expert System for Fault Diagnosis in Automobile Petrol Engines.’
• Many institutions keep a selection of past projects for students to browse. It is
quite often possible to take an existing project, or the idea that it is based upon,
and to create a new project from it.
• There are certain standard software problems that are discussed in the literature
that present the opportunity for recurrent analysis, design and implementation.
That is to say, designing and programming new solutions to old problems. Data
communications and computer games are just two areas that involve the design
and programming of fairly complicated algorithms.
• It is often easier to engineer practical software developments if they are based on
real requirements. Projects that are developed from a hypothetical set of
requirements can often result in unrealistic applications because there are no real
users involved. If you are working for a company, or have retained links with one
that you used to work for, or someone you know works for or better still owns a
company, then there may be the opportunity for you to carry out a realistic
software development project. But as we point out below, such an arrangement
should be entered into with all parties clear about what the project will be about,
and how it will be carried out. It is after all, your academic project that is at stake.
Further techniques and information sources are presented in Dawson [Dawson, 2000].
These include:
• techniques for mapping out subject areas in terms of their related topics
• brainstorming ideas
• breaking down a project idea into likely chapters for the project report
Having presented some guidelines on how to arrive at a suitable topic for a project, it
seems appropriate to mention cases in which projects would not normally be
considered acceptable. Firstly, we make the point that although, in general, it makes
good sense for a project to draw on and consolidate material from subject areas other
than computing, all projects for the BSc (Hons) Computing must have a clear
computing focus. They should, ideally, be constructive in nature although this latter
requirement may sometimes be relaxed. A student having taken a module in
Information Systems Security for example, might wish to design and implement a
computer-based information system that supports some of the functions associated
with information systems security. A project that draws on the material from a course
on information systems security and results in the development of a software product,
would have every chance of receiving high marks if it were competently carried out to
a high standard. By way of contrast, a project on the implications of information
technology for information systems security, although a valid topic in its own right,
would not constitute an acceptable project for the BSc (Hons) Computing. (It might
well be an acceptable project on a different degree programme).
A second and equally important point is that projects that are too general, or that just
constitute a survey of basic textbooks or the rewriting of lecture notes will not be
acceptable for the award of an honours classification for the BSc (Hons) Computing.
You are required to demonstrate that you have defined and performed your own tasks
and not simply read around and summarised a subject using standard literature.
So, having come up with one or two ideas, how can you measure your understanding
of the project? The ‘so what’ test [Dawson, 2000] can be a useful starting point. Once
you have decided on what seems to be a good idea for a project, ask yourself a
number of questions:
These kinds of questions help you to determine that your intended project has value in
its completion. If its worth can be demonstrated, then you will be motivated to
complete it successfully. Having established that the project is worth carrying out,
how well do you understand it? Initially, try explaining it in relatively straightforward
terms to your supervisor. If you are unable to explain it clearly, or unable to answer
questions put to you by your supervisor, then you do not yet fully understand what the
project will entail.