Syllabus notes

Notes and extracts from GCSE (9-1) Specification COMPUTER SCIENCE

J276: For first assessment in 2018

Content of GCSE Computer Science

1) Computer systems
• Systems Architecture
• Memory
• Storage
• Wired and wireless networks
• Network topologies, protocols
and layers
• System security
• System software
• Ethical, legal, cultural and
environmental concerns

2) Computational thinking, algorithms
and programming
• Algorithms *
• Programming techniques
• Producing robust programs
• Computational logic
• Translators and facilities of
languages
• Data representation

3) Programming project **
• Programming techniques
• Analysis
• Design
• Development
• Testing and evaluation and
conclusions

1.1 Systems architecture

• the purpose of the CPU
• Von Neumann architecture:
⃝ MAR (Memory Address Register)
⃝ MDR (Memory Data Register)
⃝ Program Counter
⃝ Accumulator
• common CPU components and their function:
⃝ ALU (Arithmetic Logic Unit)
⃝ CU (Control Unit)
⃝ Cache
• the function of the CPU as fetch and execute instructions stored in memory
• how common characteristics of CPUs affect their performance:
⃝ clock speed
⃝ cache size
⃝ number of cores
• embedded systems:
⃝ purpose of embedded systems
⃝ examples of embedded sytems.

1.2 Memory

• the difference between RAM and ROM
• the purpose of ROM in a computer system
• the purpose of RAM in a computer system
• the need for virtual memory
• flash memory.

1.3 Storage

• the need for secondary storage
• data capacity and calculation of data capacity requirements
• common types of storage:
⃝ optical
⃝ magnetic
⃝ solid state
• suitable storage devices and storage media for a given application, and the advantages and
disadvantages of these, using characteristics:
⃝ capacity
⃝ speed
⃝ portability
⃝ durability
⃝ reliability
⃝ cost.

1.4 Wired and wireless networks

• types of networks:
⃝ LAN (Local Area Network)
⃝ WAN (Wide Area Network)
• factors that affect the performance of networks
• the different roles of computers in a client-server and a peer-to-peer network
• 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
• the internet as a worldwide collection of computer networks:
⃝ DNS (Domain Name Server)
⃝ hosting
⃝ the cloud
• the concept of virtual networks.

1.5 Network topologies, protocols and layers

• star and mesh network topologies
• Wifi:
⃝ frequency and channels
⃝ encryption
• ethernet
• 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)
• the concept of layers
• packet switching.

1.6 System security

• forms of attack
• 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.

1.7 Systems software

• the purpose and functionality of systems software
• operating systems:
⃝ user interface
⃝ memory management/multitasking
⃝ peripheral management and drivers
⃝ user management
⃝ file management
• utility system software:
⃝ encryption software
⃝ defragmentation
⃝ data compression
⃝ the role and methods of backup:
n full
n incremental.

1.8 Ethical, legal, cultural and environmental concerns

• how to investigate and discuss Computer Science technologies while considering:
⃝ ethical issues
⃝ legal issues
⃝ cultural issues
⃝ environmental issues.
⃝ privacy issues.
• how key stakeholders are affected by technologies
• environmental impact of Computer Science
• cultural implications of Computer Science
• open source vs proprietary software
• legislation relevant to Computer Science:
⃝ The Data Protection Act 1998
⃝ Computer Misuse Act 1990
⃝ Copyright Designs and Patents Act 1988
⃝ Creative Commons Licensing
⃝ Freedom of Information Act 2000.

2.1 Algorithms

• computational thinking:
⃝ abstraction
⃝ decomposition
⃝ algorithmic thinking
• standard searching algorithms:
⃝ binary search
⃝ linear search
• standard sorting algorithms:
⃝ bubble sort
⃝ merge sort
⃝ insertion sort
• how to produce algorithms using:
⃝ pseudocode
⃝ using flow diagrams
• interpret, correct or complete algorithms.

2.2 Programming techniques

• the use of variables, constants, operators, inputs, outputs and assignments
• the use of the three basic programming constructs used to control the flow of a program:
⃝ sequence
⃝ selection
⃝ iteration (count and condition controlled loops)
• the use of basic string manipulation
• the use of basic file handling operations:
⃝ open
⃝ read
⃝ write
⃝ close
• the use of records to store data
• the use of SQL to search for data
• the use of arrays (or equivalent) when solving problems, including both one and two dimensional
arrays
• how to use sub programs (functions and procedures) to produce structured code
• the use of data types:
⃝ integer
⃝ real
⃝ Boolean
⃝ character and string
⃝ casting
• the common arithmetic operators
• the common Boolean operators.

2.3 Producing robust programs

• defensive design considerations:
⃝ input sanitisation/validation
⃝ planning for contingencies
⃝ anticipating misuse
⃝ authentication
• maintainability:
⃝ comments
⃝ indentation
• the purpose of testing
• types of testing:
⃝ iterative
⃝ final/terminal
• how to identify syntax and logic errors
• selecting and using suitable test data.

2.4 Computational logic

• why data is represented in computer systems in binary form
• simple logic diagrams using the operations AND, OR and NOT
• truth tables
• combining Boolean operators using AND, OR and NOT to two levels
• applying logical operators in appropriate truth tables to solve problems
• applying computing-related mathematics: +, – , / , * , Exponentiation (^) , MOD , DIV

2.5 Translators and facilities of languages

• characteristics and purpose of different levels of programming language, including low level languages
• the purpose of translators
• the characteristics of an assembler, a compiler and an interpreter
• common tools and facilities available in an integrated development environment (IDE):
⃝ editors
⃝ error diagnostics
⃝ run-time environment
⃝ translators.

2.6 Data representation

Units
• bit, nibble, byte, kilobyte, megabyte, gigabyte, terabyte, petabyte
• how data needs to be converted into a binary format to be processed by a computer.
Numbers
• how to convert positive denary whole numbers (0–255) into 8 bit binary numbers and vice versa
• how to add two 8 bit binary integers and explain overflow errors which may occur
• binary shifts
• how to convert positive denary whole numbers (0–255) into 2 digit hexadecimal numbers and vice
versa
• how to convert from binary to hexadecimal equivalents and vice versa
• check digits.


Characters
• the use of binary codes to represent characters
• the term 'character-set'
• 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).


Images
• how an image is represented as a series of pixels represented in binary
• metadata included in the file
• the effect of colour depth and resolution on the size of an image file.

Sound
• how sound can be sampled and stored in digital form
• 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.


Compression
• need for compression
• types of compression:
⃝ lossy
⃝ lossless.

3. The non-exam assessment

This should take a total of 20 hours to complete unless there are specific access requirements that should be considered.
The non-exam assessment should be done using a suitable high level language such as:
• Python
• C family of languages (for example C# C++ etc.)
• Java
• JavaScript
• Visual Basic/.Net
• PHP
• Delphi
• SQL
• BASH

The project can be carried out in many ways but is best approached using an iterative process for developing
solutions to the task such as below:
• Success criteria (what will a successful solution be)
• Planning and design (flow charts and pseudocode)
• Development (narrative of the process with explanations of code)
• Testing and remedial actions (with narrative of changes made)
• Evaluation (clearly linked to success criteria).
This process will allow learners to demonstrate the key elements of computational thinking:
• Thinking abstractly – removing unnecessary detail
• Thinking ahead – identifying preconditions and inputs and outputs
• Thinking procedurally – identifying components of problems and solutions
• Thinking logically – predicting and analysing problems
• Thinking concurrently – spotting and using similarities.

3.1 Programming techniques

• how to identify and use variables, operators, inputs, outputs and assignments
• how to understand and use the three basic programming constructs used to control the flow of a
program: Sequence; Selection; Iteration
• how to understand and use suitable loops including count and condition controlled loops
• how to use different types of data, including Boolean, string, integer and real, appropriately in
solutions to problems
• how to understand and use basic string manipulation
• how to understand and use basic file handling operations:
⃝ open
⃝ read
⃝ write
⃝ close
• how to define and use arrays (or equivalent) as appropriate when solving problems
• how to understand and use functions/sub programs to create structured code.

3.2 Analysis

• how to analyse and identify the requirements for a solution to the problem
• how to set clear objectives that show an awareness of the need for real world utility
• how to use abstraction and decomposition to design the solution to a problem
• how to identify the data requirements for their system
• how to identify test procedures to be used during and after development to check their system against
the success criteria
• how to use validation to ensure a robust solution to a problem.

3.3 Design

• how to design suitable algorithms to represent the solution to a problem
• how to design suitable input and output formats and navigation methods for their system
• how to identify suitable variables and structures with appropriate validation for their system
• how to use appropriate data types in their system
• how to use functions/sub programmes to produce structured reusable code
• how to select suitable techniques for the development of the solution.

3.4 Development

• how to develop a solution to the identified problem using a suitable programming language(s)
• how to demonstrate testing and refinement of the code during development
• how to explain the solution using suitable annotation and evidence of development
• how to use suitable techniques to solve all aspects of the problem
• how to take a systematic approach to problem solving
• how to deploy practical techniques in an efficient and logical manner
• how to show an understanding of the relevant information by presenting evidence of the development
of their solutions
• how to show an understanding of the technical terminology/concepts that arise from their
investigation through analysis of the data collected
• how to use the terminology/concepts surrounding their topic and contained in the information
collected correctly when it comes to producing analysis in the supporting script.

3.5 Testing and evaluation and conclusions

• how to produce a full report covering all aspects of the investigation
• how to present the information in a clear form which is understandable by a third party and which is
easily navigatable
• how to critically appraise the evidence that they have presented
• how to test their own solution
• how to present their evaluation in a relevant, clear, organised, structured and coherent format
• how to use specialist terms correctly and appropriately
• how to present a conclusion to the report
• how to justify their conclusions based on the evidence provided.