OCR H446 A-Level Computer Science

1.1.1 Architecture of the CPU

Parts of the CPU
  • Control Unit
  • ALU
  • Registers
Registers within the CPU
  • Accumulator
  • Memory Data Register
  • Memory Address Register
  • Program Counter
  • Current Instruction Register
Fetch-Decode-Execute cycle
  • Registers involved
  • Fetch, decode, execute cycle
CPU performance factors
  • Clock speed
  • Multi-core
  • Cache
  • RAM size
  • GPU
  • Pipelining
System performance factors
  • Faster CPU
  • Improved RAM
  • Graphics card
  • Upgraded Drive
  • Upgraded OS
Architecture of the CPU
  • Von Neumann architecture
  • Harvard architecture

1.1.2 Types of processor

CISC and RISC
  • Complex Instruction Cycle
  • Reduced Instruction Cycle
Multicore and Parallel processing
  • Pipelining
  • Array processor
  • Multi-core
  • GPU

1.1.3 Input, output, and storage

Types of storage
  • Magnetic
  • Optical
  • Solid state
Main memory
  • Random access memory (RAM)
  • Read-only memory (ROM)
  • Virtual memory

1.2.1 Operating system

Purpose of an operating system
  • Kernel
  • Device Drivers
  • Utilities
  • User Interface
Memory management
  • Segmentation
  • Pagination
  • Virtual memory
  • Memory issues
Scheduling
  • Round Robin
  • First Come First Serve
  • Shortest Job
  • Shortest time
  • Multi-level
CPU priority changes
  • Interrupts
  • Polling
Types of operating system
  • Multi Tasking
  • Multi User
  • Distributed
  • Real Time
BIOS
  • Booting
  • BIOS
  • POST
  • System start
  • Operating system boot
Virtual machines
  • Virtual machines
  • With operating systems
  • With bytecode

1.2.2 Software

Types of software
  • Applications
  • Utilities
  • Generic software
  • Bespoke & Custom software
  • Closed source
  • Open source
From code to software
  • Translators
  • Interpreters
  • Compilers
  • Assemblers
Stages of compilation
  • Lexical
  • Syntactic
  • Code generation
Linkers, loaders, and libraries
  • Modules
  • Libraries
  • Linkers
  • Loaders

1.2.3 Software development cycle

Software development
  • Waterfall
  • Rapid Application Development
  • Spiral
  • Agile
  • Extreme Programming
  • Merits of different software methods

1.2.4 Introduction to programming

Programming paradigms
  • Paradigms
  • Low level languages
  • Procedural languages
  • Object-oriented languages
  • Declarative languages
  • Functional languages
Procedural language techniques
  • What is a procedural language
  • Procedures
  • Subroutines
  • Functions
  • Program flow
  • Variables and Scope
  • Constants
  • String Handling
  • File Handling
  • Operators
Assembly language and LMC
  • The 'Little Man Computer'
  • Instruction Set
  • Labels
  • Calculation
  • Branching
  • Input-Output
  • Loops
Memory modes
  • Immediate addressing
  • Direct addressing
  • Indirect addressing
  • Indexed addressing

1.2.5 Object-oriented programming

Object-oriented programming
  • Classes
  • Attributes
  • Methods
  • Objects
  • Interfaces
  • Encapsulation
  • Polymorphism

1.3.1 Data

Compression
  • Principle of compression
  • Lossy compression
  • Lossless compression
  • Dictionary compression
  • Run Length encoding
  • Huffman encoding
Encryption
  • Symmetric encryption
  • Asymmetric encryption
  • RSA and AES
  • Comparison
  • Public-private keys
Hashing
  • What it is
  • Hash uses
  • Passwords
  • Digital Certificates
  • Faster searching

1.3.2 Databases

Databases
  • Flat file databases
  • Relational databases
  • Primary key
  • Foreign key
  • Secondary key
Normalisation
  • First Normal Form
  • Second Normal Form
  • Third Normal Form
SQL
  • SQL language
  • Tables
  • Create and Alter
  • Select and retreive
  • Combine with JOIN
Transaction processing
  • Database transactions
  • C.R.U.D.
  • A.C.I.D.

1.3.3 Networks

Network basics
  • Network Characteristics
  • Protocols and Standards Importance
Network protocols
  • Global standards
  • UDP
  • HTTP(s)
  • FTP
  • POP,LDAP,SMTP
  • Ethernet
Models and layers
  • Internet 4 Layer Model
  • Protocol Layering
  • Physical & Logical layers
  • OSI
TCP/IP stack
  • TCP/IP
  • Ports and Sockets
Packet switching
  • Circuit switching
  • Datagrams
  • Packet Switching
Addressing
  • IP Format
  • Subnet Mask
  • IANA and ICANN
  • IPv4 and IPv6
  • DNS and Domain Name
  • MAC address
Network scale
  • Personal area network
  • Local area network
  • Wide area network
  • Other network scales (MAN, SAN)
Network configuration
  • Client-Server
  • Peer-to-peer
Network security
  • Authentication
  • User rights
  • User Education
  • Encryption
  • Firewall
  • Proxy Server
Network hardware
  • NIC - Network Interface Controller
  • Router
  • Bridge
  • Hub
  • Switch
  • WAP

1.3.4 Web technologies

Web technologies
  • HTML
  • CSS
  • Javascript
Web search
  • Crawlers
  • PageRank
  • Advanced search
Client & Server processing
  • Client side processing
  • Client side pros and cons
  • Server side processing
  • Server side pros and cons
  • Processing technologies
Transaction processing
  • Database transactions
  • C.R.U.D.
  • A.C.I.D.

1.4.1 Data types

Primitive
  • Integer
  • Real
  • Character
  • String
  • Boolean
Integer
  • Range
  • Unsigned
  • Signed
  • Sign & Magnitude
  • Two's compliment
Real
  • Fixed point
  • Floating point
  • Mantissa, Exponent
  • Placing binary point
Normalisation
  • Floating point limits
  • Normalising floating point
  • Examples
Floating point arithmetic
  • Floating point addition
  • Floating point subtraction
Bit manipulation
  • Left shift
  • Right shift
  • Circular shift
  • AND, OR, XOR applied
Character sets
  • Character Set
  • ASCII
  • Extended ASCII
  • Unicode
  • UTF-8
Hexadecimal
  • Why Hexadecimal
  • Denary to Hexadecimal
  • Hexadecimal to Denary
  • Binary to Hexadecimal
  • Hexadecimal to Binary

1.4.2 Data structures

Data structures
  • List
  • Linked List
  • Array
  • Tuple
  • Dictionary (associative array)
Arrays
  • 1 dimensional array
  • 2 dimensional array
  • 3 dimensional array
  • Array iterations
  • Array operations
Queues and stacks
  • Queue
  • Stack
  • LIFO queue
  • FIFO queue
  • Code examples
Graphs
  • Undirected graph
  • Directed graph
  • Weighted graph
  • Adjacency Matrix
  • Adjacency List
  • Breadth First Search
  • Depth First Search
  • Python code examples
Trees
  • Parts of a tree
  • Tree traversal
  • Preorder traversal
  • Inorder traversal
  • Postorder traversal
  • Python tree code example
Hash tables
  • Hashing
  • Hash Functions
  • Load Factor
  • Search algorithm
  • Linear Probe
  • Chaining

1.4.3 Boolean logic

Boolean operators
  • Boolean algebra expressions
  • Logic and design
  • NOT operation
  • OR operation
  • AND operation
  • XOR operation
  • NAND operation
  • NOR operation
Expressions
  • Combining gates
  • Multi-level diagrams
  • Expression to Diagram
  • Building Truth tables
  • Diagram to Truth tables
Karnaugh maps
  • Constructing
  • Minimise expression
  • Truth table to minterms
  • Minterms to Map
Simplification
  • Boolean identities
  • Boolean Laws
  • De Morgan's Theorems
  • Simplifying practice
Adders
  • Half Adder
  • Full Adders
  • Cascading
  • Overflow

1.5.1 Legislation

Legislation
  • Data Protection Act
  • Computer Misuse Act
  • Copyright Design & Patent Act
  • Regulation of Investigatory Powers

2.3.1 Algorithms

Algorithm analysis
  • Analysing algorithms
  • Space efficiency
  • Time efficiency
  • Compromises
  • Big O notation
Big O expressions
  • Analysing algorithms
  • Big O as functions
  • Complexity
  • Simplifying
  • Inner loops
  • Main term
  • Comparing algorithms
Searching and Sorting with algorithms
  • Linear Sequential search
  • Binary search
  • Bubble sort
  • Insertion sort
  • Merge sort
  • Quicksort
Pathfinding algorithms
  • Dikjstra's algorithm
  • A* algorithm