- •Integrated Programme of Development
- •What is the Project?
- •Choosing a Suitable Project
- •Complexity
- •3.1 Complexity examples
- •Methodology
- •Guidance on marking the Project
- •Examples of marked candidate responses
- •6.1 Quality of report [Total 3 marks]
- •6.2 Definition, investigation and analysis [Total 11 marks]
- •Quality of report
- •Introduction
- •Quality of report
- •Quality of report
- •Investigation:
- •6.3 Design [Total 12 marks]
- •Nature of the solution [8 marks]
- •Quality of report
- •Intended benefits [2 marks]
- •Limits of the scope of the solution [2 marks]
- •6.4 Software development, programming, testing and installation [Total 18 marks]
- •Development [4 marks]
- •Programming [5 marks]
- •Installation [4 marks]
- •Installation Plan
- •6.5 Documentation [Total 10 marks]
- •Systems maintenance documentation [4 marks]
- •Quality of report
- •6.6 Evaluation [Total 6 marks]
- •Discussion of the degree of success in meeting the original objectives [3 marks]
- •Quality of report
- •Evaluate the client’s and user’s response to the system [3 marks]
- •Quality of report
Choosing a Suitable Project
Students may choose to solve their problems by either the use of a software applications package and/or by writing their own program(s). The exact method of solution will be the choice of each student but the teacher will need to ensure that all options have been covered during the course so as to allow the student maximum flexibility in their choice of solutions. The use of a specific programming language is the responsibility of the school and will be determined by the available resources within the school. However if students choose to write their own program then the choice of language must allow them to construct their program in a structured modular approach. Previous experience of students' work indicates that the choice of certain projects, for example games, quizzes, word processing and websites that just provide information, make unsuitable projects and are not capable of achieving high marks unless they are both very well designed and clearly documented.
The following list is offered as a suggestion of some suitable projects but it is in no way complete and students should be actively encouraged to investigate.
Booking systems e.g. Doctor’s/Dentist’s/Hospital appointments, Leisure centre facilities, beauty salons etc.
Seat reservation systems for theatres, cinemas, concerts etc.
Control systems e.g. greenhouses, air conditioning, lifts, traffic lights etc.
Management of events e.g. School sports day and timetabling,
School revision programs e.g. a mathematics revision system based around the ‘Pacman’ game
Simulations of the physical world e.g. projectile motion and population modelling
Utilities e.g. encrypting and decrypting messages using a range of cryptographic techniques
Centres should be reminded that the project should be the student’s own work and so joint projects should not be allowed.
Projects can be executed in a variety of different ways including websites, phone applications and desktop applications. Where possible students should be allowed to choose and justify the most suitable solution for the problem that they are tackling. It is understandable that in some situations teachers may not feel comfortable supporting certain types of project.
Projects should not involve the use of a database management system (DBMS) on its own, as such systems offer a wide range of software wizards to create tables, forms, queries and code, making assessment of student understanding difficult. It is perfectly acceptable to use DBMSs to build databases that feed into other student programming solutions such as websites and applications.
Complexity
With such a variety of projects and matching solutions, it is important to give students a project that will stretch and demonstrate their skills. Judging the complexity of a project is not a straight forward task and if you are in doubt you should consult CIE for guidance. The following is a set of rough guidelines:
Options and Big O Notation - If a problem has only one set solution then this is normally not considered to be a complex problem. Ideally students should be trying to write efficient algorithms to help solve their client's problems. If a task allows for a variety of algorithms each of differing efficiency then this suggests that they are tackling a complex problem. They can then be judged on the efficiency of their solution, amongst other things.
Data volumes - If a solution can handle large amounts of data at once this suggests a complex solution. This might be the difference between a single user revision game and a revision game collecting and comparing the results from dozens of users. Or, this might be the difference between a scientific analysis tool collecting and processing information from multiple sensors as opposed to one.
Additional languages - Some languages may be considered more complex to use than others. For example if a student creates the same project in Lisp or C++, then the final project may be considered of a higher complexity to one created in VB.NET.
A project may cover several areas, matching different complexity levels in each area. Projects aren't expected to be judged complex in each category and some complex projects may only cover one area. A holistic judgement should be applied to each project.
Complexity can be judged 1 to 4, with 4 being the most complex project. The following table illustrates different levels of complexity.
|
Project Areas |
||||
Databases |
Data Structures |
Files |
Websites |
Algorithms |
|
1 |
Single table SELECT Queries |
Correct datatypes |
Flat File, simple structures |
Static Webpages with CSS |
Non-modular code limited amount of code |
2 |
Multi-table INSERT, UDATE and DELETE |
Structures and custom made records |
Complex flat file structures |
Server and or client side scripting |
Use of functions and procedures |
3 |
Complex queries involving joins |
OOP |
Reading from XML, JSON |
Server side databases |
Modular code. Simple AI. Reused algorithms from course such as bubble sort or binary search |
4 |
DDL to CREATE, ALTER and DROP |
Polymorphism Multiple level inheritance |
Writing and updating XML, JSON |
AJAX |
Recursion, Tree traversal, Tree balancing, Dijkstra’s algorithm Big O notation complexity considered. Physics and chemistry simulations |
