Computer Science
subject overview
A high-quality computing education equips learners to use computational thinking and creativity to understand and change the world. Computing has deep links with mathematics, science and design and technology, and provides insights into both natural and artificial systems. The core of computing is computer science, in which learners are taught the principles of information and computation, how digital systems work and how to put this knowledge to use through programming. Building on this knowledge and understanding, learners are equipped to use information technology to create programs, systems and a range of content. Computing also ensures that learners become digitally literate – able to use, and express themselves and develop their ideas through, information and communication technology – at a level suitable for the future workplace and as active participants in a digital world.
unit overview - unit 1.1
Subject: Comp 1.1 System architecture |
|
Skills |
Be able to explain what is meant by a computer system and an embedded system Be able to describe the structure of the central processing unit and the role of its components Be able to describe the process of program execution (i.e. the fetch – decode - execute cycle) and its effect on registers Be able to explain the impact on CPU performance of its component features Be able to explain the need for and role of multiple cores and cache Describing how a range of embedded computers input, process and output data |
Knowledge |
Understand the purpose of the CPU Understand the features of Von Neumann architecture:
Understand common CPU components and their function:
Understand the function of the CPU is to fetch and execute instructions stored in memory Know how common characteristics of CPUs affect their performance:
Understand embedded systems:
|
Rationale |
A miracle in its day, the first computers built in the 1940s were the size of a modern classroom and had less computational power than a modern smart phone. Today’s home computers routinely execute over 3 billion instructions per second, multi-task between several applications, and are found in an ever-increasing range of devices. This unit examines how this is achieved through the design of the modern processor. This unit demystifies what goes on ‘under the hood’ when computers are switched on and programs are run. It also examines external factors which affect CPU performance – understanding these will enable students to make appropriate decisions to help better performance on their own computers. It also highlights how computers are embedded into everyday objects – to see computers in this light will enable a student to think like a maker and one day contribute to a ‘maker society’. Students must also be able to successfully respond to GCSE level test questions on the above. |
unit overview - unit 1.2
Subject: Comp 1.2 Memory |
|
Skills |
Be able to describe features of volatile/non-volatile and read-write/read-only primary storage; to apply these technologies to a range of contexts. Be able to explain the need for, the role of and the process of virtual memory use; and to apply its advantages and disadvantages to standard computing contexts Describing features of flash memory in a range of standard computing contexts |
Knowledge |
Understand the difference between RAM and ROMKnow the purpose of ROM and RAM in a computer system Understand the need for virtual memory Understand the features of flash memory |
Rationale |
Over the past seventy years, the capacity of computers has approximately doubled every eighteen months. In the 1980s, loading 8-bit games from a cassette tape onto a home computer in just five minutes was considered as the height of modern technology. A decade later, games and applications were stored on what was considered to be enormous 1GB hard drives. Another decade saw the same capacity on pen drives, and another still, hard disks on home PCs have terabytes of storage. The same advances have been made in RAM, where computers can now multi-task between memory-intensive applications without loss of performance, and sports and combat games can be played live over a network. The above has been made possible through developments in memory technology, and this unit seeks to understand how this is possible. Students will understand how primary storage makes multi-tasking possible, so that they can better manage their computers to run quickly without overheating or blowing the power supply. With this knowledge, they will make appropriate decisions when addressing common issues such as slow performance and overheating. Students must also be able to successfully respond to GCSE level test questions on the above. |
unit overview - unit 1.3
Subject: Comp 1.3 Storage |
|
Skills |
Be able to describe why primary storage is insufficient in a computer system, and why non-volatile, read-write memory is also required Be able to calculate data capacity requirements for common computing contexts Be able to apply the features of optical, magnetic and solid state memory to a range of common computing contexts Be able to justify why a range of storage devices would be appropriate for a given computing context |
Knowledge |
Understand the need for secondary storage. Understand data capacity and calculation of data capacity requirements. Know the common types of storage (optical, magnetic, solid state) Understand the suitable storage devices and media for a given application, and the advantages and disadvantages of these, including characteristics (capacity, speed, portability, durability, reliability, cost) |
Rationale |
As storage devices evolve over time, three broad technologies have emerged: magnetic (storing data using magnetic media such as a hard disk drive), optical (using optical devices such as CDs) and solid state (using devices such as flash memory). Understanding the features of each enables a student to make informed decisions about the storage in their computer systems. Knowing why computers need permanent, non-volatile storage is important when building/purchasing a computer system with the correct components. Given that students will spend their entire lives owning and using hundreds of digital devices, this knowledge enables them to purchase/select an appropriate storage technology and device for any given situation. In addition, it will enable them to calculate data capacity requirements no matter what the situation. Students must also be able to successfully respond to GCSE level test questions on the above. |
unit overview - unit 1.4
Subject: Comp 1.4 Wired and wireless networks |
|
Skills |
Explain what is meant by a computer network and list the different types of networks Describe the differences between a client-server and peer-to-peer networks Explain the functions of the hardware needed to connect computers Explain how computers connect using cable and microwave |
Knowledge |
Understand types of networks: LAN (Local Area Network), WAN (Wide Area Network) Understand factors that affect the performance of networks Understand the different roles of computers in a client-server and a peer-to-peer network Know the hardware needed to connect stand-alone computers into a Local Area Network: wireless access points, routers/switches, NIC (Network Interface Controller/Card), transmission media Understand the internet as a worldwide collection of computer networks: DNS (Domain Name Server), hosting, the cloud Understand the concept of virtual networks |
Rationale |
Students must know that the networking of computers has made an enormous impact on our working and social lives, and in how we research, shop, communicate and learn. This unit examines ways in which this connected world is made possible through use of networks – thanks to which we can publish our thoughts and images to a global audience wherever they are on the world wide web. By studying this unit, students will learn how our home computers are networked with our smart phones, printers and speakers. Further still, it examines how the data we send and receive travels across the Internet instantaneously, and enables our real-time connections with people and services worldwide. Students must also be able to successfully respond to GCSE level test questions on the above. |
unit overview - unit 1.5
Subject: Comp 1.5 Network topologies, protocols and layers |
|
Skills |
Describe network topologies Explain how users connect to and use the Internet Explain how data is transmitted across networks Explain the use of protocols Explain how virtual networks can be set up |
Knowledge |
Understand star and mesh network topologies Understand Wifi: frequency and channels, encryption Understand Ethernet Understand the uses of IP addressing, MAC addressing, and protocols including: TCP/IP (Transmission Control Protocol/Internet Protocol), HTTP (Hyper Text Transfer Protocol), HTTPS (Hyper Text Transfer Protocol Secure), FTP (File Transfer Protocol), POP (Post Office Protocol), IMAP (Internet Message Access Protocol), SMTP (Simple Mail Transfer Protocol) Understand the concept of layers Understand packet switching |
Rationale |
Decisions made about how to organise computer networks are based upon factors such as geography, usage, security, etc. The unit explores common ways that networks are organised and the various hardware items utilised in their setup. By studying this unit, students will learn how to make sensible decisions about organisation of computer networks, and understand why the networks that they use are organised in the way they are. They will also come to understand the various layers that each text message travels along on its way from one phone to the next. This unit demystifies the engineering behind this speedy data transfer, and provides a vocabulary for describing each step of this complex process. Students must also be able to successfully respond to GCSE level test questions on the above. |
unit overview - unit 1.6
Subject: Comp 1.6 System security |
|
Skills |
Describing ways in which human beings are the weakest form of defence on a network. Describing common ways that computers come under threat on a network Suggesting appropriate defences for a range of cyber-attacks in a series of given personal and organisational contexts. Program a Caesar cipher in Python using a decomposed set of functions. |
Knowledge |
Understand forms of attack Understand threats posed to networks: malware, phishing, people as the ‘weak point’ in secure systems (social engineering), brute force attacks, denial of service attacks, data interception and theft, the concept of SQL injection, poor network policy Identifying and preventing vulnerabilities: penetration testing, network forensics, network policies, anti-malware software, firewalls, user access levels, passwords, encryption |
Rationale |
Cyber security comprises the various methods of deploying technology to protect data, applications, computers and networks from malicious attack. This unit makes the student aware of various ways that hackers seek to gain unauthorized access to computers through social engineering. It then focuses on a wide range of attacks which hackers use to inflict damage on computer systems, so that each one can be recognised. Finally, the unit highlights some sound practices that computer users should use to detect and prevent cyber security threats. Students must also be able to successfully respond to GCSE level test questions on the above. |
unit overview - unit 1.7
Subject: Comp 1.7 Systems software |
|
Skills |
Describing the purpose and function of systems software Explain the role of an operating system within a computer system Describe the various uses of utility and application software |
Knowledge |
Understand the purpose and functionality of systems software Understand operating systems: user interface, memory management/multitasking, peripheral management and drivers, user management, file management Understand utility system software: encryption software, defragmentation, data compression, the role and methods of backup (full & incremental) |
Rationale |
Software on a computer system is classified into three broad categories: operating system, utility and applications software. Learning this develops the sense that computer systems are an impressive orchestration of programs that come together to serve our wants and needs. This unit provides a clarified sense of purpose for the programs that we want to write. Do our programs create an interface which points to the whole system? Do they perform specialised tasks like compression or encryption? Do they contribute to our better productivity, our entertainment, allow us to while away the hours having fun on the computer? These are, respectively, operating system, utility and application software, and this unit provides a better vocabulary for understanding where any software fits into the computing picture. Students must also be able to successfully respond to GCSE level test questions on the above. |
unit overview - unit 1.8
Subject: Comp 1.8 Ethical, legal, cultural and environmental concerns |
|
Skills |
Be able to investigate and discuss concerns regarding the development, use and impact of computing technology such as:
Be able to discuss issues of privacy and data collection Be able to describe the legislation relevant to Computing |
Knowledge |
Understand the factors to consider when investigating and discussing Computer Science technologies: ethical issues, legal issues, cultural issues, environmental issues, privacy issues Understand how key stakeholders are affected by technologies Understand the environmental impact of Computer Science Understand the cultural implications of Computer Science Understand the features of open source vs proprietary software Know the legislation relevant to Computer Science:
|
Rationale |
The contribution made by computer science to humanity is beyond measure, and computers are now so ubiquitous that they support most aspects of our lives. It is common today for computers to be embedded in robot limbs, in software for language learning, in cars to sense the proximity of other cars, on our phones to send each other silly images, on our televisions to stream television on demand, on speakers that understand voice-instructions to play music, in the background on our PCs to protect us from cyber-attacks, and even on every hotel door handles, to identify the guests as they leave and enter the rooms. In the next twenty years, advances in artificial intelligence will bring about ever greater leaps and bounds forward to augment our lives in ever more clever ways that today, we cannot even imagine. This unit examines the impact of these advances, and asks if more harm is being done than good. Does the development, use and disposal of these hardware devices create too large a carbon footprint? Do the computers bring about losses of privacy, or worse – do they put tools to steal money, property and even identity from ordinary people and businesses? Does the widespread use of computers actually exacerbate gaps between the haves and the have nots? Understanding these issues will make for an ethically aware generation of future computer scientists that understands the issues and laws surrounding them, and is able to make environmentally conscious decisions, mindful of the less desirable impacts of the technology that they are building. Students must also be able to successfully respond to GCSE level test questions on the above. |
unit overview - unit 2.1
Subject: Comp 2.1 Algorithms |
|
Skills |
Being able to apply features of abstraction, decomposition & algorithmic thinking to a range of common computing contexts Being able to perform a binary search on a given array Being able to program a linear search Being able to perform bubble, merge and insertion sorts on given arrays Being able to solve common computing problems using pseudocode Being able to represent problems using flowcharts; and read flowcharts to track outputs from a range of inputs |
Knowledge |
Understanding computational thinking: abstraction, decomposition, algorithmic thinking Understanding standard searching algorithms: binary search, linear search Understanding standard sorting algorithms: bubble sort, merge sort, insertion sort Knowing how to produce algorithms using: pseudocode, using flow diagrams Interpreting, correcting or completing given algorithms |
Rationale |
While observers of the development of computing often comment on the developments in storage, memory and networking capability, it is in fact the creation of more intelligent algorithms which has made the greatest advances in computer science. Algorithms enable machines to learn from our behaviour, predict financial and stock outcomes, drive vehicles and suggest new things for us to purchase. Moreover, algorithms enable us to find data at the speed of light, no matter how large the data set, and sort data into a new order at the click of the button. This unit considers some well-known algorithms which have contributed more to computing than developments in hardware. Answer this: how do you more quickly find one record in a billion? Should you network more computers up to the task of searching for it – line up a thousand powerful PCs to search for this data in a line until it is found? Or do you write a clever few lines of code that conquers this task instantaneously – finding one in a billion at the blink of an eye? The answer is the algorithm, and this unit curates some well-known algorithms. Students will come to understand how computer programs find the data that they are searching for (and how finding it more quickly is done using better algorithms, not buying more expensive hardware). They will understand which searching algorithm to use with which data, and some clever ways that computers sort data into order (and how it is done more efficiently, and without overusing memory). Students will also come to understand how, through computational thinking, computers model reality, and the decisions about what goes into (and what is left out of) a program. They will understand how large problems are approached by computer scientists, how to reassemble a problem after it is broken down into smaller parts. Students must also be able to successfully respond to GCSE level test questions on the above. |
unit overview - unit 2.2
Subject: Comp 2.2 Programming techniques |
|
Skills |
Being able to apply the full range of GCSE CS programming techniques to write computer programs which solve real world problems. Writing programs which:
|
Knowledge |
Understand the use of variables, constants, operators, inputs, outputs and assignments Understand the use of the three basic programming constructs used to control the flow of a program: sequence, selection, iteration (count and condition controlled loops) Understand the use of basic string manipulation Understand the use of basic file handling operations: open, read, write, close Understand the use of records to store data, and SQL to search for data Understand the use of arrays (or equivalent) when solving problems, including both one and two dimensional arrays Understand how to use sub programs (functions and procedures) to produce structured code Understand common data types: integer, real, Boolean, character, string, casting Understand the common arithmetic and Boolean operators |
Rationale |
The heart of GCSE Computer Science is the ability to program computers to perform on our behalf. This means writing instructions efficiently in a code which the computer will follow every time. These instructions should also be flexible, so that the computer performs different instructions depending on the user’s input. They should also take advantage of the computer’s enormous processing power, and be able to repeat tasks as many times as is required. This unit sets out to develop these programming techniques, and also addresses how to organise larger sets of data in our programs, how to manipulate the data in these larger data sets, and how to interact with data stored on our hard drives. By engaging with these programming tasks, students will apply the full range of GCSE CS programming techniques, and write computer programs which solve real world problems. They will also learn how to write efficient algorithms which handle and search data. Students must also be able to successfully respond to GCSE level test questions on the above, which ask them to solve simple and complex problems using computers. |
unit overview - unit 2.3
Subject: Comp 2.3 Producing robust programs |
|
Skills |
To be able to write Python programs which sanitise and validate input and authenticate user access To be able to write maintainable Python programs featuring comments, functions, indentation, white space, etc. To be able to write a range of common tests for some simple Python programs, then run the tests using test data To be able to trouble-shoot Python programs for syntax and logic errors To be able to describe the differences between common tests: iterative, final |
Knowledge |
To understand defensive design considerations: input sanitisation/validation, planning for contingencies, anticipating misuse, authentication To understand the features of maintainability: comments, indentation To understand the purpose of testing To understand types of testing: iterative, final/terminal To understand how to identify syntax and logic errors To be able to select and use suitable test data |
Rationale |
Everybody who ever studied how to write computer programs has found that once they had mastered the standard range of programming techniques, their programs still came off worse in comparisons to professional programs. The professional programs were far smoother to read, and made sense from beginning to end, and had a logical feel to them. They were shorter, and made less demands on memory as they ran; they also handled a wide range of possibly erroneous inputs form the user and avoided crashing; they were also so skilfully written that they defended against hackers. They were also widely tested during development and again before release so that these programs did exactly what they were supposed to, and did not behave strangely over time. This unit is about writing better, more refined, smarter computer programs which handle common input errors, are readable by other programmers, and do not crash. It is also about designing, writing and running tests that catch logic errors before programs are shared. Students must also be able to successfully respond to GCSE level test questions on the above. |
unit overview - unit 2.4
Subject: Comp 2.4 Computational logic |
|
Skills |
Be able to describe the purpose of the base two number system in a computer system Be able to draw simple and complex logic circuits using AND, OR and NOT Be able to trace inputs to simple and complex logic circuits using truth tables Be able to write computer programs that utilise common computational mathematical operators |
Knowledge |
Know why data is represented in computers in binary form Understand simple logic diagrams using the operations AND, OR and NOT Understand truth tables Understand how to combine Boolean operators using AND, OR and NOT to two levels Applying logical operators in appropriate truth tables to solve problems Applying computing-related mathematics: +, -, /, *, ^, MOD, DIV |
Rationale |
Students must be able to consider abstract logic using a framework that can be communicated to colleagues. By applying Boolean logic, it is possible to express whether something seemingly complex is, in the end, either True or False. This unit teaches a framework for performing logical evaluations on multiple inputs, and arriving at True/False judgements. These same circuits are the building block of computing, while AND, OR and NOT are to be found universally in programs, circuit boards and digital devices. For example, automatic security lights rely on logic gates to know when to switch on and off; sensors used with logic gates can trigger actions like windows that shut automatically when it rains; on/off transistors are combined into logic circuits in order to solve real world problems. Students must also be able to successfully respond to GCSE level test questions on the above. |
Unit overview - unit 2.5
Subject: Comp 2.5 Translators and facilities of languages |
|
Skills |
Be able to describe the difference between low and high level languages Explain the advantages of using high level languages Explain how program instructions are encoded in low level languages Explain why high level languages needs to be translated Explain the characteristics and use of an assembler, a compiler and an interpreter Be able to understand – and even code – simple programs in assembly language. |
Knowledge |
Know the characteristics and purpose of different levels of programming language, including low level languages Understand the purpose of translators Understand the characteristics of an assembler, a compiler and an interpreter Know the common tools and facilities available in an integrated development environment (IDE): editors, error diagnostics, run-time environment, translators |
Rationale |
Students must be able to consider milestones in the evolution of programming languages, seeing how each iteration along the way finds a better way for a human being to give an instruction to a computer. In this unit, students are encouraged to see how programming languages have evolved over the last half-century as developers refine how we tell the computer to perform instructions in sequence, in branches, and iteratively. At the same time, students should also see how no matter what the programming language, it still must be translated into machine-readable strings of 1s and 0s – the only language that computers understand. Students must also be able to successfully respond to GCSE level test questions on the above. |
unit overview - unit 2.6
Subject: Comp 2.6 Data representation |
|
Skills |
Explain how data is represented by computer systems Explain why the binary system is essential for computer processing Be able to convert binary numbers into denary and vice versa Be able to carry out addition, subtraction, multiplication and division on binary numbers Be able to use left and right shifts when multiplying or dividing binary numbers by powers of 2 Explain why hexadecimal numbers are used Be able to convert between hexadecimal, denary and binary |
Knowledge |
Understand the units of data in a computer system: bit, nibble, byte, kilobyte, megabyte, gigabyte, terabyte, petabyte Understand how data needs to be converted into a binary format to be processed by a computer Know how to convert positive denary whole numbers (0–255) into 8 bit binary numbers and vice versa Know how to add two 8 bit binary integers and explain overflow errors which may occur Understand the process of binary shifts Know how to convert positive denary whole numbers (0–255) into 2 digit hexadecimal numbers and vice versa Know how to convert from binary to hexadecimal equivalents and vice versa Understand the role of check digits Understand the use of binary codes to represent characters Understand the term ‘character-set’ Understand the relationship between the number of bits per character in a character set and the number of characters which can be represented (for example ASCII, extended ASCII and Unicode) Understand how an image is represented as a series of pixels represented in binary Understand the metadata included in a file Understand the effect of colour depth and resolution on the size of an image file Understand how sound can be sampled and stored in digital form Understand how sampling intervals and other factors affect the size of a sound file and the quality of its playback: sample size, bit rate, sampling frequency Understand the need for compression Understand common types of compression, such as lossy and lossless |
Rationale |
Students must know that all the data in all the applications they have ever used has been converted into billions of 1s and 0s – because despite the spectacular capabilities of computers, 1s and 0s are all a computer can work with. The billions of transistors on a computer act as switches which are either ON or OFF – this two-state system is known as a binary system. All computer programs turn these switches on and off, and these combinations represent binary numbers. This unit first seeks to understand how these binary numbers represent numbers as we know them. It then goes on to explain how these numbers, in turn, represent letters and symbol on the keyboard, colours on our monitor, images on your smart phone and music on your stereo. Once a student masters this knowledge, it can be applied to a wide range of uses, such as image enhancement, encryption. Before this, it is also applied in common decisions about how much digital data an application is likely to generate, and how much storage is required. Students must also be able to successfully respond to GCSE level test questions on the above. |
knowledge Organiser
A knowledge organiser is an important document that lists the important facts that learners should know by the end of a unit of work. It is important that learners can recall these facts easily, so that when they are answering challenging questions in their assessments and GCSE and A-Level exams, they are not wasting precious time in exams focusing on remembering simple facts, but making complex arguments, and calculations.
We encourage all pupils to use them by doing the following:
- Quiz themselves at home, using the read, write, cover, check method.
- Practise spelling key vocabulary
- Further researching people, events and processes most relevant to the unit.