Most chosen general qualifications exam board in England.

  • About AQA

  • Centre Services

  • Join Us

  • Contact Us

AQA
  • Subjects
  • Qualifications
  • Professional Development
  • Exams Admin
  • Services
  • Search
  • Subjects

  • Qualifications

  • Professional Development

  • Exams Admin

  • Services

  • About AQA

  • Centre Services

  • Join Us

  • Contact Us

  • Log in

Subjects

  • Accounting

  • Art and Design

  • Biology

  • Business

  • Chemistry

  • Computer Science

  • Dance

  • Design and Technology

  • Drama

  • Economics

  • English

  • Food preparation and Nutrition

  • French

  • Geography

  • German

  • History

  • Law

  • Mathematics

  • Media Studies

  • Music

  • Physical Education

  • Physics

  • Politics

  • Psychology

  • Religious Studies

  • Science

  • Sociology

  • Spanish

  • All subjects

GCSEs

  • Biology (8461)

  • Chemistry (8462)

  • Combined Science: Trilogy (8464)

  • English Language (8700)

  • English Literature (8702)

  • Geography (8035)

  • History (8145)

  • Mathematics (8300)

  • See all GCSEs

AS and A-levels

  • Biology (7401)

  • Business (7131)

  • Chemistry (7404)

  • Geography (7037)

  • History (7041)

  • Physics (7407)

  • Psychology (7181)

  • Sociology (7191)

  • See all AS and A-Levels

Other qualifications

  • Applied Generals

  • AQA Certificate Mathematics

  • Entry Level Certificates

  • Project Qualifications

  • Unit Award Scheme

  • All qualifications

Our training

  • Course finder

  • About our training

  • Online training

  • Face-to-face training

  • In-school training

  • Inside assessment

Courses by theme

  • Preparing for exams

  • Exams officers

  • Getting started

  • Unit Award Scheme

Courses by subject

  • English

  • Mathematics

  • Science

  • Languages

  • Design and Technology

  • Physical Education

  • Geography

  • History

  • All professional development

Dates

  • Dates and timetables

  • Key dates

Non-exam assessment (NEA)

  • NEA, coursework and controlled assessment

  • Deadlines for non-exam assessment

  • Record forms

  • Submit marks

Exams

  • Entries

  • Entry fees

  • Exams guidance

  • Question papers and stationery

  • Access arrangements

  • Special consideration

Results

  • Results days

  • Results slips

  • Grade boundaries

  • Results statistics

  • Post-results services

  • Exam certificates

  • All Exams Admin

Assessment Services

  • Centre Services

  • Associate Extranet

  • Become an associate

Products

  • All About Maths

  • Alpha Plus

  • Data Insights

  • Exampro

  • Project Q

  • Stride Maths

  • Testbase

  • Unit Award Scheme

News and Insights

  • AQI research and insight

  • News

  • Inside exams podcast

  1. Home
  2. Subjects
  3. Computer Science
  4. A-level Computer Science

A-level Computer Science7517

SpecificationPlanning resourcesTeaching resourcesAssessment resourcesKey dates
1.0 Introduction
2.0 Specification at a glance
4.0 Subject content – A-level
4.1 Fundamentals of programming
4.2 Fundamentals of data structures
4.3 Fundamentals of algorithms
4.4 Theory of computation
4.5 Fundamentals of data representation
4.6 Fundamentals of computer systems
4.7 Fundamentals of computer organisation and architecture
4.8 Consequences of uses of computing
4.9 Fundamentals of communication and networking
4.10 Fundamentals of databases
4.11 Big Data
4.12 Fundamentals of functional programming
4.13 Systematic approach to problem solving
4.14 Non-exam assessment - the computing practical project
5.0 Scheme of assessment
6.0 Non-exam assessment administration
7.0 General administration
AS and A-level Computer Science Specification Specifications for first teaching in 2015

AS and A-level Computer Science Specification Specifications for first teaching in 2015

21 Jan 2019

PDF | 1.31 MB

4.1 Fundamentals of programming

4.1.1 Programming

4.1.1.1 Data types

Content

Additional information

Understand the concept of a data type.

 

Understand and use the following appropriately:

  • integer
  • real/float
  • Boolean
  • character
  • string
  • date/time
  • pointer/reference
  • records (or equivalent)
  • arrays (or equivalent).

Variables declared as a pointer or reference data type are used as stores for memory addresses of objects created at runtime, ie dynamically. Not all languages support explicit pointer types, but students should have an opportunity to understand this data type.

Define and use user-defined data types based on language-defined (built-in) data types.

 

4.1.1.2 Programming concepts

Content

Additional information

Use, understand and know how the following statement types can be combined in programs:

  • variable declaration
  • constant declaration
  • assignment
  • iteration
  • selection
  • subroutine (procedure/function).

The three combining principles (sequence, iteration/repetition and selection/choice) are basic to all imperative programming languages.

Use definite and indefinite iteration, including indefinite iteration with the condition(s) at the start or the end of the iterative structure. A theoretical understanding of condition(s) at either end of an iterative structure is required, regardless of whether they are supported by the language being used.

 

Use nested selection and nested iteration structures.

 

Use meaningful identifier names and know why it is important to use them.

 

4.1.1.3 Arithmetic operations in a programming language

Content

Additional information

Be familiar with and be able to use:

  • addition
  • subtraction
  • multiplication
  • real/float division
  • integer division, including remainders
  • exponentiation
  • rounding
  • truncation.
 

4.1.1.4 Relational operations in a programming language

Content

Additional information

Be familiar with and be able to use:

  • equal to
  • not equal to
  • less than
  • greater than
  • less than or equal to
  • greater than or equal to.
 

4.1.1.5 Boolean operations in a programming language

Content

Additional information

Be familiar with and be able to use:

  • NOT
  • AND
  • OR
  • XOR.
 

4.1.1.6 Constants and variables in a programming language

Content

Additional information

Be able to explain the differences between a variable and a constant.

 

Be able to explain the advantages of using named constants.

 

4.1.1.7 String-handling operations in a programming language

Content

Additional information

Be familiar with and be able to use:

  • length
  • position
  • substring
  • concatenation
  • character → character code
  • character code → character
  • string conversion operations.

Expected string conversion operations:

  • string to integer
  • string to float
  • integer to string
  • float to string
  • date/time to string
  • string to date/time.

4.1.1.8 Random number generation in a programming language

Content

Additional information

Be familiar with, and be able to use, random number generation.

 

4.1.1.9 Exception handling

Content

Additional information

Be familiar with the concept of exception handling.

 

Know how to use exception handling in a programming language with which students are familiar.

 

4.1.1.10 Subroutines (procedures/functions)

Content

Additional information

Be familiar with subroutines and their uses.

 

Know that a subroutine is a named ‘out of line’ block of code that may be executed (called) by simply writing its name in a program statement.

 

Be able to explain the advantages of using subroutines in programs.

 

4.1.1.11 Parameters of subroutines

Content

Additional information

Be able to describe the use of parameters to pass data within programs.

 

Be able to use subroutines with interfaces.

 

4.1.1.12 Returning a value/values from a subroutine

Content

Additional information

Be able to use subroutines that return values to the calling routine.

 

4.1.1.13 Local variables in subroutines

Content

Additional information

Know that subroutines may declare their own variables, called local variables, and that local variables:

  • exist only while the subroutine is executing
  • are accessible only within the subroutine.
 

Be able to use local variables and explain why it is good practice to do so.

 

4.1.1.14 Global variables in a programming language

Content

Additional information

Be able to contrast local variables with global variables.

 

4.1.1.15 Role of stack frames in subroutine calls

Content

Additional information

Be able to explain how a stack frame is used with subroutine calls to store:

  • return addresses
  • parameters
  • local variables.
 

4.1.1.16 Recursive techniques

Content

Additional information

Be familiar with the use of recursive techniques in programming languages (general and base cases and the mechanism for implementation).

 

Be able to solve simple problems using recursion.

 

4.1.2 Programming paradigms

4.1.2.1 Programming paradigms

Content

Additional information

Understand the characteristics of the procedural- and object-oriented programming paradigms, and have experience of programming in each.

 

4.1.2.2 Procedural-oriented programming

Content

Additional information

Understand the structured approach to program design and construction.

 

Be able to construct and use hierarchy charts when designing programs.

 

Be able to explain the advantages of the structured approach.

 

4.1.2.3 Object-oriented programming

Content

Additional information

Be familiar with the concepts of:

  • class
  • object
  • instantiation
  • encapsulation
  • inheritance
  • aggregation
  • composition
  • polymorphism
  • overriding.

Students should know that:

  • a class defines methods and property/attribute fields that capture the common behaviours and characteristics of objects
  • objects based on a class are created using a constructor, implicit or explicit, and a reference to the object assigned to a reference variable of the class type
  • in the Unified Modelling Language (UML) composition is represented by a black diamond line and aggregation by a white diamond line.

Know why the object-oriented paradigm is used.

 

Be aware of the following object-oriented design principles:

  • encapsulate what varies
  • favour composition over inheritance
  • program to interfaces, not implementation.

Students would benefit from practical experience of programming to an interface, but will not be explicitly tested on programming to interfaces or be required to program to interfaces in any practical exam.

Be able to write object-oriented programs.

Practical experience of coding for user-defined classes involving:

  • abstract, virtual and static methods
  • inheritance
  • aggregation
  • polymorphism
  • public, private and protected specifiers.

Be able to draw and interpret class diagrams.

Class diagrams involving single inheritance, composition (black diamond line), aggregation (white diamond line), public (+), private (-) and protected (#) specifiers.

4.0 Subject content – A-level
4.2 Fundamentals of data structures
AQA
  • Become an examiner
  • Switch to AQA
  • Contact Us
  • Join us
  • Terms and conditions
  • Accessibility
  • Modern slavery statement
  • Privacy notice
  • Cookie notice
  • X
  • LinkedIn
  • Youtube

©AQA 2025 | Company number: 03644723 | Registered office: Devas Street, Manchester, M15 6EX | AQA is not responsible for the content of external sites

AQA Education has obtained an injunction preventing interference with public examinations. This notice is to alert you to the injunction, so that you are aware of it and can make submissions about it if you wish to do so.