Upper secondaryCode 9618
Computer Science
44 topics and 283 objectives, each one something you should be able to do.
Written by Kindred in its own plain words. Your syllabus is still the official list, so check it for anything exact.
What this subject asks you to be able to do
1.1Data Representation8 objectives
- Demonstrate comprehension of binary magnitudes, and of how binary prefixes differ from decimal prefixes
- Demonstrate comprehension of various number systems
- Use binary, denary and hexadecimal as number bases, along with Binary Coded Decimal (BCD) and the one’s and two’s complement forms of binary numbers
- Convert an integer value from one base or representation to a different one
- Perform binary addition and binary subtraction on binary integers that may be positive or negative
- Demonstrate comprehension of the manner in which overflow may arise
- Describe real-world uses of Binary Coded Decimal (BCD) and hexadecimal
- Demonstrate an understanding of how character data is held internally as binary, which varies with the character set in use, and be able to write characters in that form
1.2Graphics7 objectives
- demonstrate an understanding of the way data describing a bitmapped image is encoded
- Perform calculations giving an estimate of a bitmap image's file size
- Demonstrate an understanding of how altering the components of a bitmap image affects its image quality and file size
- demonstrate an understanding of the way data describing a vector graphic is encoded
- Justify picking a vector graphic over a bitmap image, or the reverse, for a particular task
- Demonstrate a grasp of the ways sound can be represented and encoded
- Demonstrate an understanding of the consequences of varying the sampling rate and the resolution, including their effect on file size and accuracy
1.3Compression3 objectives
- demonstrate an understanding of why compression is needed, together with examples of where it is used
- Demonstrate an understanding of lossless and lossy compression, and justify the choice of one method over the other for a particular situation
- Demonstrate an understanding of the ways to compress a text file, bitmap image, vector graphic and sound file, including how run-length encoding (RLE) is used
2.1Networks including the internet19 objectives
- Demonstrate an understanding of what networking devices are for and the benefits they bring
- Show that you understand the usual features of a WAN (wide area network) and of a LAN (local area network)
- Explain how networked computers are organised under the client-server model and under the peer-to-peer model, including the role each computer has within the network and the subnetwork models, the advantages and disadvantages of each model, and justify which model suits a particular situation
- Demonstrate an understanding of thin clients and thick clients and of how they differ from each other
- Demonstrate an understanding of these topologies: bus, star, mesh and hybrid
- Understand the process by which packets move between two hosts on a given topology
- Justify which topology to choose in a particular situation
- Demonstrate an understanding of what cloud computing is, including how public clouds and private clouds are used
- Demonstrate an understanding of how wireless and wired networks differ and what follows from using each
- Describe the properties of each of these: satellites, microwaves, radio waves (including WiFi), fibre-optic cable and copper cable
- Describe the hardware a LAN relies on, including cables, switch, server, repeater, bridge, Network Interface Card (NIC), Wireless Network Interface Card (WNIC), Wireless Access Points (WAP)
- Describe the part a router plays in a network and the function it carries out
- Show that you understand Ethernet, and the ways collisions are detected and avoided, including Carrier Sense Multiple Access/Collision Detection (CSMA/CD)
- Demonstrate understanding of the methods used for bit streaming, i.e. real-time and on-demand
- Demonstrate a grasp of why bit rates and broadband speed matter for bit streaming
- Demonstrate an understanding of how the internet differs from the World Wide Web (WWW)
- Describe the hardware the internet relies on, including the PSTN (Public Switched Telephone Network), dedicated lines, the cell phone network and modems
- Explain the part IP addresses play in sending data across the internet, including: how an IP address is formatted, including IPv4 and IPv6; how subnetting is used in a network; how a device on a network is linked to its IP address; how a public IP address differs from a private IP address and what this means for security; and how a static IP address differs from a dynamic IP address
- Explain how a resource on the World Wide Web (WWW) is found by means of a Uniform Resource Locator (URL), and what part the Domain Name Service (DNS) plays
3.1Computers and their components8 objectives
- Demonstrate an understanding of why input, output, primary memory and secondary storage (including removable media) are required
- Demonstrate comprehension of embedded systems, including the advantages and drawbacks they bring.
- Describe the main operations carried out by hardware devices, including: microphone, touchscreen, virtual reality headset, speakers, Laser printer, 3D printer, optical disc reader/writer, magnetic hard disk, solid state (flash) memory
- Demonstrate comprehension of how buffers are employed
- Explain how Random Access Memory (RAM) and Read Only Memory (ROM) differ, including how each is employed across a variety of devices and systems
- Explain how Static RAM (SRAM) differs from Dynamic RAM (DRAM), including where SRAM and DRAM are each found across a variety of devices and systems, and why a device and the job it does might call for one rather than the other
- Explain what distinguishes Programmable ROM (PROM), Erasable Programmable ROM (EPROM) and Electrically Erasable Programmable ROM (EEPROM) from one another
- Demonstrate comprehension of monitoring and control systems, including how monitoring differs from control, the way sensors (including temperature, pressure, infra-red, sound) and actuators are used, and why feedback matters
3.2Logic Gates and Logic Circuits6 objectives
- Apply the symbols below for logic gates: NOT, AND, OR, NAND, NOR, XOR
- Understand and define the role played by these gates: NOT, AND, OR, NAND, NOR and XOR (EOR)
- Construct a truth table for each logic gate mentioned above
- Construct a logic circuit to match a truth table, a logic expression or a problem statement
- Construct a truth table when given any one of these: a logic expression, a logic circuit, a problem statement
- Construct a logic expression to match a truth table, a logic circuit or a problem statement
4.1Central Processing Unit (CPU) Architecture9 objectives
- Show a grasp of the fundamental Von Neumann model of a computer system, along with the stored program concept
- Show an understanding of what registers are for and what they do, including how general purpose registers differ from special purpose ones
- Show an understanding of the functions of the Arithmetic and Logic Unit (ALU), Control Unit (CU), system clock and Immediate Access Store (IAS)
- Show an understanding of how the address bus, data bus and control bus carry data between the parts of a computer system
- Show a grasp of what drives computer system performance, including: processor type and number of cores, bus width, clock speed and cache memory
- Understand how the different ports allow peripheral devices to be connected, including connection to: Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), Video Graphics Array (VGA)
- Describe the successive stages making up the Fetch-Execute (F-E) cycle
- Describe ‘register transfer’ notation and use it to set out the F-E cycle
- Show a grasp of why interrupts exist, including: what can trigger them, where they are applied, the part played by an Interrupt Service handling Routine (ISR), at what point in the fetch-execute cycle they are picked up, and how they are dealt with
4.2Assembly Language6 objectives
- Demonstrate an understanding of how assembly language relates to machine code
- Describe the sequence of stages a two-pass assembler goes through when assembling a program
- Use the steps a two-pass assembler follows to assemble a supplied simple assembly language program
- Trace through a supplied simple assembly language program step by step
- Show understanding that instructions can be arranged into groups, including these groups: Data movement, Input and output of data, Arithmetic operations, Unconditional and conditional instructions, Compare instructions
- Demonstrate an understanding of, and the ability to use, the various addressing modes, including immediate, direct, indirect, indexed, relative
4.3Bit manipulation4 objectives
- Demonstrate an understanding of binary shifts, and carry them out
- Demonstrate an understanding of the ways in which bit manipulation can be applied to monitor or control a device
- Carry out operations that manipulate bits
- Test, then set, a single bit by means of bit masking
5.1Operating Systems4 objectives
- Account for why a computer system needs an Operating System (OS)
- Explain the key tasks the Operating System carries out in managing a computer system
- Demonstrate a grasp of why the utility software typically supplied with an Operating System is needed
- Show a grasp of program libraries
5.2Language Translators4 objectives
- Demonstrate an understanding of why each of these is needed: assembler software, to translate an assembly language program; a compiler, to translate a high-level language program; and an interpreter, to translate and execute a high-level language program
- Account for the benefits and drawbacks of employing either a compiler or an interpreter, and give justification for using each one
- Demonstrate you are aware that code in a high-level language might be partly compiled and partly interpreted, such as Java (console mode)
- Describe the features that an Integrated Development Environment (IDE) usually provides
6.1Data Security6 objectives
- Explain how security, privacy and integrity, as terms applied to data, differ from one another
- Show an appreciation of why data must be kept secure, and why the computer system itself must be kept secure too
- Describe the security measures that protect computer systems at every scale, from one stand-alone PC up to a whole computer network
- Show a grasp of the threats that networks and the internet present to computer and data security
- Describe the methods available for limiting the risks that threats present
- Describe the security methods used to keep data secure
6.2Data Integrity3 objectives
- Describe the way that validation and verification of data guard its integrity
- Describe and apply the methods used to validate data
- Describe and apply methods for verifying data as it is entered and as it is transferred
7.1Ethics and Ownership8 objectives
- Show comprehension of why computing professionals require ethics and the aims that ethics serves
- Understand why it matters to become a member of a professional ethical body, including BCS (British Computer Society) and IEEE (Institute of Electrical and Electronic Engineers)
- Demonstrate comprehension of why one must act ethically and what follows from acting ethically or unethically in a specified situation
- Show comprehension of why copyright legislation is needed
- Demonstrate an understanding of the kinds of software licencing that exist, and justify choosing a particular licence for a particular situation
- Show comprehension of Artificial Intelligence (AI)
- Understand the effects that AI brings about, including social, economic and environmental issues
- Understand what AI is used for
8.1Database Concepts7 objectives
- Demonstrate an understanding of the drawbacks of storing and retrieving data with a file-based approach
- Describe the relational database features that overcome the limitations found in a file-based approach
- Demonstrate comprehension of, and apply, the vocabulary tied to the relational database model
- Use an entity-relationship (E-R) diagram when recording how a database is designed
- Demonstrate an understanding of normalisation and its stages: First Normal Form (1NF), Second Normal Form (2NF) and Third Normal Form (3NF)
- Account for why a given set of database tables does or does not satisfy 3NF
- Produce a normalised design for a database when given a set of tables, a set of data, or a description of the database
8.2Database Management Systems (DBMS)2 objectives
- Demonstrate an understanding of the functions a Database Management System (DBMS) supplies to tackle the problems associated with a file based approach
- Demonstrate an understanding of how the software tools included in a Database Management System (DBMS) are employed in real-world settings
8.3Data Definition Language (DDL) and Data Manipulation Language (DML)13 objectives
- Demonstrate an understanding that the DBMS performs every act of building or altering the database's structure by means of its Data Definition Language (DDL)
- Demonstrate an understanding that the DBMS performs all querying and data maintenance through its DML
- Demonstrate an understanding that Structured Query Language (SQL) is the widely adopted standard for both DDL and DML across the industry
- Understand an SQL statement that has been supplied
- Understand supplied SQL (DDL) statements and be capable of writing straightforward SQL (DDL) statements drawing on a sub-set of the statements
- Create a database by writing CREATE DATABASE
- Create a table definition with CREATE TABLE, including setting up attributes that have suitable data types, chosen from: CHARACTER, VARCHAR(n), BOOLEAN, INTEGER, REAL, DATE, TIME
- Modify the structure of an existing table by using ALTER TABLE
- Set up a primary key on a table using PRIMARY KEY (field)
- add a foreign key onto one table, written as FOREIGN KEY (field) REFERENCES Table (Field)
- Write an SQL script (DML) that queries or changes data held in no more than two database tables
- Query constructs, including SELECT... FROM, WHERE, ORDER BY, GROUP BY, INNER JOIN, SUM, COUNT, AVG
- Data maintenance, including the INSERT INTO, DELETE FROM, UPDATE statements
9.1Computational Thinking Skills4 objectives
- Demonstrate comprehension of abstraction
- Describe what abstraction is intended to achieve
- Produce an abstract model, including only the essential details of the system being modelled
- Describe and use decomposition
9.2Algorithms8 objectives
- Demonstrate an understanding that an algorithm is a way of solving a problem, set out as an ordered series of precisely specified steps
- Write pseudocode in which input, process and output all appear
- Write pseudocode making use of sequence, selection and iteration (repetition), the three basic constructs
- Record a simple algorithm in pseudocode, as a flowchart or as a structured English description
- Write pseudocode when given a flowchart or a structured English description
- Draw a flowchart when given pseudocode or a structured English description
- Describe how stepwise refinement works and use it to set out an algorithm in enough detail for the task to be programmed from it
- Use logic statements when defining the separate parts that make up an algorithm solution
10.1Data Types and Records4 objectives
- Select and use suitable data types when devising a solution to a problem
- Demonstrate an understanding of why a record structure exists: to store a collection of data items of differing data types under a single identifier
- Write pseudocode that defines a record structure
- Write pseudocode that saves data into a record structure and reads data back out of it
10.2Arrays5 objectives
- Apply the technical terms that relate to arrays
- Select the appropriate data structure, either a 1D or a 2D array, for a particular task
- Write pseudocode dealing with 1D and 2D arrays
- Write pseudocode that processes array data, including sorting it with a bubble sort
- Carry out a search by means of a linear search
10.3Files2 objectives
- demonstrate an understanding of the reasons that files are necessary
- Write pseudocode for handling text files, whether they hold a single line or several
10.4Introduction to Abstract Data Types (ADT)5 objectives
- Demonstrate comprehension that an ADT consists of a collection of data together with a set of operations performed on that data.
- Demonstrate comprehension that a stack, queue and linked list all serve as instances of ADTs.
- Describe the key features that a stack, a queue and a linked list each have, and justify using them in a particular situation
- Apply a stack, queue and linked list in order to hold data.
- Describe how arrays can be used to implement a queue, a stack and a linked list
11.1Programming Basics3 objectives
- Implement, and also produce pseudocode, working from a supplied design in the shape of a program flowchart or of structured English
- Write pseudocode statements that handle declaring and initialising constants, declaring variables, assigning values to variables, building expressions with any arithmetic or logical operator, reading input from the keyboard and sending output to the console
- Use library routines as well as built-in functions
11.2Constructs1 objective
- Use pseudocode to write each of these: a ‘count-controlled’ loop, a ‘pre-condition’ loop and a ‘post-condition’ loop; a ‘CASE’ structure; and an ‘IF’ statement, including its ‘ELSE’ clause and IF statements nested inside one another
11.3Structured Programming5 objectives
- Define a procedure, then make use of it
- Use parameters
- Define a function, then make use of it
- Apply the vocabulary linked to procedures and functions, including the procedure/function header, the procedure/function interface, parameter, argument, return value
- Write efficient pseudocode
12.1Program Development Life cycle4 objectives
- Demonstrate an understanding of what a development life cycle is for
- Demonstrate an understanding of why different programs call for different development life cycles
- Describe the principles that underlie every kind of life cycle, and the benefits and drawbacks each one brings
- Demonstrate an understanding of each stage of the program development life cycle: analysis, design, coding, testing and maintenance
12.2Program Design5 objectives
- Use a structure chart to break a problem down into sub-tasks, and to show which parameters the modules/procedures/functions of the algorithm design pass to one another
- Describe what a structure chart is for
- Construct a structure chart that breaks down a problem you are given
- derive pseudocode that is equivalent to a structure chart
- demonstrate an understanding of why state-transition diagrams are used to record an algorithm
12.3Program Testing and Maintenance8 objectives
- Demonstrate an understanding of how faults can be revealed in programs and how to prevent them
- Locate and identify the various types of error in a program
- Correct identified errors
- Demonstrate an understanding of the testing methods on offer and pick suitable data for a given method
- Demonstrate an understanding of the reasons a test strategy and a test plan are required, along with their probable contents
- Choose suitable test data to fit a test plan
- Demonstrate an understanding of why a system needs ongoing maintenance and how each type of maintenance differs from the others
- Analyse a program that already exists, then amend it to extend what it can do
13.1User-defined data types4 objectives
- Demonstrate comprehension of the reasons that user-defined types are needed
- Define, then make use of, non-composite types
- Define composite data types and make use of them
- Choose and devise a fitting user-defined data type for a specific problem
13.2File organisation and access4 objectives
- Demonstrate comprehension of the ways files can be organised, and choose a suitable file organisation method and file access method for a particular problem
- Demonstrate understanding of the approaches used to access files
- Show that you understand hashing algorithms
- Describe a range of hashing algorithms and use them when reading data from, and writing data to, a random/sequential file
13.3Floating-point numbers, representation and manipulation8 objectives
- Describe how binary floating-point real numbers are formatted
- Use two’s complement form
- Understand what happens to a floating-point representation when the split of bits between mantissa and exponent is changed
- Convert binary floating-point real numbers to denary and the reverse
- Normalise floating-point numbers
- Show an understanding of the effects of binary forms giving only an approximate value for the real number they stand for (in some cases)
- Understand the ways in which underflow and overflow may arise
- Show an understanding that rounding errors can result from binary representations
14.1Protocols4 objectives
- Demonstrate an understanding of the reasons a protocol is vital when computers exchange data with each other
- Demonstrate an understanding of how protocol implementation may be seen as a stack, in which every layer carries out its own functionality
- Show that you understand the TCP/IP protocol suite
- Demonstrate an understanding of the protocols (HTTP, FTP, POP3, IMAP, SMTP, BitTorrent) and what each one is for
14.2Circuit switching, packet switching4 objectives
- Demonstrate an understanding of circuit switching
- Demonstrate an understanding of packet switching
- Show that you understand what function a router serves in packet switching
- Explain the way packet switching carries messages across a network, including the internet
15.1Processors, Parallel Processing and Virtual Machines8 objectives
- Demonstrate a grasp of processors built on Reduced Instruction Set Computers (RISC) and processors built on Complex Instruction Set Computers (CISC)
- Understand how CISC and RISC processors handle interrupts
- Demonstrate a grasp of why pipelining and registers are important in RISC processors and how they are used
- Show that you understand the four basic types of computer architecture
- Demonstrate a grasp of the features that characterise massively parallel computers
- Demonstrate an understanding of what a virtual machine is
- Give examples of the function that virtual machines perform
- Understand the advantages and drawbacks of virtual machines
15.2Boolean Algebra and Logic Circuits11 objectives
- Produce the truth table that goes with a logic circuit, including half adders and full adders
- Demonstrate comprehension of the flip-flop (SR, JK)
- Draw a logic circuit for a flip-flop and derive its truth table
- Demonstrate comprehension of the part flip-flops play as components that store data
- Demonstrate an understanding of Boolean algebra
- Understand De Morgan’s laws
- Perform Boolean algebra, making use of De Morgan’s laws
- Simplify a logic circuit or expression by means of Boolean algebra
- Demonstrate an understanding of Karnaugh maps (K-map)
- Understand the advantages that come from using Karnaugh maps
- Solve logic problems with the aid of Karnaugh maps
16.1Purposes of an Operating System (OS)12 objectives
- Demonstrate an understanding of the way an OS can make the most of available resources
- Describe how the user interface conceals the intricacies of the hardware from the person using it
- Show that you understand process management
- Demonstrate an understanding of multi-tasking and of what a process is
- Demonstrate an understanding of the states a process may occupy, namely running, ready and blocked
- Demonstrate an understanding of why scheduling is needed, and of the function and benefits of the various scheduling routines (including first come first served, round robin, shortest remaining time, shortest job first)
- Demonstrate an understanding of the OS kernel's role as an interrupt handler, as well as how low-level scheduling is managed through interrupt handling
- Demonstrate an understanding of how memory is managed using segmentation, paging and virtual memory
- Demonstrate an understanding of the ideas behind paging, virtual memory and segmentation
- Demonstrate an understanding of how paging differs from segmentation
- Demonstrate an understanding of the means by which pages may be replaced
- Demonstrate an understanding of the conditions that lead to disk thrashing
16.2Translation Software4 objectives
- demonstrate an understanding of how an interpreter can run a program without generating a translated version of it
- demonstrate an understanding of the different phases involved in compiling a program
- Show that you understand how syntax diagrams or Backus-Naur Form (BNF) notation can set out the grammar of a language
- Show that you understand how expressions can be evaluated with Reverse Polish Notation (RPN)
17.1Encryption, Encryption Protocols and Digital Certificates11 objectives
- Demonstrate an understanding of how encryption functions
- Demonstrate an understanding of how a member of the public can use keys to send an individual/organisation a message privately
- Demonstrate an understanding of how keys let someone send the public a message that can be verified
- Demonstrate an understanding of the way symmetric and asymmetric cryptography are used to encrypt and decrypt data
- Show that you are aware of the Secure Socket Layer (SSL)/Transport Layer Security (TLS)
- Demonstrate an understanding of what SSL/TLS is intended to achieve
- Demonstrate an understanding of how SSL/TLS is applied within client-server communication
- Demonstrate an understanding of circumstances in which SSL/TLS would be suitable
- Demonstrate comprehension of digital certification
- Demonstrate an understanding of the way in which a digital certificate is obtained
- Demonstrate an understanding of the manner in which a digital certificate is employed to generate digital signatures
18.1Artificial Intelligence (AI)6 objectives
- Demonstrate understanding of the part graphs play in supporting Artificial Intelligence (AI)
- Apply A* and Dijkstra’s algorithms when searching a graph
- Demonstrate understanding of the ways artificial neural networks have assisted the development of machine learning
- Demonstrate understanding of Deep Learning, Machine Learning and Reinforcement Learning, together with why these approaches are employed
- Demonstrate understanding of the classes of machine learning, including supervised learning, unsupervised learning
- Demonstrate an understanding of the regression methods and the back propagation of errors that machine learning makes use of
19.1Algorithms16 objectives
- Demonstrate an understanding of how linear and binary search methods work
- Write an algorithm that carries out a linear search
- Write an algorithm that performs a binary search
- Demonstrate an understanding of how insertion sort and bubble sort work
- Write an algorithm that carries out an insertion sort
- Write an algorithm that performs a bubble sort
- Demonstrate an understanding of Abstract Data Types (ADT) and their use
- Write algorithms which find an item held in a linked list and in a binary tree
- Write algorithms that add a new item to a stack, a queue, a linked list and a binary tree
- Write algorithms that remove an item from a stack, a queue and a linked list
- Show an understanding that graphs count as one kind of ADT
- Describe a graph's key features and justify using one in a particular situation
- Show how ADTs can be implemented by building them on another ADT
- Describe each of these ADTs, and demonstrate how it can be implemented from suitable built-in types or from other ADTs: binary tree, dictionary, linked list, queue, stack
- Demonstrate an understanding that algorithms doing the same job can be compared against criteria (e.g. how much memory each uses and how long each takes to finish the task)
- Show an understanding of how Big O notation is employed to state time and space complexity
19.2Recursion4 objectives
- Show understanding of recursion
- Write recursive algorithms, and trace through how they run
- Demonstrate awareness of the tasks a compiler performs in order to translate recursive programming code
- Use of the stack, and how it unwinds
20.1Programming Paradigms9 objectives
- Understand the meaning of the phrase programming paradigm
- Identify what characterises each of these programming paradigms, and apply those characteristics: Low-level, Imperative (Procedural), Object Oriented, Declarative
- Understand and produce low-level code which employs a variety of addressing modes: immediate, direct, indirect, indexed and relative
- Understand and write code in the imperative (procedural) style, making use of procedures, functions, variables and constructs
- Understand the terms used in Object Oriented Programming (OOP) (including classes, objects, instances, methods, properties/attributes, getters, setters, encapsulation, inheritance, polymorphism, containment (aggregation))
- Understand how a problem can be tackled through the design of suitable classes in Object Oriented Programming
- Understand and produce code that shows Object Oriented Programming being applied
- Understand and solve a problem through drafting suitable facts and rules drawn from the information given, within Declarative programming
- Understand and produce code capable of satisfying a goal through the use of facts and rules within Declarative programming
20.2File Processing and Exception Handling7 objectives
- Write code that carries out file-processing operations
- Open a file in read, write or append mode, and close it
- Read one record out of a file and write one record into a file
- Carry out file-processing operations on random, sequential and serial files
- Show understanding of what an exception is and why exception handling matters
- Know the kinds of situation that call for exception handling
- Write program code that makes use of exception handling
Kindred builds your map from these, so you can see what you've covered and what's still to do.