~ GCSE Programming, GCSE Coding, Learn to code for GCSE Level, Intro


Coding / Programming  

- 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.

What you need to know

1. You'll need to learn all programming essentials (we provide plenty of tutorials on TeachingComputing.com and please also have a look at www.teachyourselfpython.com and www.teachyourselfjavascript.com

  • 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
  • open
  • read
  • write
  • close 
  • 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.

  • Python
  • C family of languages (for example C# C++ etc.) 
  • Java 
  • JavaScript
  • Visual Basic/.Net
  • PHP (usually used in conjuction with HTML and JavaScript)
  • Delphi
  • SQL
  • BASH

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:

Analysis

  1. how to analyse and identify the requirements for a solution to the proble
  2. how to set clear objectives that show an awareness of the need for real world utility
  3. how to use abstraction and decomposition to design the solution to a problem
  4. how to identify the data requirements for their system
  5. how to identify test procedures to be used during and after development to check their system against the success criteria
  6. how to use validation to ensure a robust solution to a problem.

Design

  1. how to design suitable algorithms to represent the solution to a problem
  2. how to design suitable input and output formats and navigation methods for their system
  3. how to identify suitable variables and structures with appropriate validation for their system
  4. how to use appropriate data types in their system
  5. how to use functions/sub programmes to produce structured reusable code
  6. how to select suitable techniques for the development of the solution.

Development

  1. how to develop a solution to the identified problem using a suitable programming language(s)
  2. how to demonstrate testing and refinement of the code during development
  3. how to explain the solution using suitable annotation and evidence of development
  4. how to use suitable techniques to solve all aspects of the problem
  5. how to take a systematic approach to problem solving
  6. how to deploy practical techniques in an efficient and logical manner
  7. how to show an understanding of the relevant information by presenting evidence of the development of their solutions
  8. how to show an understanding of the technical terminology/concepts that arise from their investigation through analysis of the data collected
  9. 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.

Testing 

  1. how to produce a full report covering all aspects of the investigation
  2. how to present the information in a clear form which is understandable by a third party and which is easily navigatable
  3. how to critically appraise the evidence that they have presented
  4. how to test their own solution

Evaluation

  1. how to present their evaluation in a relevant, clear, organised, structured and coherent format
  2. how to use specialist terms correctly and appropriately
  3. how to present a conclusion to the report
  4. how to justify their conclusions based on the evidence provided.

Programming Skills

www.teachyourselfpython.com

  • 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
  • open
  • read
  • write
  • close 
  • 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.
Topic 4
Topic 5
Topic 6