OCR H446 A-Level Computer Science
1.1.1 Architecture of the CPU
1.1.2 Types of processor
1.1.3 Input, output, and storage
1.2.1 Operating system
1.2.2 Applications generation
1.2.3 Software development
1.2.4 Programming languages
1.2.5 Object-oriented programming
1.3.1 Data
1.3.2 Databases
1.3.3 Networks
1.3.4 Web technologies
1.4.1 Data types
1.4.2 Data structures
1.4.3 Boolean logic
1.5.1 Legislation
2.3.1 Algorithms
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