A Level Computer Science AQA

This subject is broken down into 127 topics in 12 modules:

  1. Big data 15 topics
  2. Fundamentals of Algorithms 15 topics
  3. Fundamentals of Databases 13 topics
  4. Fundamentals of Programming 15 topics
  5. Fundamentals of Data Structures 3 topics
  6. Systematic Approach to Problem Solving 5 topics
  7. Theory of Computation 12 topics
  8. Fundamentals of Data Representation 25 topics
  9. Fundamentals of Computer Systems 8 topics
  10. Fundamentals of Computer Organisation and Architecture 8 topics
  11. Consequences of Uses of Computing 3 topics
  12. Fundamentals of Communication and Networking 5 topics
Study this subject in the Adapt App →
  • 12
    modules
  • 127
    topics
  • 49,826
    words of revision content
  • 6+
    hours of audio lessons

This page was last modified on 28 September 2024.

A preview of A Level Computer Science AQA in the Adapt app

Adapt is a revision planning app with full content coverage and unlimited past paper questions for 1,200+ GCSE and A Level subjects.

Study this subject in the Adapt app →

Computer Science

Fundamentals of Programming

Programming: Data Types

🤓 Study

📖 Quiz

Play audio lesson

Programming: Data Types

Fundamental Data Types

  • Integer: A whole number that can either be a positive or negative number, including zero.
  • Real or Float: These represent fractional or decimal numbers. They must include a decimal part.
  • Boolean: These can only hold two different values, typically represented as True and False.
  • Character and String: A character is a single letter, number, space, punctuation mark, or symbol. A string is a sequence of characters.
  • Array: A type that can hold multiple values of one data type.

Composite Data Types

  • Record: A data type that allows you to group multiple data values of various types.
  • Enumeration: Data type that allows a variable to be assigned a predefined list of named integer constants.
  • Set: A collection of well-defined objects known as elements.

Dynamic Data Types

  • List: An ordered collection of items which may contain duplicate items.
  • Linked List: A linear collection of data elements, whose order is not given by their physical placement in memory.
  • Queue: A collection in which the entities in the collection are kept in order and the principal operations are the addition of entities to the rear terminal position and removal of entities from the front terminal position.
  • Stack: A collection of elements, with two main operations - push (add an item) and pop (remove an item).

Type Conversion & Casting

  • Type Conversion: The process of changing one data type into another data type in order to perform some operation.
  • Type Casting or Type Coercion: An operations that convert one data type into another. It's usually done explicitly using the casting operator.
  • Implicit Conversion: Automatic conversion of one data type into another data type by compiler.
  • Explicit Conversion: It's done by users using a pre-defined function.

Operators and Data Types

Operator types include Arithmetic, Relational, Logical, Bitwise, Assignment operators, which interact with different data types.

  • Math operators like

    +

    ,

    -

    ,

    *

    ,

    /

    can work with numeric types like Integer or Float.
  • Equality and comparative operators work with numeric types and sometimes strings depending on the programming language.
  • Logical operators

    AND

    ,

    OR

    ,

    NOT

    work on Boolean types.
  • The

    ==

    operator can be used to compare strings for equivalence, but

    >

    ,

    <

    ,

    >=

    ,

    <=

    operators cannot.

Null or None Type

  • The term None or Null is a special type that has only one value: None. It signifies the absence of a value or a null value. It is not the same as False, 0, or any empty list, string, etc.

All these data types are fundamental to understanding how programs manage and manipulate data.

Course material for Computer Science, module Fundamentals of Programming, topic Programming: Data Types

Computer Science

Systematic Approach to Problem Solving

Software Development: Testing

🤓 Study

📖 Quiz

Play audio lesson

Software Development: Testing

Introduction to Software Development: Testing

  • Software testing is the assessment of software to detect differences between existing and required conditions (that is, bugs) and to evaluate the features of the software.
  • It serves as an objective, independent view of the software to allow the business to appreciate and understand the risks at implementation.

Importance of Testing in Software Development

  • Testing is crucial since it uncovers and fixes bugs and issues in the software before the product goes live.
  • It secures the functionality of the software and ensures it performs as expected, thus, building user trust and satisfaction.
  • It enables the organization to produce a quality product which stands out amidst competitors.

Different Types of Software Development Testing

Unit Testing

  • This tests individual units or components of the software to validate that each performs as designed.

Integration Testing

  • This evaluates combined parts of an application to determine if they function together correctly. It's particularly necessary for multi-tiered applications.

System Testing

  • This verifies that the system as a whole works properly and meets its specified requirements.

Acceptance Testing

  • It's a formal testing which includes a suite of tests where system is tested for acceptability. The purpose of this testing is to evaluate the system's compliance with the business requirements and the delivery of the functionalities required by the end user.

Non-Functional Testing

  • It includes usability testing, performance testing, and security testing, with the aim of validating the non-functional aspects of the software.

Implementing Software Development Testing

  • Various tools and frameworks exist to assist with software testing, such as JUnit for unit testing or Selenium for automating browser actions.
  • Tests should ideally be automated where possible to streamline the testing process and maximise consistency.

Potential Issues and Solutions

  • Overemphasis on functional testing can often lead to neglect of non-functional aspects of the software. To address this, balance should be maintained between functional and non-functional testing.
  • Automation of tests can be a time-consuming initial investment, but the pay-off is greater efficiency in the long run compared to manually running tests for each software update.

Course material for Computer Science, module Systematic Approach to Problem Solving, topic Software Development: Testing

Can I trust Adapt’s expertise?

Adapt is already used by over 600,000 students and trusted by over 3,000 schools. Our exam-specific content and assessments are meticulously crafted by expert teachers and examiners. To date, 2,446 students have studied for their A Level Computer Science AQA exams on the Adapt App.

Find out more about the Adapt app →

Planner

An always up-to-date revision timetable.

A personalised, flexible revision timetable that stays up-to-date automatically.

Content

All the exam resources, in one place.

Over 20,000 topics broken down into manageable lessons with teacher-written, exam-specific lessons.

Assessment

Past-paper questions, with instant feedback.

Unlimited past paper questions with instant examiner feedback on how to improve.

Progress

Track progress, together.

Progress tracking to stay motivated, with real-time updates to the Parent Portal.

Download the app today to start revising for free.