# Mark Scheme
_Fully or nearly fully articulated design for a real problem, that describes how all or almost all of the key aspects of the solution/investigation are to be structured/are structured._
# Headings
## Overview
_It is most beneficial if the design section starts with an overview. Whilst this might contain a variety of diagrams students should take time to explain what these diagrams are showing. The aim of the overview section is to show how the student has broken down their solution. This is also a good opportunity to discuss any framework (for example, Unity) that is being used and to discuss how this affects their design._
## Modules
[[Design Module Example]]
_Students should organise their design sections according to the main ‘chunks’ of their project. So, for example, if the system is to schedule parents’ evening slots it would be good to have a sketch of this for UI work, followed with any data structure usage, some pseudocode for how that part of the project will work and the SQL queries required. Some example query data would also be very useful to allow a reader, and potential programmer, to get a real feel as to how that section of the project should work. Then the student should move on to the next ‘chunk’ of the project._
_For data structures, students should give example data for their project and show how this might be manipulated by algorithms utilising this data structure. So, for example, a chess engine will require the ability to store a representation of a board so it would be beneficial to sketch out a board position and then show how this would be represented in the proposed data structure._
_User Interface sketches are very useful in providing an idea as to how the project will look, especially if they are annotated and with a discussion underneath about how actions are performed. It would also be beneficial to provide example data on these sketches rather than just blank areas._
The acid test: could a competent person reconstruct your project using your designs?
# Design Checklist
## Overview
- [ ] Discuss technologies used (Java, Unity, MySQL)
- [ ] Modules used and how they link together
- [ ] UML Diagram (See example here [[Improved Mock Skeleton]]
## GUI
- [ ] GUI Flow diagram (See example here [[GUI Database with Collection]])
- [ ] Description of algorithms (if appropriate)
- [ ] Code
## Modules
For each Module include the following (where appropriate)
- [ ] Sketches
- [ ] Data representation
- [ ] Validation and Exception Handling (see Testing)
- [ ] Sample Data
- [ ] Description of algorithms
- [ ] Code
## Database
- [ ] ER Diagram design
- [ ] Description as to what data needs to be stored and what this might look like in the system.
- [ ] Example data
- [ ] Design of the UI or talk through of how data might be displayed back to the user.
## APIs
- [ ] APIs to be used and calls required.
- [ ] List of the key functions from the API to be used
- [ ] Example data to be passed into the API and what the system would return
- [ ] Discussion of how algorithms may work, pseudo-code or diagrams