The program dossier is an individual piece of well-documented work, completed during the course, involving a problem that can be solved using computer systems. The emphasis is on the use of a logical approach and analytical thinking from definition and decomposition of the problem through to its solution by constructing algorithms in C++. The choice of problem is left to each student however the choosen project should allow for the demonstration of mastery as detailed

There are certain aspects in which mastery must be demonstrated. Mastery is defined as the ability to use an aspect appropriately for some non-trivial purpose which is well documented.

SL students must attempt to show mastery of **all seven** of the following aspects:

- arrays
**or**records**or**objects - selection constructs (branching)
- iteration constructs (looping)
- subprograms
- parameter passing
- sorting techniques
**or**searching - files

HL students must attempt to show mastery of **atleast nine** of the following aspects:

- inserting a new data item into a linked list
**or**tree - deleting a data item from a linked list
**or**tree - searching for a data item in a linked list
**or**tree - adding directly a new record to a file
- deleting directly a record from a file
- searching directly for a record in a file
- merging two sorted data structures
- user-defined functions
- using arrays, records or pointers as parameters
- recursion
- using more than one kind of composite data structure
**or**using one hierarchical composite data stucture

The assessment areas are given below. These apply equally to SL and HL program dossiers

- Analysing the problem
- Documenting the design process
- Using appropriate data structures
- Using efficient algorithms
- Designing a testing strategy
- Including an annotated hard copy of the test output
- Incorporting user friendly features
- Handling errors
- Implementing the program
- Using good programming style
- Evaluating solutions
- Including user documentation

There is one further requirement of HL students and that is that the program dossier includes linked lists or trees, pointers would most probably be used to implement these linked data structures

Once the program dossier is marked, a mastery factor is applied as shown below. The final mark for the project is multiplied by the mastery factor to give the overall mark

Level | Total number of different aspects in which the student demonstrates mastery | Mastery Factor |
---|---|---|

SL | 7 6 4 or 5 0, 1, 2 or 3 |
1.00 0.75 0.50 0.25 |

HL | 9, 10 or 11 7 or 8 5 or 6 0, 1, 2, 3 or 4 |
1.00 0.75 0.50 0.25 |