Computer Science - Year 11

Computer Science Overview

Term 1: Producing robust programs

In this unit students will be introduced to the issues a programer should consider to ensure that a program caters for all likely input values and how to deal with invalid data entry through input validation and authentication techniques. Students will be able to identify the purpose the difference between iterative and final/terminal testing as well as creating a suitable test plan using suitable test data (normal, boundary, invalid/erroneous).

  1. Students sit an assessment comprising questions similar to those found on the GCSE exam paper
Defensive design

The practice of planning for contingencies in the design stage of a project.

Anticipating misuse

Considering how an end user might accidentally or deliberately break a program and writing additional code to handle these situations.

Authentication

Verifying a user’s identity before they can use a system. Strong passwords over a certain length with symbols and mixed-case letters are advised.

Input validation

Ensuring data input by a user meets specific criteria before processing. Range check (e.g., 1 – 31); type check (e.g., a number, not a symbol); presence check (e.g., data has been input); format check (e.g., a postcode is written LLN(N) NLL).

Maintainability

Techniques and methods that make code easier to debug, update and maintain.

Naming conventions

Many programmers use defined naming conventions for variables, contents and procedures. Camel case is a popular one used in the industry where the first word of an identifier uses all lower case and all subsequent words start with a capital letter – e.g., studentsFirstName.

Indentation

Makes it easier to see where structures begin and end. Conditions, iterations and code inside procedures and functions should be indented.

Commenting

Used to explains sections of code. Ignored by the compiler.

Testing

Assessing the performance and functionality of a program under various conditions to make sure it works. Programmers need to consider all the devices the program could be used on and what might cause it to crash.

Iterative testing

Each module of a program is tested as it is developed.

Final/terminal testing

Checking that all the modules of a program work together as expected and the program meets the expectations of users with real data.

Syntax error

Rules of the language have been broken, so the program will not run. Variables not being declared before use. Incompatible variable types (e.g., sum = A); using assignments incorrectly (e.g., 2 + 2 = x); keywords misspelt (e.g., PRNT(Hello)).

Logical error

The program runs but does not give the expected output. Division by zero. Infinite loop. Memory full. File not found.

Test data

Values used to test a program – normal, boundary and erroneous.

Test data: Normal

Data supplied to a program that is expected. Using a program written to average student test scores as an example, if allowed scores are 0 – 100, normal test data would include all the numbers within that range.

Test data: Boundary

Data supplied to a program designed to test the boundaries of a problem. Using a program written to average student test scores as an example, if allowed scores are 0 – 100, boundary test data could be -1, 0, 1, 99, 100 and 101.

Test data: Invalid

Data of the correct type but outside accepted validation limits. Using a program written to average student test scores as an example, if allowed scores are 0 – 100, invalid test data could be -5, 150, etc.

Test data: Erroneous

Data of the incorrect type that should be rejected. Using a program written to average student test scores as an example, if allowed scores are 0 – 100, erroneous data might be the string hello, the real number 3.725, etc.

  • Spiritual
  • Moral
  • Social
  • Cultural
Develop the individual:

Create a supportive community:

Term 2: Boolean logic

In this topic, students will learn about a form of algebra called Boolean logic where all values are either True of False. These values are then used to test the conditions that selection and iteration are based around. Students will learn the binary logic of logic gate (AND, OR, NOT) and transistors in a computer systems and learn how to use algebra and truth tables to describe logical expressions.

Logic diagram

A method of expression Boolean logic in a diagram using a set of standard symbols that represent the various logic gates – AND, NOT, OR, NAND, etc.

Logic gate

A symbol in a logic diagram that represents a single gate – e.g., AND, OR, NOT.

Logic gate: AND

Accepts two inputs and produces one output. Both inputs must be TRUE (1) for the output to be TRUE (1) – otherwise, the output will be FALSE (0).

Logic gate: OR

Accepts two inputs and produces one output. At least one input must be TRUE (1) for the output to be TRUE (1) – otherwise, the output will be FALSE (0).

Logic gate: NOT

Accepts one input and produces one output. If the input is TRUE (1), the output will be FALSE (0). If the input is FALSE (0), the output will be TRUE (1).

Truth table

A notation used in Boolean algebra to define the output of a logic gate or logic circuit for all possible combinations of inputs.

  • Spiritual
  • Moral
  • Social
  • Cultural
Develop the individual:

Create a supportive community:

Term 3: Programming languages and IDEs

In this unit students will learn about the characteristics and purpose of both high and low level languages. Students will learn about the purpose of translators and the differents, benefits and drawback of using a compiler or an interpreter. This uit will also cover the tools and facilities available in an Integrated Development Environment (IDE) including editors, error diagnostics, run-time environment and translators and how each can be used to help a programmer develop a program.

  1. Students sit an assessment test comprising questions similar to those found on the GCSE exam paper
High-level language

Designed to allow the expression of a computer program in a way that reflects the problem being solved rather than the details of how the solution is produced. One-to-many.

Low-level language

Close to machine code and closely related to the design of the machine. One-to-one.

Translator

Takes a program written in one programming language and converts it to another.

Compiler

Translates high-level language source code into a computer’s machine code.

Interpreter

Translates and executes a program one statement at a time.

IDE

Integrated Develop Environment: A software application that provides comprehensive facilities for software development. Normally consists of a source code editor, build automation tools and a debugger.

IDE: Error diagnostics

IDE tools that provide detailed feedback on errors in code.

IDE: Run-time environment

A configuration of hardware and software. Includes the CPU type, operating system and any runtime engines or system software required by a particular category of application.

  • Spiritual
  • Moral
  • Social
  • Cultural
Develop the individual:

Create a supportive community:

Terms 3 & 4: Practical programming project

Students will undertake a practical programming project in the Python language allowing them to develop and demonstrate skills in designing, writing, testing and refining a program. This project will include a peer-review process. Practical programming skills will be assessed in paper 2 of the qualification.

  • Spiritual
  • Moral
  • Social
  • Cultural
Develop the individual:

Create a supportive community:

Term 5: Exam revision

Revision for GCSE exams.

  1. Paper 1: Computer systems - 1 hour 30 minutes, 80 marks (50% of total GCSE) || Paper 2: Computational thinking, algorithms and programming - 1 hour 30 minutes, 80 marks (50% of total GCSE)
  • Spiritual
  • Moral
  • Social
  • Cultural
Develop the individual:

Create a supportive community: