Purpose of the project

The project allows students to develop their practical skills in the context of solving a realistic problem or carrying out an investigation. The project is intended to be as much a learning experience as a method of assessment; students have the opportunity to work independently on a problem of interest over an extended period, during which they can extend their programming skills and deepen their understanding of computer science.

The most important skill that should be assessed through the project is a student's ability to create a programmed solution to a problem or investigation. This is recognised by allocating 56 of the 100available marks to the technical solution and a lower proportion of marks for supporting documentation to reflect the expectation that reporting of the problem, its analysis, the design of a solution or plan of an investigation and testing and evaluation will be concise.

Types of problem/investigation

Students are encouraged to choose a problem to solve or investigate that will interest them and that relates to a field that they have some knowledge of. There are restrictions on the types of problem/investigation that can be submitted or the development tools (for example programming language is Python, SQL, and HTML/CSS/JavaScript) that can be used. The two key questions to ask when selecting a problem/investigation are:

● Does the student have existing knowledge of the field, or are they in a position to find out about it?

● Is a solution to the problem/investigation likely to give the student the opportunity to demonstrate the necessary degree of technical skill to achieve a mark that reflects their potential?

Some examples of the types of problem to solve or investigate are:

● a simulation for example, of a business or scientific nature, or an investigation of a well-known problem such as the game of life

● a solution to a data processing problem for an organisation, such as membership systems

● the solution of an optimisation problem, such as production of a rota, shortest-path problems or route finding

● a computer games

● enciphering and deciphering a message with Caesar Cipher or Multiplication Cipher using Python

● an application of artificial intelligence

● build a database given a few records and making sure that is normalised.

● a website with dynamic content, driven by a database back-end.

● an investigation into an area of computing, such as rendering a three-dimensional world on screen.

● investigating an area of data science using, for example, Twitter feed data or online public data sets

● investigating machine learning algorithms.

● a Database Engine (SQLite clone). To learn a lot about systems and backend programming

● A web crawler (to build your own search engine, for example). To learn about networking, concurrency, storage, and search.

  Section

Max mark

  1

  Analysis

12

  2

  Documented design

16

  3

  Technical solution (Implementation)

56

  4

  Testing

11

  5

  Evaluation

5

  Total

100