C代写:CS3821 Final Project

编程题目任选,领域可选择Artificial Intelligence或者Information Security. 但是要求需要完成300个小时的工作量。可选择理论或者实践项目。

Artificial Intelligence


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

  1. 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.
  2. 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.
  3. 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?
  4. A description of how to run any software that you have submitted, including any environmental requirements (Java version number, IOS version etc.,)
  5. A bibliography of works referred to in the text, or that have been read in order to understand the project.
  6. 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.
  7. 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.
  8. 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.