top of page

Search CSNewbs

290 results found with an empty search

  • Computer Science Newbies

    Homepage for learning about computer science in school. Discover topics across GCSE and Level 3 IT subjects, plus programming languages including Python, HTML and Greenfoot. C omputer S cience Newb ie s Popular topics: Python Programming Application Development OCR Cambridge Advanced National in Computing (AAQ) A-Level Computer Science You are viewing the mobile version of CSNewbs. The site will appear better on a desktop or laptop . OCR A-Level (H446) GCSE Computer Science OCR GCSE (J277) Latest YouTube Video Latest Blog Post Links & Information Millions of visits since 2017! About CSNewbs YouTube Channel Last updated: Monday 8th December 2025

  • 2.2 - Computational Methods | OCR A-Level | CSNewbs

    Learn about computational methods including problem recognition, decomposition, divide and conquer, abstraction, backtracking, data mining, heuristics, performance modelling, pipelining and visualisation. Based on the OCR H446 Computer Science A-Level specification. Exam Board: OCR A-Level Specification: Computer Science H446 2.2 - Computational Methods Watch on YouTube : Problem recognition Decomposition Divide and conquer Abstraction Backtracking Data mining Heuristics Performance modelling Pipelining Visualisation Computational methods are techniques to analyse problems and design efficient , effective solutions . Problem Recognition Problem recognition is the process of identifying that a problem exists and understanding its nature before attempting to solve it. It involves determining the aims of the task , identifying constraints and requirements , and clarifying what inputs , outputs and processes are expected from the solution . Effective problem recognition ensures the developer understands the real-world context and avoids solving the wrong problem or missing key details . It is the essential first step that guides all later stages of computational thinking and system design . YouTube video uploading soon Decomposition Decomposition involves breaking a complex system or task into smaller , more manageable components that are easier to design , implement and test . Each sub-problem should ideally be independent and solve a specific part of the overall task , which helps reduce complexity and supports modular program design . This approach enables different developers to work on different components simultaneously and simplifies debugging , maintenance and future updates . By working through smaller logical parts , the full problem becomes far more approachable and structured . YouTube video uploading soon Divide and Conquer Divide and conquer is a technique that splits a problem into smaller sub-problems of the same type , solves them (often using recursion ), and then combines the solutions to produce the final answer . This approach can significantly improve efficiency by reducing large input sizes into more manageable chunks , as seen in algorithms like quicksort . Divide and conquer algorithms include a binary search and a merge sort . The time complexity of divide and conquer algorithms is logarithmic - O(log n) - allowing complex problems to be solved much quicker than other algorithms . YouTube video uploading soon Abstraction Abstraction means removing unnecessary details to focus only on the most important features of a problem or system . It allows programmers to create simplified models that capture essential behaviour without becoming overwhelmed by irrelevant complexities . Abstraction enables generalisation , reusable designs and clearer reasoning about how components interact . In computational contexts, abstraction also highlights the difference between real-world systems and their simplified computational models . YouTube video uploading soon Backtracking Backtracking is used to explore possible solutions to a problem by building a partial solution and abandoning it as soon as it becomes clear it cannot succeed . It works by trying an option , checking whether it leads towards a valid solution , and backtracking to try a different path if a dead end is reached . This approach is used in constraint-based problems such as maze solving . While powerful , backtracking can be computationally expensive , so it often benefits from heuristics or pruning strategies . YouTube video uploading soon Data Mining Data mining is the process of extracting useful patterns , trends and relationships from large datasets . It enables organisations to identify hidden insights , predict behaviours and support data-driven decision-making , particularly in fields such as marketing , healthcare , finance and security . Data mining can lead to enhanced decision-making that can result in innovation , a competitive advantage against similar organisations and increased revenue . It can be used to identify anomalies or unused features . However, data mining doesn't explain the patterns it can identify and it requires powerful computers with a lot of processing power to handle huge amounts of data . YouTube video uploading soon Heuristics Heuristics are approximate problem-solving strategies that aim to produce good solutions quickly when exact , optimal methods are too slow or computationally impractical . They rely on rules of thumb to guide searches through very large solution spaces efficiently . Heuristics are widely used in artificial intelligence , optimisation tasks and complex search algorithms such as A* , where perfect accuracy is less important than fast , practical solutions . The trade-off is that heuristic methods are not guaranteed to produce the optimal answer , but they dramatically reduce processing time . YouTube video uploading soon Performance Modelling Performance modelling is the process of predicting how a system or algorithm will behave under different workloads , input sizes or hardware environments . It uses tools such as mathematical analysis , simulation and Big O notation to estimate required resources such as processing time or memory use . Performance modelling offers a cheaper , quicker and often safer way to test applications . For example, when a company beta tests an online game , it can trial the system with a smaller group of players and then apply performance modelling to predict how much server capacity will be needed when the game is fully released . YouTube video uploading soon Pipelining Pipelining is a technique in which different stages of a process are overlapped so that multiple instructions or operations are being processed simultaneously at different stages . In CPU architecture , for example, one instruction might be fetched while another is decoded and a third is executed , increasing overall throughput without increasing clock speed . Pipelining can also be used in algorithms or data-processing systems to prevent idle time in stages that operate independently . However, pipelining introduces complexity because dependencies or branch mispredictions may require a pipeline to be flushed - interrupting flow and reducing efficiency . YouTube video uploading soon Visualisation Visualisation supports the understanding of a problem by presenting information in a clearer and more accessible form than text alone . It is useful for explaining complex ideas or identifying patterns . Data can be shown visually through diagrams , graphs , trees , flowcharts or tables . The advantages of visualisation include helping to model , represent , analyse or summarise complex concepts . It allows information to be communicated more clearly and in a way that is easier to interpret . It can also provide different perspectives on how a problem might be solved . YouTube video uploading soon This page is under active development. Check here for the latest progress update. Q uesto's K ey T erms Computational Methods: problem recognition, decomposition, divide and conquer, abstraction, backtracking, data mining, heuristics, performance modelling, pipelining, visualisation D id Y ou K now? Real-time location services like Google Maps use heuristics to guess travel times using heuristics such as estimated speeds , traffic history and shortcuts to make fast but approximate route suggestions . 2.1 - Programming Techniques A-Level Topics 3.1a-d - Algorithm Complexity

  • 3.1a - 3.1d - Algorithm Complexity | OCR A-Level | CSNewbs

    Learn about pseudocode, procedural programming, big O notation (constant, linear, polynomial (quadratic), exponential, linearithmic and logartihmic) and the complexity of different data structure, sorting and searching algorithms. Based on the OCR H446 Computer Science A-Level specification. Exam Board: OCR A-Level Specification: Computer Science H446 3.1a - 3.1d - Algorithm Complexity Watch on YouTube : Pseudocode Procedural programming Big O notation Algorithm complexity Pseudocode Pseudocode is a simplified , language-independent way of writing algorithms that looks like programming but uses plain English to describe the steps clearly without worrying about exact syntax . The OCR A-Level Computer Science course uses a form of pseudocode unique to the exam board called 'OCR exam reference language ' that all code in exams will be written in . OCR exam reference language uses closing commands such as endif for an if statement and endwhile for a while loop . It also uses the word then instead of a colon like in Python . YouTube video uploading soon Procedural Language A procedural language , such as Python or Java , is a programming language that structures programs as sequences of step-by-step instructions grouped into procedures or functions . It focuses on breaking tasks into smaller , reusable blocks of code that operate on data , making programs easier to write , understand and maintain . This topic is in both Paper 1 and Paper 2 . YouTube video uploading soon Big O Notation O(n) Big O Notation is a way of describing how the time complexity (how long an algorithm takes ) and space complexity (how much memory it uses ) grows as the size of the input increases . This allows algorithms to be compared in terms of efficiency , using the letter n to refer to the size of the input . Complexity types: Constant - O(1) - The algorithm’s time or space stays the same no matter how large the input is . Linear - O(n) - The time or memory grows directly in proportion to the size of the input . Polynomial - O(n²) - The growth increases in proportion to the square of the input , often seen in algorithms with nested loops . Exponential - O(2ⁿ) - The time or memory doubles with each additional input element , becoming extremely slow very quickly . Logarithmic - O(log n) - The algorithm’s time grows very slowly as the input size increases , often achieved by repeatedly halving the data . Linearithmic - O(n log n) - A combination of linear and logarithmic behaviour, common in efficient sorting algorithms like merge sort . YouTube video uploading soon Algorithm Complexity Best-case , average-case and worst-case complexity describe how an algorithm performs under different input conditions . Best-case complexity is the time or space required when the algorithm meets the most favourable input , allowing it to finish as quickly or efficiently as possible . Average-case complexity represents the expected performance across typical or random inputs , giving a realistic view of how the algorithm behaves in normal use . Worst-case complexity is the maximum time or space the algorithm could ever require , used to guarantee performance even in the least favourable situation . Sorting and searching algorithms often have different case complexities for time and space . YouTube video uploading soon This page is under active development. Check here for the latest progress update. Q uesto's K ey T erms Pseudocode Procedural Language: input, output, comments, variables, casting, count-controlled iteration, condition-controlled iteration, logical operators, selection, string handling, subroutines, arrays, files Big O Notation: time complexity, space complexity, constant, linear, polynomial, exponential, logarithmic, linearithmic, best-case, average-case, worst-case D id Y ou K now? Minecraft doesn’t load the entire world at once ; instead, it divides the world into chunks and only generates or loads the chunks near the player . Finding , saving and retrieving these chunks uses data structures like trees and hash maps , which allow the game to look up a chunk in about O(log n) or even O(1) time , minimising lag even in large worlds . 2.2 - Computational Methods A-Level Topics 3.1e - Data Structure Algorithms

  • 2.1 - Programming Techniques | OCR A-Level | CSNewbs

    Learn about programming constructs such as sequence, iteration and branching, recursion, local and global variables, modularity, functions and procedures, parameter passing by value and by reference, Integrated Development Environment (IDE) tools and object-oriented techniques. Based on the OCR H446 Computer Science A-Level specification. Exam Board: OCR A-Level Specification: Computer Science H446 2.1 - Programming Techniques Watch on YouTube : Programming constructs Recursion Local & global variables Modularity Integrated development environment Object-oriented programming Programming Constructs Sequence , iteration and branching (also called selection ) are the three fundamental programming constructs used to build algorithms . Sequence means that instructions run in a specific order , one after another. Iteration is the repetition of a set of instructions , usually being count-controlled , such as for loops , or condition-controlled , such as while loops or do until loops . Branching (selection ) allows a program to choose between different actions based on a condition , using structures like if , elif , else or switch . YouTube video uploading soon Recursion Recursion is where a function calls itself to solve a problem by breaking it down into smaller , simpler versions of the same problem . Recursion is often used for tasks that naturally fit a 'divide and conquer ' structure , such as quicksort and merge sort algorithms. It is also used for depth-first tree traversals and solving mathematical problems like factorials or the Fibonacci sequence . Compared to iteration , recursion can produce clearer and more elegant solutions , but it may use more memory and can be less efficient if the recursion goes too deep or lacks a proper base case (stopping condition ) , potentially running out of memory . YouTube video uploading soon Local & Global Variables Local variables are created inside a function or block and can only be accessed there , which makes programs safer and easier to debug because changes to the variable cannot affect other parts of the program ; however, they cannot store values that need to be shared across multiple functions . Global variables are declared outside all functions and can be accessed anywhere in the program , making them useful for storing information that many parts of the program need , but they can lead to errors if different functions accidentally change them and can make the program harder to maintain . YouTube video uploading soon Modularity Modularity is the practice of breaking a program into smaller , self-contained parts so each section can be developed , tested and understood independently . Functions and procedures are modular units of code: a function returns a value , while a procedure performs a task without returning a value . When data is passed into a subroutine , it can be passed by value , where a copy of the data is sent so the original cannot be changed , or passed by reference , where the subroutine receives direct access to the original data , allowing it to be modified . YouTube video uploading soon Integrated Development Environment An Integrated Development Environment (IDE ) is software that provides the tools a programmer needs to write , test and debug code in one place . It typically includes an editor for writing and formatting code , syntax highlighting to make keywords and errors easier to spot , and auto-completion to speed up coding . For debugging , an IDE often provides error diagnostics that highlight mistakes , a run-time environment to execute the program , and tools like breakpoints and step-through execution that allow the programmer to pause the program and inspect variables to find and fix bugs more easily . YouTube video uploading soon Object-Oriented Programming Object-oriented techniques are a way of designing programs by modelling them as collections of objects , each representing something with its own data and behaviours . These objects are created from classes , which act like blueprints describing the attributes (data ) and methods (actions ) an object will have . It uses key principles such as encapsulation (keeping an object’s data and methods together and protected ), inheritance (allowing classes to share and reuse features ) and polymorphism (enabling objects to behave differently ). These techniques make large programs easier to organise , maintain and extend by encouraging reusable , modular and well-structured code . YouTube video uploading soon This page is under active development. Check here for the latest progress update. Q uesto's K ey T erms Programming Constructs: sequence, iteration, selection (branching), if / elif / else, select (switch) case Recursion & Iteration: count-controlled loop, condition-controlled loop, recursion, base case Variables: local variable, global variable Modularity: function, procedure, parameter, pass by value, pass by reference Integrated Development Environment (IDE) Object Oriented Programming (OOP): class, object, method, attribute, inheritance, encapsulation, polymorphism D id Y ou K now? Roblox Studio is a free IDE for making Roblox games using the programming language Lua . With over 70m daily Roblox players , games built in Roblox Studio can reach a larger audience than many mainstream game engines . 1.1 - Computational Thinking A-Level Topics 2.2 - Computational Methods

  • 2.2 - Computational Methods | OCR A-Level | CSNewbs

    Learn about computational methods including problem recognition, decomposition, divide and conquer, abstraction, backtracking, data mining, heuristics, performance modelling, pipelining and visualisation. Based on the OCR H446 Computer Science A-Level specification. Exam Board: OCR A-Level Specification: Computer Science H446 3.1f - Standard Algorithms Watch on YouTube : Bubble sort Merge sort Insertion sort Quick sort Linear search Binary search Djisktra's algorithm A* algorithm The OCR A-Level course requires an understanding of algorithms used for sorting , searching and pathfinding including how they can be used for traversing and how to write them in pseudocode or a high-level programming langauge . Bubble Sort Bubble sort repeatedly compares adjacent items and swaps them if they are in the wrong order . Its advantage is that it is very simple to understand and easy to implement . However, it is extremely slow for large lists , with a worst- and average-case time complexity of O(n²) . It performs slightly better (O(n)) if the list is already nearly sorted and the algorithm is optimised t o detect no swaps . Overall, it is easy but inefficient . YouTube video uploading soon Merge Sort Merge sort is a divide-and-conquer algorithm that repeatedly splits a list into smaller sublists , sorts them recursively and then merges them back together . Its major benefit is that it is consistently fast with a time complexity of O(n log n) in the best , average and worst cases , making it very efficient for large datasets . It is also stable and works well with linked lists . However, a drawback is that it requires additional memory to store the temporary sublists , making its space complexity O(n) . Merge sort is therefore reliable but not memory-efficient . YouTube video uploading soon This page is under active development. Check here for the latest progress update. Insertion Sort Insertion sort works by taking each item and inserting it into the correct position in a growing sorted portion of the list . It is efficient for small or nearly sorted datasets and has a best-case complexity of O(n) , making it useful in real-time systems or hybrid algorithms . However, for large , randomly ordered datasets it becomes slow , with average- and worst-case performance of O(n²) . It uses very little memory space - (O(1) - which is one of its key benefits compared to more complex sorts like merge or quick . YouTube video uploading soon Quick Sort Quick sort is a divide-and-conquer algorithm that chooses a pivot , partitions the list into smaller elements and larger elements , and recursively sorts the partitions . Its main advantage is speed : the average-case time complexity is O(n log n) and it is often faster in practice than merge sort due to good cache performance and in-place partitioning . However, if poor pivot choices are made (e.g., always picking the first item in an already sorted list ), the worst case becomes O(n²) . Despite this, quick sort is widely used because good pivot-selection strategies minimise this risk . YouTube video uploading soon Linear Search Linear search checks each item in a list one by one until it finds the target value or reaches the end . Its benefit is that it works on any list (sorted or unsorted ) and is extremely simple to use and implement . The drawback is inefficiency for large datasets because its best , average and worst time complexity is O(n) . This means the time taken grows directly with the size of the list , making it suitable only for small collections of data . YouTube video uploading soon Binary Search Binary search repeatedly halves a sorted list to locate a target value , making it much faster than linear search . Its key benefit is efficiency : the time complexity is O(log n) for best , average and worst cases , meaning performance scales extremely well with large datasets . However, its major limitation is that the data must be sorted beforehand , and maintaining a sorted list can itself be costly . When this condition is met , binary search is one of the most efficient searching algorithms available. YouTube video uploading soon Dijkstra's Algorithm Dijkstra’s algorithm is a pathfinding algorithm used to find the shortest path from a starting node to all other nodes in a weighted graph with non-negative edge weights . It works by gradually exploring the graph , always choosing the next closest unvisited node , updating the shortest known distances to its neighbours and marking nodes as 'visited ' once the shortest path to them is confirmed . The algorithm continues until all nodes have been processed or the destination is reached , guaranteeing the shortest path . YouTube video uploading soon A* Algorithm The A* algorithm is an informed pathfinding algorithm that also finds the shortest path in a weighted graph , but it uses a heuristic (an estimate of the distance to the goal ) to guide its search more efficiently toward the target . A* combines the actual cost from the start to a node with a heuristic estimate of the remaining distance , allowing it to prioritise exploring nodes that appear more promising . YouTube video uploading soon Q uesto's K ey T erms Sorting Algorithms: bubble sort, flag, pass, merge sort, insertion sort, quick sort, pivot Seraching Algorithms: linear search, binary search, precondition Pathfinding Algorithms: Dijsktra's algorithm, A* algorithm, heuristic D id Y ou K now? Halo: Combat Evolved released on the Xbox in 2001 and introduced groundbreakingly convincing enemy AI for the time. Pathfinding algorithms were used more realistically than older games so that enemies wouldn't just run directly at the player but behaved in different ways depending on the situation , such as cooperating , flanking or retreating by reacting dynamically to the player . 3.1e - Data Structure Algorithms A-Level Topics

  • 3.1e - Data Structure Algorithms | OCR A-Level | CSNewbs

    Learn about algorithms for data structures such as stacks, queues, linked lists and trees, as well as how to traverse trees with depth-first and breadth-first traversal methods. Based on the OCR H446 Computer Science A-Level specification. Exam Board: OCR A-Level Specification: Computer Science H446 3.1e - Data Structure Algorithms Watch on YouTube : Stacks Queues Linked Lists Trees Tree traversal Being able to read , trace and write code for data structure algorithms (stacks , queues , linked lists and trees ) is vital. Stacks A stack stores data in a last in , first out (LIFO ) order, meaning the most recently added item is the first one to be removed . It works much like a stack of plates - you can only add or remove from the top . Two integral functions are push and pop . The push operation adds (or “pushes”) a new item onto the top of the stack . The pop operation removes (or “pops”) the item from the top of the stack . Stacks are commonly used in undo features , function calls and expression evaluation , where tracking the most recent item first is important . YouTube video uploading soon Queues A queue stores items in a first in , first out (FIFO ) order, meaning the first item added is the first one removed . New items are added at the rear of the queue using an enqueue operation, and items are removed from the front using a dequeue operation. Queues are often used in task scheduling , print spooling and data buffering , where operations must occur in the same order they were requested . YouTube video uploading soon Linked Lists A linked list is a dynamic data structure made up of a series of elements called nodes , where each node contains data and a pointer to the next node in the sequence . Unlike arrays, linked lists do not store elements in contiguous memory locations , making it easy to insert or delete items without having to shift other elements . The head is the first node in the list , and the last node usually points to null , indicating the end of the list . YouTube video uploading soon Trees A tree is a hierarchical data structure made up of nodes connected by branches , starting from a single root node . Each node can have child nodes , and nodes without children are called leaf nodes . Trees are useful for representing data with natural hierarchies , such as file systems or organisational charts . A binary search tree is a special type of tree where each node has at most two children - a left and a right . All values in the left subtree are smaller than the parent node , and all values in the right subtree are larger . This structure allows for efficient searching , insertion and deletion of data , often much faster than in lists or arrays . YouTube video uploading soon Tree Traversal 'Tree traversal ' refers to the method used to visit every node in a tree data structure in a specific , organised order . Depth-first (also called post-order ) traversal explores a tree by moving as far down one branch as possible before backtracking , visiting nodes in a deep , top-to-bottom manner . It uses a stack to keep track of nodes still to explore , pushing new branches onto the stack and popping them when backtracking . Breadth-first traversal explores the tree level by level , visiting all nodes on one level before moving down to the next . It uses a queue to hold nodes in the order they should be visited , ensuring the traversal expands outward evenly from the root . YouTube video uploading soon This page is under active development. Check here for the latest progress update. Q uesto's K ey T erms Stacks and Queues: stack, queue, last in first out (LIFO), first in first out (FIFO), push, pop, enqueue, dequeue, pointer Linked Lists: linked list, null Trees: tree, binary tree, binary search tree, root node, branch, depth-first traversal, breadth-first traversal D id Y ou K now? Spotify playlists work like linked lists because each song links to the next , allowing tracks to be added , removed or reordered instantly without reshuffling the whole playlist. This makes the app fast and efficient even when handling huge playlists with thousands of songs . 3.1a-d - Algorithm Complexity A-Level Topics 3.1f - Standard Algorithms

  • 2.2 - Applications Generation | OCR A-Level | CSNewbs

    Learn about applications, utility software, open source and closed source, translators including interpreters, compilers and assemblers, stages of compilation (lexical analysis, syntax analysis, code generation and optimisation) and linkers, loaders and libraries. Based on the OCR H446 Computer Science A-Level specification. Exam Board: OCR A-Level 2.2 - Applications Generation Specification: Computer Science H446 Watch on YouTube : Application software Utilities Open & closed source Translators Stages of compilation This topic explores key types of software and how they support computer systems and users . It explains different kinds of applications , utilities , translators and compares open and closed source software . Another important concept is compilation , with knowledge required of its different stages , as well as linkers , loaders and software libraries . Applications Software Applications software allows users to carry out productive or creative activities such as document editing , data analysis , communication or media creation . Common examples include word processors (e.g. Microsoft Word or Google Docs ), spreadsheets (e.g. Excel or Sheets ), database management systems (e.g. Access ), web browsers (e.g. Chrome or Safari ) and graphics editors (e.g. Photoshop ). Applications can be general-purpose , serving many uses , or special-purpose , created for a specific function like payroll or medical record management . Utilities Utility software is system software designed to maintain , optimise and manage a computer’s performance , often running in the background to support the operating system . Examples include security tools like an antivirus , backup , compressors , disk management utilities and defragmenters . Defragmentation is the process of reorganising files on a hard drive so that parts of each file are stored together in contiguous blocks , improving access speed . Open Source & Closed Source Open source software has its source code (the actual code written by its developers ) made publicly available , allowing users to view , modify and share it freely . An open source licence encourages collaboration , transparency and community-driven improvement . However, it may lack official technical support or guaranteed updates . Closed source software has its source code private , restricting modification and redistribution . It is usually sold commercially with paid licences , regular updates and dedicated technical support . Bug fixes and quality assurance are out of the user's control , being managed by the developer . Support may end without warning . YouTube video uploading soon Translators Translators are programs that convert source code written in one programming language into another form that the computer's CPU can understand - typically machine code (binary ). An assembler translates assembly language into machine code that the CPU can execute directly . An interpreter translates and executes high-level code in a line-by-line method, stopping when an error occurs . A compiler translates the entire high-level program into machine code before execution , producing an executable file . YouTube video uploading soon Stages of Compilation Compilation is a complicated process to convert high-level program code into machine code . It consists of four key stages : Lexical analysis breaks the source code into tokens , such as keywords , identifiers and symbols . In this stage unnecessary characters like spaces or comments are removed . Syntax analysis checks that the token sequence follows the grammatical rules of the programming language , building an abstract syntax tree . Code generation converts the syntax tree or intermediate code into machine code the CPU can understand . Code optimisation improves the efficiency of the generated code , for example by reducing redundant instructions or improving execution speed . Compilation also requires additional programs such as a linker and loader and the use of libraries . YouTube video uploading soon This page is under active development. Check here for the latest progress update. Q uesto's K ey T erms Applications: database, word processor, web browser, graphics manipulation, spreadsheet software, presentation software Utilities: defragmentation, system cleanup, file manager, device driver, security tools Open & Closed Source: source code, open source, closed source Translators: assembler, interpreters, compiler, machine code Stages of Compilation: lexical analysis, token, syntax analysis, abstract syntax tree, code generation, code optimisation, library, linker, static linking, dynamic linking, loader D id Y ou K now? Grace Hopper , a US Navy rear admiral , is credited with creating one of the first compilers in 1952 and coining the term ' compiler '. She also helped develop the languages FLOW-MATIC and later COBOL , which is still used today . 2.1 - Systems Software A-Level Topics 2.3 Software Development

  • 1.1 - The CPU | OCR A-Level | CSNewbs

    Explains the components of the CPU, the different registers, buses, how the FDE cycle works, CPU performance factors, pipelining, Von Neumann architecture and Harvard architecture. Based on the OCR H446 Computer Science A-Level specification. Exam Board: OCR A-Level 1.1 - Structure and Function of the Processor Specification: Computer Science H446 Watch on YouTube : CPU components Registers Buses The FDE cycle CPU performance Pipelining Von Neumann vs Harvard Contemporary architecture The Central Processing Unit ( CPU ) is the most important component in every computer system. The purpose of the CPU is to process data and instructions by constantly repeating the fetch-decode-execute cycle . In this cycle, instructions are fetched from RAM and transferred into the registers of the CPU to be decoded and executed . CPU Components The CPU has three key components : The control unit directs the flow of data and instructions inside the CPU and manages the FDE cycle , especially decoding instructions . The arithmetic logic unit ( ALU ) performs all arithmetic calculations and logical operations inside the CPU . Registers are small , ultra-fast storage locations that temporarily hold data , instructions or addresses during processing . The CPU also contains cache memory , which is temporary storage space for frequently accessed data . Registers A register is a small storage space for temporary data , instructions or addresses in the CPU . Each register has a specific role in the FDE cycle : The Program Counter ( PC ) stores the memory address of the next instruction to be fetched from RAM . The Memory Address Register ( MAR ) stores the memory address currently being accessed , which may be an instruction or data . The Memory Data Register ( MDR ) stores the data that is transferred from RAM to the CPU . The Current Instruction Register ( CIR ) stores the instruction that has been fetched from RAM . The Accumulator ( ACC ) stores data currently being processed and the result of calculations or logical operations made by the ALU . Buses Data and signals are transmitted between components across internal connections called buses . There are three types of computer bus : The data bus transmits data and instructions between the CPU , memory and other components such as input/output devices . It is bidirectional (data is sent both ways ). The address bus transmits the location in memory that the CPU is accessing . It is unidirectional (one-way ) from the CPU to RAM . The control bus transmits control signals (e.g. 'read ' or 'write ') from the CPU to coordinate other components . It is bidirectional . The FDE Cycle In the Fetch Decode Execute (FDE ) cycle , instructions are fetched from RAM , then decoded (understood) and executed (processed) in the CPU . This cycle is performed by the CPU millions of times every second using the registers and buses explained above. This cycle is how the CPU processes data and instructions for each program or service that requires its attention . CPU Performance The performance of the CPU is affected by three main factors : Clock speed is t he number of cycles per second , so a higher clock speed means more instructions can be executed per second . The number of cores is important as more cores allow a CPU to carry out multiple instructions simultaneously , improving multitasking and parallel processing . Cache memory is small and very fast memory inside the CPU that stores frequently used instructions , reducing the time needed to access RAM . Pipelining Pipelining is the concurrent processing of multiple instructions . An instruction can be fetched while another is decoded and another is executed . This overlapping of instructions increases the overall speed of program execution . Computer Architecture Computer architecture refers to the design and organisation of a system’s components and how they interact . There are two types of architecture to know: Von Neumann architecture uses a single main memory (RAM ) that stores both program instructions and data . This means instructions and data travel along the same buses , which can cause a bottleneck (congestion ). Harvard architecture separates the storage of program instructions and data into two different memory locations . This allows instructions and data to be fetched at the same time , improving performance . You also need to know about c ontemporary (modern) architecture , which includes features such as onboard ( integrated ) graphics , performance boosting mode , out-of-order execution and virtual cores . Q uesto's K ey T erms Components of the CPU: control unit (CU), arithmetic logic unit (ALU), registers, cache memory Registers: program counter (PC), memory address register (MAR), memory data register (MAR), current instruction register ( CIR), accumulator (ACC) Buses: data bus, address bus, control bus, unidirectional, bidirectional FDE Cycle: fetch stage, decode stage, execute stage CPU Performance: clock speed , number of cores , cache memory Pipelining: pipelining Computer architecture: Von Neumann, Harvard, contemporary D id Y ou K now? The Apollo Guidance Computer ( AGC ) for NASA's Apollo 11 mission , when humans first set foot on the moon , had a CPU clock speed of about 1 megahertz - slower than many GCSE-level calculators used today. A-Level Topics 1.2 - Types of Processor

  • 4.1 - Data Types | OCR A-Level | CSNewbs

    Learn about data types (integer, real, character, string, Boolean), positive and negative binary, denary, hexadecimal, sign and magnitude, two’s complement, binary addition, binary subtraction, normalisation of floating point numbers, floating point arithmetc, bitwise manipulation, masks (AND, OR, XOR) and character sets (ASCII, Unicode). Based on the OCR H446 Computer Science A-Level specification. Exam Board: OCR A-Level 4.1 - Data Types Specification: Computer Science H446 Watch on YouTube : Data types Denary & binary Sign and magntiude Two's complement Binary addition Binary subtraction Hexadecimal & binary Hexadecimal & denary Floating point Floating point normalisation Floating point addition Floating point subtraction Binary shifts Masks (AND, OR, XOR) Character sets This is a mathematical topic that requires conversion between the binary , denary (decimal ) and hexadecimal number systems . Representing positive and negative binary values is included, as well as adding and subtracting binary numbers and using normalised floating point to represent decimal numbers . Data Types Data types are needed so that the computer knows how to store , process and interpret data correctly . They help ensure that only valid operations are performed on data . For example, you can add two numbers , but not a number and a word . Common data types: Integer : A whole number , e.g. 7 or -12 . Real : A decimal number , e.g. 3.14 or -0.5 . Boolean : A data type with only two possible values - True or False . Character : A single letter , digit or symbol , e.g. ‘k ’, ‘7 ’, or ‘? ’. String : A sequence of characters treated as text, e.g. “CSNewbs ”. Converting from one data type to another is called casting , e.g. age = str(age) would convert the variable age to a string in Python . YouTube video uploading soon Binary Binary is a base-2 number system with all values comprised only of 0 and 1 , e.g. 01011001 . Denary (also called decimal ) is the base-10 number system you grew up learning, with 10 possible values between 0 and 9 , e.g. 453 . Computers use binary because they are built from electronic components (transistors ) that have two states (on and off ), which are easily represented by 1s and 0s . All data processed and stored by the computer (e.g. numbers , text , images and sounds ) are represented in binary . To convert an 8-bit binary value to denary , write 128 - 64 - 32 - 16 - 8 - 4 - 2 - 1 above the binary and add together the values with a 1 underneath . For example, 10101101 is 173 (128 + 32 + 8 + 4 + 1 ). YouTube video uploading soon Storing Negative Numbers -183 Sign and Magnitude and Two’s Complement are two methods of representing negative numbers in binary . In Sign and Magnitude , the most significant bit (MSB ) represents the sign - 0 for positive and 1 for negative - while the remaining bits store the number’s magnitude (value ). For example, in 8-bit form, 0 101 0010 is +82 and 1 101 0010 is -82 . However, this method has two representations of zero (+0 and -0 ), which can cause problems and may give incorrect results if used to add or subtract . In Two’s Complement , negative numbers are represented by inverting all bits of the positive value and adding 1 to the result. This method has only one zero and makes binary addition and subtraction simpler . YouTube video uploading soon YouTube video uploading soon Binary Addition & Subtraction Binary addition works from right to left but only uses the digits 0 and 1 . The key rules are: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 (write down 0 and carry 1 to the next left column ). 1 + 1 = 1 = 11 (write down 1 and carry 1 to the next left column ). If the final addition produces an extra carry bit , it may indicate an overflow error , if the result is too large to fit in the available bits . Binary subtraction can be done using borrowing , similar to denary subtraction , or more commonly by using two’s complement . In two’s complement subtraction , you add the negative version of one number (found by inverting the bits and adding 1 ) to the other to perform subtraction using binary addition rules . YouTube video uploading soon YouTube video uploading soon Hexadecimal 9E8A Hexadecimal is a base-16 number system using the digits 0 to 9 and the letters A to F, where A = 10 and F = 15 in denary . It’s often used in computing because it provides a shorter , more readable way to represent long binary values . For example, two hex digits represent eight binary bits , making conversions quick and efficient . To convert from binary to hexadecimal , split the binary number into groups of four bits (from right to left ) and convert each group into its hex equivalent . Example: 1101 0110 → 1101 (14 → D ) and 0110 (6 ) → D6 . To convert hexadecimal to binary , replace each hex digit with its 4-bit binary equivalent . Example: 2F → 0010 (2 ) and 1111 (15 → F ) → 0010 1111 . The easiest method to convert between denary and hexadecimal is to convert the value to binary first . Example: 26 → 0001 1010 → 1A . YouTube video uploading soon YouTube video uploading soon Floating Point Floating point is a way of representing real (decimal ) numbers in binary using a mantissa and an exponent . It allows computers to store a wide range of values efficiently , including very small and very large numbers . Floating point normalisation means adjusting the number so that the mantissa begins with a 01 (if it is positive ) or 10 (if it is negative ). This ensures the representation is unique and uses all available bits in the mantissa for precision . To add or subtract floating point numbers , the exponents must first be made equal by shifting the mantissa of the smaller number . Once aligned , the mantissas are added or subtracted , and the result is then normalised again to maintain the correct form . YouTube video uploading soon YouTube video uploading soon Binary Shifts A binary shift moves all the bits in a binary number left or right by a set number of places . A left shift moves all bits to the left , filling the empty right-hand bits with zeros . Each left shift multiplies the number by 2 . For example, shifting 0001 0100 (20 ) one place left gives 0010 1000 (40 ). A right shift moves all bits to the right , discarding the rightmost bits . Each right shift divides the number by 2 . For example, shifting 0010 1000 (40 ) two places right gives 0000 1010 (10 ). YouTube video uploading soon Masks A mask is a binary pattern used with bitwise operations (such as AND , OR and XOR ) to manipulate specific bits within a binary value . An AND mask is used to clear (set to 0 ) specific bits . Any bit ANDed with 0 becomes 0 , and any bit ANDed with 1 stays the same . For example, 1011 0110 AND 0000 1111 = 0000 0110 - the mask keeps only the lower four bits . An OR mask is used to set (turn on ) specific bits . Any bit ORed with 1 becomes 1 , and with 0 stays the same . For example, 1010 0000 OR 0000 1111 = 1010 1111 . An XOR mask is used to toggle (invert ) specific bits . Any bit XORed with 1 flips (0 → 1 or 1 → 0 ), while XORed with 0 stays the same . For example, 1010 1010 XOR 0000 1111 = 1010 0101 . YouTube video uploading soon Character Sets A character set is a collection of characters (letters , numbers , symbols and control codes ) that a computer can recognise , store and process . Each character is represented by a unique binary code . ASCII (American Standard Code for Information Interchange ) is an early character set that uses 7 bits to represent 128 characters , including English letters , digits , punctuation and control characters . It’s simple and compact but limited to English and basic symbols . Extended ASCII uses 8 bits for 256 characters . Unicode was developed to overcome ASCII’s limitations by representing characters from all languages and writing systems . It uses up to 32 bits and includes over 140,000 characters , allowing consistent representation of text across different devices and platforms . YouTube video uploading soon This page is under active development. Check here for the latest progress update. Q uesto's K ey T erms Data Types: integer, real, Boolean, character, string Number Systems: binary, denary (decimal), hexadecimal, sign and magnitude, two's complement, binary addition, binary subtraction, floating point, floating point normalisation, floating point addition, floating point subtraction Binary shifts: left shift, right shift Masks: mask, bitwise operator, AND, OR, XOR Character Sets: character set, ASCII, Unicode D id Y ou K now? Gottfried Wilhelm Leibniz , a German mathematician , is credited with inventing the binary number system in the 17th century , hundreds of years before computers existed. Leibniz biscuits are named after him. 3.4 - Web Technologies A-Level Topics 4.2 - Data Structures

  • 1.1 - Computational Thinking | OCR A-Level | CSNewbs

    Learn about the different parts of computational thinking including thinking abstractly, ahead, procedurally, logically and concurrently. Based on the OCR H446 Computer Science A-Level specification. Exam Board: OCR A-Level Specification: Computer Science H446 1.1 - Computational Thinking Watch on YouTube : Thinking Abstractly Thinking Ahead Thinking Procedurally Thinking Logically Thinking Concurrently Computational thinking is the process of approaching and solving problems in a logical , systematic way (like a computer would ) using techniques such as abstraction , decomposition , pattern recognition and algorithmic thinking . There are five categories of computational thinking you need to know. Thinking Abstractly Abstraction is the process of removing unnecessary detail so that a problem can be represented more simply . It helps programmers focus on the essential features of a task, reducing complexity and making solutions easier to design , understand and maintain . When programming , abstraction can be applied by simplifying real-world systems into models that contain only the information needed for solving the problem . Because abstractions leave out certain details , they always differ from reality , and it is important to understand which elements have been included , which have been excluded and why . YouTube video uploading soon Thinking Ahead Programs often make use of inputs and outputs to receive data from the user or another system and then return results or feedback. Many programs rely on preconditions - rules or requirements that must be met before a function or procedure runs correctly - to prevent errors and ensure reliable behaviour . Caching is a technique where previously calculated or frequently accessed data is stored temporarily so it can be retrieved more quickly . This improves performance but can use extra memory and risks becoming outdated if the cached data no longer matches the current state . Reusable program components , such as functions , procedures and modules , are important because they reduce duplication , make programs easier to maintain , and allow well-tested code to be used across multiple solutions . YouTube video uploading soon Thinking Procedurally Pseudocode , program code and flowcharts are ways of representing a sequence of steps in an algorithm , showing clearly the order in which instructions should be carried out . Sub-procedures (such as functions and procedures ) are used in programs to break complex tasks into smaller , reusable parts , making the code easier to understand , test , maintain and debug . A structure diagram is a visual representation that shows how a program is broken down into its main components and sub-components , helping programmers plan the overall design and understand how different parts of the program fit together . YouTube video uploading soon Thinking Logically Decisions are needed in computer programs so that the software can choose different actions based on the data it receives or the situation it is in , rather than always following the same sequence of instructions. These decisions are controlled by logical conditions - statements that evaluate to true or false - which determine which path the program will take; for example, if score > 100 might trigger a bonus feature only when the condition is true . Because decisions allow the program to branch , they directly affect the flow of execution , enabling different outcomes , repeated actions or alternative processes depending on the conditions met . YouTube video uploading soon Thinking Concurrently Concurrency means designing a program so that multiple tasks can be processed at the same time , rather than strictly one after another. Programmers need to identify which parts of a program can safely run concurrently - for example, independent calculations or background tasks - and which parts must wait for others to finish because they rely on shared data or sequential results . Concurrent processing can bring benefits such as faster performance , better use of multicore processors and improved responsiveness , but it also introduces drawbacks, including increased complexity and the need for careful coordination to avoid errors when tasks depend on one another . YouTube video uploading soon This page is under active development. Check here for the latest progress update. Q uesto's K ey T erms Computational Thinking: abstraction, thinking abstractly, thinking ahead, precondition, caching, reusable components, thinking procedurally, thinking logically, concurrency, thinking concurrently D id Y ou K now? Building a Lego set is a great example of both abstraction and decompostition . For example, the Eiffel Tower Lego set is an abstracted version of it is real-life counterpart condensed into 10,001 pieces . There are over 75 numbered bags inside the box to follow instructions step-by-step to construct the 4'11" model . A-Level Topics 2.1 - Programming Techniques

  • OCR A-Level | CSNewbs

    Navigate between all topics in the OCR A-Level Computer Science H446 specification. Includes all topics from Component 1 (Computer Systems) and Component 2 (Algorithms and Programming). OCR Computer Science A-Level These pages are based on content from the OCR H446 Computer Science specification . This website is in no way affiliated with OCR . Component 1: Computer Systems Paper 1 Playlist on YouTube This content is under active development. Check here for the latest progress update. OCR A-Level Key Term Generator 1. Hardware 1.1 - Structure & Function of the Processor (The CPU) 1.2 - Types of Processor 1.3 - Input, Output & Storage 2. Software 2.1 - Systems Software 2.2 - Applications Generation 2.3 - Software Development 2.4 - Types of Programming Language 3. Networks & Databases 3.1 - Compression, Encryption & Hashing 3.2 - Databases 3.3 - Networks 3.4 - Web Technologies 4. Data & Logic 4.1 - Data Types 4.2 - Data Structures 4.3 - Boolean Algebra 5. Laws 5.1 - Computing-Related Legislation 5.2 - Moral & Ethical Issues Component 2: Algorithms & Programming 1. Computational Thinking 1.1 - 1.5 - Computational Thinking 2. Problem Solving & Programming 2.1 - Programming Techniques 2.2 - Computational Methods 3. Algorithms 3.1a - 3.1d - Algorithm Complexity 3.1e - Data Structure Algorithms 3.1f - Standard Algorithms

  • 2.4 - Programming Languages | OCR A-Level | CSNewbs

    Learn about programming paradigms such as procedural language (e.g. Python), assembly language (including Little Man Computer) and object-oriented programming (OOP) language (e.g. Java). Methods of memory addressing (immediate, direct, indirect and indexed) are also covered. Based on the OCR H446 Computer Science A-Level specification. Exam Board: OCR A-Level 2.4 - Types of Programming Language Specification: Computer Science H446 Watch on YouTube : Programming Paradigms Procedural Language Assembly Language Addressing Modes Little Man Computer Object-Oriented Language Programming paradigms are different approaches to writing and structuring code to solve problems . The procedural paradigm focuses on step-by-step instructions and the use of functions to organise tasks . The assembly paradigm operates at a low level , giving direct control over hardware through processor-specific instructions . The object-oriented paradigm models programs around objects that combine data ( attributes ) and behaviour ( methods ), promoting modular and reusable design . Procedural Language A procedural programming language organises code into reusable blocks ( procedures or functions ), which perform specific tasks in a step-by-step manner . It focuses on a clear sequence of instructions that operate on data, often using variables , loops and conditionals . Examples include Python , C , Pascal and BASIC . These languages are commonly used for software development , data processing and teaching programming fundamentals as they emphasise logical structure and modular design . YouTube video uploading soon Assembly Language Assembly language is a low-level programming language that uses short , readable codes called mnemonics to represent machine-level instructions executed by the CPU . Each command in assembly corresponds closely to a specific hardware operation , making it highly efficient but difficult to write and maintain . It is mainly used for embedded systems , device drivers and performance-critical tasks where direct control of hardware is required . For the OCR A-Level course , you must understand and be able to write code using the 11 mnemonics of Little Man Computer ( LMC ), which is an educational form of assembly language . Modes of Addressing Memory An addressing mode in assembly language defines how the CPU should locate the data (operand ) needed for an instruction (opcode ). It tells the processor whether the data is stored directly in the instruction , in memory , or needs to be calculated using an address or register . There are four main types : Immediate addressing : The operand contains the actual data to be used , rather than a memory address. Direct addressing : The operand contains the memory address where the required data is stored . Indirect addressing : The operand contains an address that points to another memory location holding the actual data . Indexed addressing : The operand provides a base address that is adjusted by the value in an index register to find the final memory address of the data . YouTube video uploading soon YouTube video uploading soon YouTube video uploading soon Object-Oriented Language An object-oriented programming ( OOP ) language organises code around objects , which combine data ( attributes ) and behaviour ( methods ) into reusable units . Key features of OOP : Classes are templates from which objects are created . Classes define both attributes (data ) and methods (functions or behaviours ). Encapsulation allows data to be protected by making attributes private and providing controlled access through public methods . Inheritance enables a class to reuse or extend the attributes and methods of a parent class , promoting the reuse of code . Polymorphism allows methods or attributes to behave differently depending on the object or class that uses them . Examples of OOP languages include Java , Python , C++ and C# . These languages are widely used for large-scale software development , game development and graphical user interfaces , where modularity and code reuse are crucial . YouTube video uploading soon YouTube video uploading soon This page is under active development. Check here for the latest progress update. Q uesto's K ey T erms Programming Paradigms: procedural language, assembly language, object-oriented language Procedural Language: input, output, comments, variables, casting, count-controlled iteration, condition-controlled iteration, logical operators, selection, string handling, subroutines, arrays, files Assembly Language: Little Man Computer, INP, OUT, LDA, STA, ADD, SUB, HLT, DAT, BRA, BRP, BRZ Modes of Addressing Memory: immediate, direct, indirect, indexed, index register, opcode, operand Object-Oriented Language: class, method, attribute, encapsulation, inheritance, polymorphism, instantiation, constructor method, get method, set method D id Y ou K now? Python was named after the 1970s British comedy group ' Monty Python ', not the snake . Guido van Rossum created Python in the late 1980s during his Christmas holidays as a ' hobby project '. 2.3 - Software Development A-Level Topics 3.1 - Compression & Encryption

© CSNewbs 2025

The written, video and visual content of CSNewbs is protected by copyright. © 2025
bottom of page