编程题目任选,领域可选择 Artificial Intelligence
或者 Information Security
.
但是要求需要完成300个小时的工作量。可选择理论或者实践项目。
![Artificial
Intelligence](https://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/D%C3%A9tection_de_personne_-
_exemple_3.jpg/220px-D%C3%A9tection_de_personne_-_exemple_3.jpg)
Introduction
This booklet concerns individual projects, in particular for the following
courses:
- CS3821 Full unit project (30 credits)
- CS3822 Individual project in artificial intelligence (30 credits)
- IY3821 Full unit project (Information Security) (30 credits)
CS3822 and IY3821 will involve projects relevant to Artificial Intelligence
and Information Security respectively. CS3821 (full unit) will have projects
drawn from a range of topics in Computer Science.
This document contains all the information that you will need from choosing a
project title, right up to writing up, submitting and being assessed.
You should read this guide carefully in order to better understand the
criteria used in assessing a project!
What is a project
An individual project is a piece of individual work done under the guidance of
an academic supervisor. It should be about 300 hours of work.
Different projects may stress theoretical aspects of a problem, or practical
(programming/implementation) aspects, or may be essentially of a survey type.
- You will have to submit a project plan, programs that you have written, an interim report for the December Review meeting, draft and final project reports.
- You will have to present your project and demonstrate the software that you have developed to staff and fellow students.
- You will have to keep a work diary up to date, attend meetings for which you have prepared in advance, and store all of your work on the Departmental SVN server or on a private GitHub repository.
Why do a project?
The Department requires all single honours Computer Science students to do a
full unit individual project. Students on joint honours courses are also
encouraged to do a full unit project, but other course commitments may mean
that a half unit project is more appropriate.
A project is valuable to you because it is your opportunity to demonstrate
your ability to work individually. Success in your project will provide
evidence of your skills to any future employer and students often use their
project supervisors as referees after completing their degree.
Your project may be the most enjoyable part of your undergraduate studies. You
get to choose a topic of personal interest and to study it in depth.
How do you complete a project
You will be assigned to a supervisor. Your supervisor takes the role of your
line manager in a company. They are certainly not there to teach you the
material for your project. The project eventually is your own, and you have to
take individual responsibility for its success.
You will have a number of brief meetings with your supervisor and at these
meetings they will give you feedback on the work you have done, suggest new
targets and help with any particular questions that you have.
You are required to organise your own time, to keep a work diary, deliver
reports and programs for assessment and comment, and to update your SVN or
private GitHub repository 1 regularly.
Use your supervisor to good effect. Hand in regular reports, show them your
code and keep them up to date on your progress towards your final
deliverables. They can help assess your writing style, your coding style and
your understanding of the relevant theory.
The success of your project relies on steady hard work throughout the time you
have available.
Choosing a project and finding a supervisor
Projects are allocated towards the end of the previous academic year. This
allows you time to do some background research and begin a project plan over
the summer vacation.
The list of available projects (excluding those from Information Security)
topics is available on the Full Unit Topic List Web Site from Friday, 15th
March, 2019. The list for Information Security students is available at
Information Security Topic List Web Site.
If you intend to do a project you must submit your preferences using the
ballot web site. On this site you drag five project choices to a submission
area, choose your name from a drop down list and press the Submit button. You
then see a report of the projects you have chosen. You should make sure that
the choices you submit are ordered according to how much you like them, with
your favourite project topic at the top of the list.
You can submit your choices any number of times, in case you change your mind,
until the ballot deadline on Friday, 3rd May, 2019.
The project topics
As each supervisor has a limited capacity for project students, and some
supervisors will only allow one student to do any particular project topic, it
is imperative that you choose as wide a range of projects as possible on the
ballot web site.
Some projects have prerequisites attached. Typically, this means that you must
be registered for certain third year courses, or have certain key skills. Make
sure that you pick projects that you will be able to do.
Designing your own project title
Students are usually not allowed to attempt non-standard projects (projects
that are not on the departmental list). This is to ensure that all projects
have a sufficient academic content, and that they are not too ambitious.
If you wish to attempt a project that is not on the departmental list then you
must find a supervisor willing to take on that project and submit the project
description, including all of the sections that you see in standard topics
list, to the projects committee. During the allocation process the projects
committee will decide whether you are able to do the project that you have
devised with the supervisor you have chosen.
In any event it is essential that you choose five topics from the departmental
list using the project ballot web site.
Your supervisor
When all project preferences have been collected an optimising computer
algorithm allocates students to appropriate supervisors, taking student
preferences and staff workloads into account. You will be notified of your
allocation by email and on the departmental web site.
You must arrange a first meeting with your supervisor before the end of the
summer term. This is entirely your responsibility.
The project title allocated to you automatically by the system is not final.
At your first meeting with your supervisor you might opt for a project better
suited to your interests and skills. This must be a topic from the standard
list that your supervisor is willing to supervise.
Organisation of the project
This section describes the week by week requirements and processes involved
with an individual project.
Initial Meeting and Project Plan
After the project allocation is published and before the end of the summer
term it is essential that you arrange an initial project meeting with your
supervisor. At this meeting you should discuss the project topic and decide
what background reading might be helpful over the summer.
You must also discuss the structure of your project. In what order you will be
learning key skills and basic theory. You will also decide, in principle, what
the final project will look like.
Following this meeting, over the summer, you will prepare a project plan:
- Briefly describe the project reports that you will be writing in the first term. Such reports will form the basis of your final project report. Typically you will write reports on key background concepts, mathematical theory, algorithms, technologies and relevant literature.
- Briefly describe “proof of concept” programs that you will write in the first term. These programs “prove” that you can code all of the algorithms required, that you can make an appropriate user interface, and that you can use key technologies and libraries effectively.
- Write a short “abstract” indicating why you are doing the project and what you expect the final project to achieve.
- Write a timeline that includes starting and delivery dates for all of the first term reports and programs. It should also include important milestones, with dates, for the second term.
- List the material that you read while preparing your plan, describing its relevance and key content. This will typically include a main book, some web pages and perhaps some research or review papers.
- Write a short section describing the key risks (things that might go wrong) associated with your project. Each risk should have some mitigation: what you will do in order to make sure that the risk is not realised, or to contain the impact of the risk if it is realised.
Your supervisor will decide whether the schedule of reports and programs,
together with the overall project milestones, is a sufficient and effective
plan for the project. They will also help you to decide how best to modify and
implement the plan. You will receive written comments from your supervisor to
help you to improve your project plan.
Project meetings
During the first (autumn) term in which you are working on your project you
are entitled to a twenty minute meeting with your supervisor in the first
teaching week, and then a meeting once every two weeks. You should contact
your supervisor as early as possible during this term to arrange the time for
these meetings.
During your first project meeting you should discuss your project plan to
agree deliverables and milestones. You should decide on a schedule of work for
the first two weeks so that you can begin to work on your project as soon as
possible.
In the second term you will have a meeting with your supervisor in the first
two weeks of term, and then three further meetings. The first of these second
term meetings will be to review progress made so far, the outcome of the
December review, and to plan the work for the term. You should arrange to meet
again once in the middle of term to discuss any issues that have arisen. You
should then meet twice more towards the end of the term to discuss your draft
report, especially the professional issues section.
These meetings are the best way for both you and your supervisor to monitor
your progress.
There will not be time in your project meetings for supervisors to cover much
new material. So it is important that you arrive prepared with questions and
problems for discussion. You can ask your supervisor to read and review your
work before the project meeting. Such work must be made sent to the supervisor
for consideration at least two working days before the meeting.
It is vital that both you and your supervisor keep records at all project
meetings. In particular you must record any deadlines given to you and any
deliverables required of you. You are be required to make a record of all
project meetings in your project diary.
Project diary
You are required to keep a diary or workbook log. This will be invaluable when
you write your final report as it will help you to remember problems that you
found and dead ends that you investigated.
Use the notebook that you bring along to project meetings.
Saving to a file repository
We also require you to keep all reports, programs, notes etc. on your
departmental SVN repository or in a private GitHub repository. This will mean
that all of your work is backed up regularly and available to you and your
supervisor from home or at the Department. Use a sensible structure as you
will have lots of files.
You will submit all work using the departmental anonymous submission system.
For these submissions, your SVN or GitHub repository will also be very
helpful. You can checkout a working copy, build appropriate executables etc.,
and then submit the resulting directory using the departmental anonymous
marking system.
Supervisor’s responsibilities
It is your supervisor’s responsibility to attend each of the project meetings,
or to re-organise the meetings if this is not possible.
Your supervisor will keep an attendance register of your meetings, and of your
professional conduct during your project. This, together with an assessment of
your project diary, will count 5% towards your final assessment.
Your supervisor will also discuss relevant professional issues during your
meetings in order to help you write the Professional Issues section of your
report (See Section 6).
The supervisor is there to monitor and advise. They are not there to teach.
There will not be time in your project meetings for supervisors to teach new
material. Supervisors will give you references and be willing to discuss
problems after you have studied new material.
The project reports
Your final project report is your most important deliverable, counting 30%
towards your final project mark. A final project report is approximately
15,000 words and must include a word count. It is acceptable to have other
material in appendixes.
Your interim report for the Interim Review meeting will count 10% . It should
be submitted as a single combined document. The total word count should be
about 5,000 words. The interim report should summarise the work you have done
so far, with sections on the theory you have learnt and the code that you have
written.
Writing the final report
You should aim to agree on the outline of your report with your supervisor as
early as possible. This will allow you to write up your work as you go along.
An example of a typical list of headings for a project report is attached. We
have also made available on Moodle a template final report both in Word and in
LATEX format. All reports must be submitted as a single file, in Portable
Document Format (pdf).
As your project progresses keep together all the work you do (in your SVN or
private GitHub repository), including early incorrect ideas and program
fragments. These will all be essential in explaining the development of your
work. Also remember to keep your project work diary up to date with any work
that you do for your report.
Your supervisor must see a complete draft of your report by Friday, 28th
February, 2020. This can be submitted by email as a Portable Document Format
(pdf) file. Their feedback can help improve the final version.
What must your final report contain
- A section motivating the project and giving the original project aims.
This section must include a description of how you think that the work
involved in your project will help in your future career. - A short section on professional issues (See Section 6) that raised concern during the year, particularly with respect to doing your project or the material contained in your project.
- Some sort of self-evaluation in the assessment section: How did the project go? Where next? What did you do right/wrong? What have you learnt about doing a project?
- A description of how to run any software that you have submitted, including any environmental requirements (Java version number, IOS version etc.,)
- A bibliography of works referred to in the text, or that have been read in order to understand the project.
- A theory section. This might include a literature survey, sections on specific theory, or even an interesting discussion on what you have achieved in a more global context.
- Sections describing the software engineering method that you used. If your project is based on a software product then this may even be most of your report.
- Lastly there are some added extras you might want to include. Perhaps parts of a program listing. Perhaps some sample output or experimental results. Often you will include a user manual (though complete installation and operating instructions are mandatory). These extra documents may be put into an appropriate appendix so as not to count towards the word limit.
To avoid the accusation of plagiarism (See Section 8) you must cite anything
that you quote from (or use images/diagrams or even pr ecis/reword) in the
text.
Professional Issues in your final project report
Ethical behaviour is concerned with what is good or bad, with moral duty and
obligation and as such deals with opinions and beliefs.
Professionalism in computing is concerned with the societal impact of computer
technology and the creation and understanding of policies for the ethical use
of such technologies.
Professional bodies such as the British Computer Society (BCS) and the
Association for Computing Machinery (ACM) help ensure professionalism and
ethical behaviour by providing standards and a code of individual conduct:
guaranteeing certain levels of competence, integrity and a commitment to the
interests of all end-users and other stakeholders.
I am amazed when I meet computer professionals in business and industry or
even computer science teachers in colleges and universities who fail to
recognise that their profession has social and ethical consequences Terrell
Ward Bynum (2003)
After completing a Royal Holloway Computer Science degree we expect that you
will be ready to be ethical computing professionals. To this end we include
material on professional issues in our undergraduate modules.
The individual project is no exception. By completing an individual project,
as well as the theory and practise essential to your chosen topic, you will
have acquired skills in time management, prioritisation and both oral and
written presentation.
Certainly you will have encountered some professional issues: correct
citation, licensing, accessibility etc.,
We require that you complete a short section on professional issues in your
final report.
What is required
The section in your project report must be clearly indicated. It can either be
part of the general flow of the report or it can be an appendix. It must be
approximately 1,000 words.
You must choose a topic that is relevant to your project (see the following
section for examples). Then you could:
- describe an example from the public domain of what can happen when professional issues are not properly addressed; or
- write about how a particular issue has been of concern to you in your project; or
- describe some professional issue that has arisen during your project and discuss its ethical or practical importance.
This section must be reflective and thoughtful and is a requirement for a
successful project submission. You must include a completed professional
issues section in the draft report given to your supervisor.
Possible Topics
Professional Issues occur wherever computing meets society. As such they are
always concerned with how people interact with computers and software. This is
a very wide area and you may well choose a topic not listed below but these
are given as guidelines to help you.
- Usability - accessibility, replacing humans, artificial intelligence. - Plagiarism - correct citation, using code with acknowledgement.
- Licensing - shareware, open source, copyright, patenting, reverse engineering.
- Safety - reliability, economic impact, trust, provided “as is” clauses.
- Privacy - web privacy, legal issues, data usage.
- Monopoly - proprietary formats, tie-ins, cartels, DRM, Google, Amazon, Microsoft, Apple.
- Management - appropriate costing of time and resources at the start of a project. Revision during project. Consultation with stakeholders.
Programs and other technical material
As well as the project reports, you must submit any programs that you have
written, both for the Interim review and with your final report. These must be
properly developed and documented and should be well written.
The programs that you write in the first term will be submitted at the same
time as the interim report, by 14:00 on Friday, 6th December 2019. Your
technical achievement in the first term will count 10% towards your final
project.
When you submit your final report you must submit finished programs for
assessment. These will count 30% towards your final project.
You should discuss with your supervisor what documentation is required in
addition to your final report. For example:
- Long or complicated test output (referred to in the report).
- Examples showing the use of the project.
- Detailed instructions for executing submitted programs.
- Copies of papers and other reference material used for the project.
It is usual to include such material in the appendix to the final report.