Subject content

This is an extract of the full specification, which you can download from this page.

This subject content should be taught within a range of realistic contexts based around the major themes within the specification of web, mobile, gaming and more traditional coding systems. A number of the sections will benefit from being taught holistically to gain the most from the specification. For example, algorithms could be taught alongside programming techniques as there is a close relationship between them.

Throughout the subject content the learning outcomes are specified. These will not change during the lifespan of the specification. There is no intention for the assessment to go beyond the items listed other than in exceptional circumstances, for example where the speed of the introduction of a ubiquitous new technology outstrips the speed at which the specification can be updated.

Overview of the subject content:

3.1.1 Constants, variables and data types

 

Subject Content  Learning Outcomes 
  • data and information
  • constants
  • variables
  • data types
  • purpose of data types
  • understand what is meant by the terms data and information
  • be able to describe the difference between a constant and a variable
  • understand when to use constants and variables in problem solving scenarios
  • understand the different data types available to them. As a minimum, students should know about integer, Boolean, real, character and string data types and how these are represented in the programming language(s) they are using
  • be able to explain the purpose of data types within code
  • understand and be able to program with 1 and 2 dimensional arrays
  • be able to use NOT, AND and OR when creating Boolean expressions and have experience in using these operators within coded solutions.

3.1.2 Structures

 

Subject Content  Learning Outcomes 
  • how data types can be combined to make data structures
  • how data structures can make coding a solution to a problem simpler

           Students should:

  • be able to explain what a data structure is
  • be able to produce their own data types that go beyond the built in structures of the language(s) they are using, such as arrays or lists. These could include, for example, records in Delphi, structs in C or classes in Python and Java. The actual structures would depend on the language(s) being used by the students
  • understand and be able to explain why data structures can make coding a solution simpler.

3.1.3 Program flow control

 

Subject Content Learning Outcomes
  • sequencing
  • selection
  • iteration

 

            Students should:

  • understand the need for structure when designing coded solutions to problems
  • understand how problems can be broken down into smaller problems and how these steps can be represented by the use of devices such as flowcharts and structure diagrams
  • understand and be able to describe the basic building blocks of coded solutions (ie sequencing, selection and iteration)
  • know when to use the different flow control blocks (ie sequencing, selection and iteration) to solve a problem.

 

3.1.4 Procedures and functions

 

Subject Content   Learning Outcomes
  • what procedures and functions are
  • when to use procedures and functions
  • writing your own procedures and functions
  • built-in functions
  • parameters
  • return values

         Students should:

  • understand what procedures and functions are in programming terms
  • know when the use of a procedure or function would make sense and would simplify the coded solution
  • know how to write and use their own simple procedures and functions
  • know about and be able to describe common built in functions in their chosen language(s)
  • use common built-in functions in their chosen language(s) when coding solutions to problems
  • understand what a parameter is when working with procedures and functions
  • know how to use parameters when creating efficient solutions to problems
  • understand the concepts of parameters and return values when working with procedures and functions.

 

3.1.5 Scope of variables, constants, functions

 

Subject Content Learning Outcomes
 

               Students should:

  • know what is meant by the scope of a variable, constant, function or procedure
  • be able to identify what value a particular variable will hold at a given point in the code.

 

3.1.6 Error handling

 

Subject Content  Learning Outcomes 
  • different types of error that can occur
  • how to test your code for errors
  • how to detect errors from within code
  • how to recover from errors within the code

          Students should:

  • be able to discuss and identify the different types of errors that can occur within code (ie syntax, run-time and logical)
  • understand that some errors can be detected and corrected during the coding stage
  • understand that some errors will occur during the execution of the code
  • know how to detect errors at execution time and how to handle those errors to prevent the program from crashing where desirable
  • be able to use trace tables to check their code for errors
  • understand that computer programs can be developed with tools to help the programmer detect and deal with errors (eg Watch, Breakpoint, Step).

 

3.1.7 Handling external data

 

Subject Content   Learning Outcomes  
  • using text files to read/write data
  • using databases to read/write data

         Students should:

  • know how to use an external text file to read and write data in a way that is appropriate for the programming language(s) used and the problem being solved
  • know how to read and write data from an external database in a way that is appropriate for the programming language(s) used and the problem being solved.

 

 

3.1.8 Computer structure: 3.1.8.1 Systems

 

Subject Content    Learning Outcomes 
 

              Students should:

  • be able to define a computer system (ie hardware and software working together to create a working solution)
  • understand and be able to discuss the importance of computer systems to the modern world
  • understand that computer systems must be reliable and robust and be able to discuss the reasons why this is important.

 

3.1.8.2 Hardware

Subject Content Learning Outcomes
 

                Students should:

  • be able to describe and explain the fundamental pieces of hardware required to make a functioning computer system
  • be able to discuss how developments in different hardware technologies (including memory and processor) are leading to exciting innovative products being created, eg in the mobile and gaming industries
  • be able to categorise devices as input or output depending on their function.

 

3.1.8.3 CPU (Central Processing Unit)

Subject Content Learning Outcomes
 

                Students should:

  • be able to describe the purpose of the processor(CPU)
  • understand how different components link to a processor (ROM, RAM, I/O, storage, etc)
  • be able to explain the effect of common CPU characteristics on the performance of the processor. These should include clock speed, number of cores and cache size/types.

 

3.1.8.4 Memory

 

Subject Content   Learning Outcomes  
 

             Students should:

  • know the differences between non-volatile and volatile memory
  • understand the purpose of both types of memory and when each should be used
  • be able to explain the purpose of virtual memory and cache memory
  • be able to explain the concept that data and instructions are stored in memory and processed by the CPU.

 

3.1.8.5 Secondary storage

 

Subject Content    Learning Outcomes   
 

           Students should:

  • understand what secondary storage is and be able to explain why it is required
  • be able to describe the most common types of secondary storage
  • understand how optical media, magnetic media and solid state work.

 

3.1.9 Algorithms

Subject Content   Learning Outcomes   
 

             Students should:

  • understand that algorithms are computational solutions that always finish and return an answer
  • be able to interpret simple algorithms to deduce their function
  • be able to create algorithms to solve simple problems
  • be able to detect and correct errors in simple algorithms.

 

3.1.10 Data representation

Subject Content   Learning Outcomes   
 

             Students should:

  • understand that computers use the binary alphabet to represent all data and instructions
  • understand the terms bit, nibble, byte, kilobyte, megabyte, gigabyte and terabyte
  • understand that a binary code could represent different types of data such as text, image, sound, integer, date, real number
  • understand how binary can be used to represent positive whole numbers (up to 255)
  • understand how sound and bitmap images can be represented in binary
  • understand how characters are represented in binary and be familiar with ASCII and its limitations
  • understand why hexadecimal number representation is often used and know how to convert between binary, denary and hexadecimal.

 

3.1.11 Software development life cycle

Subject Content   Learning Outcomes   
 

             Students should:

  • understand the software development life cycle
  • be able to explain what commonly occurs at each stage of the software development life cycle
  • be able to identify at which stage of the software development life cycle a given step would occur
  • understand that there are several lifecycle models that can be used (eg cyclical, waterfall, spiral)
  • be able to discuss the advantages and disadvantages of these lifecycle models.

 

3.1.11.1 Prototyping

Subject Content   Learning Outcomes   
 

             Students should:

  • understand what prototyping is
  • be able to discuss the advantages and disadvantages of using prototyping when developing solutions
  • have experience of using prototyping to create solutions to simple problems.

 

3.1.12 Application testing

Subject Content   Learning Outcomes   
 

             Students should:

  • understand the need for rigorous testing of coded solutions
  • understand the different types of tests that can be used, including unit/modular testing
  • be able to create suitable test plans and carry out suitable testing to demonstrate their solutions work as intended
  • be able to hand test simple code designs/algorithms using trace tables.

 

3.1.13 Networking

Subject Content   Learning Outcomes   
 

            Students should:

  • understand what a computer network is
  • be able to discuss the advantages and disadvantages of using a computer network
  • be able to describe and explain the bus, ring and star networking topologies
  • be able to discuss the advantages and disadvantages of each of these topologies.

 

3.1.13.1 Client server

Subject Content   Learning Outcomes   
 

             Students should:

  • understand the client-server model
  • be able to explain, in simple terms, the handshake process used in most modern networking protocols
  • be able to explain how coding for a client-server model is different from coding for a stand-alone application.

 

3.1.13.2 Web application concepts

Subject Content   Learning Outcomes   
 

            Students should:

  • understand the concept of coding at the server and client end
  • know what can be coded at the server end
  • know what can be coded at the client end
  • have experience of coding solutions to simple web application problems.

 

3.1.14 Use of external code sources

Subject Content   Learning Outcomes   
 

            Students should:

  • know of the existence of external code sources
  • know how to integrate code from these sources into their own code
  • be able to explain the advantages and disadvantages of using such sources.

 

3.1.15 Database concepts

Subject Content   Learning Outcomes   
 

             Students should:

  • understand the basic concepts of a relational database as a data store
  • be able to explain the terms record, field, table, query, primary key, relationship, index and search criteria.

 

3.1.15.1 Query methods (SQL)

Subject Content   Learning Outcomes   
 

            Students should:

  • be able to use create simple SQL statements to extract, add and edit data stored in databases.
  • have experience of using these SQL statements from within their own coded systems.

 

3.1.15.2 Connecting to databases from applications and web based apps

Subject Content  Learning Outcomes   
 

             Students should:

  • be able to use databases from within their own web based applications.

3.1.16 The use of computer technology in society

Subject Content   Learning Outcomes   
 

             Students should:

  • be able to evaluate the effectiveness of computer programs/solutions
  • be able to evaluate the impact of and issues related to the use of computer technology in society.