- for GCSE | Starting a Programming Project? | Preparing for Controlled Assessment
One of the things that sets this subject apart is that you will be learning how to code (programming skills). It's going to be an exciting journey but don't expect it to be easy! You will have to be willing to work hard and the pay off in the end will be well worth it! You are acquiring a much needed and highly valued skill. Don't forget to go through our mini projects section which takes you through the problem solving of OCR's NEA Controlled assessment sample tasks. See, for example, the 'CREATING A NETFLIX TYPE SYSTEM', mini project here. Full solutions and python files available to subscription members.
how to identify and use variables, operators, inputs, outputs and assignments
how to understand and use the three basic programming constructs used to control the flow of a program:
Sequence; Selection; Iteration
how to understand and use suitable loops including count and condition controlled loops
how to use different types of data, including Boolean, string, integer and real, appropriately in solutions to problems
how to understand and use basic string manipulation
how to understand and use basic file handling operations
how to define and use arrays (or equivalent) as appropriate when solving problems
how to understand and use functions/sub programs to create structured code.
2. Produce documentation or a project write-up.
For this you will need to follow the systems life cycle steps, namely:
Success criteria (what will a successful solution be)
Planning and design (flow charts and pseudocode)
Development (narrative of the process with explanations of code)
Testing and remedial actions (with narrative of changes made)
Evaluation (clearly linked to success criteria).
This process will allow learners to demonstrate the key elements of computational thinking:
Thinking abstractly – removing unnecessary detail
Thinking ahead – identifying preconditions and inputs and outputs
Thinking procedurally – identifying components of problems and solutions
Thinking logically – predicting and analysing problems
Thinking concurrently – spotting and using similarities.
In this section we are going to take you through how to tackle a sample project, examples of A* project work will be provided as well as code and tips and tricks.
All the best!
Sutiable Programming Languages?
If you head over to our coding lounge and click on the "programming languages" link, you'll note that there are literally hundreds of different languages. It also provides a graph and various data on which language is the most popular. For a project however, you need to think carefully about what language you will select. Your teacher may select one for you, and it is your job to learn it thoroughly:
For example, any of the following suitable HIGH LEVEL languages could be used.
C family of languages (for example C# C++ etc.)
Computational Thinking is key
It is important to note that Computational thinking is in essence the ability to model problems in a manner that makes them amenable to computational solutions; it is not simply instructions and actions. Computational thinkers are able to see algorithms, processes and data and know how to then implement them in their chosen language. Learners are encouraged to think computationally to solve a task and while doing so create a report detailing the creation of their solution, explaining what they did and why they did it.
In completing a project learners should know:
how to analyse and identify the requirements for a solution to the proble
how to set clear objectives that show an awareness of the need for real world utility
how to use abstraction and decomposition to design the solution to a problem
how to identify the data requirements for their system
how to identify test procedures to be used during and after development to check their system against the success criteria
how to use validation to ensure a robust solution to a problem.
how to design suitable algorithms to represent the solution to a problem
how to design suitable input and output formats and navigation methods for their system
how to identify suitable variables and structures with appropriate validation for their system
how to use appropriate data types in their system
how to use functions/sub programmes to produce structured reusable code
how to select suitable techniques for the development of the solution.
how to develop a solution to the identified problem using a suitable programming language(s)
how to demonstrate testing and refinement of the code during development
how to explain the solution using suitable annotation and evidence of development
how to use suitable techniques to solve all aspects of the problem
how to take a systematic approach to problem solving
how to deploy practical techniques in an efficient and logical manner
how to show an understanding of the relevant information by presenting evidence of the development of their solutions
how to show an understanding of the technical terminology/concepts that arise from their investigation through analysis of the data collected
how to use the terminology/concepts surrounding their topic and contained in the information collected correctly when it comes to producing analysis in the supporting script.
how to produce a full report covering all aspects of the investigation
how to present the information in a clear form which is understandable by a third party and which is easily navigatable
how to critically appraise the evidence that they have presented
how to test their own solution
how to present their evaluation in a relevant, clear, organised, structured and coherent format
how to use specialist terms correctly and appropriately
how to present a conclusion to the report
how to justify their conclusions based on the evidence provided.