Roadmap
Computer systems (01)
Processors, input, output and storage
1.1.1 - CPU components, registers and buses
1.1.1 - The fetch-decode-execute cycle
1.1.1 - CPU performance and pipelining
1.1.1 - Von Neumann and Harvard architectures
1.1.2 - RISC and CISC processors
1.1.2 - GPUs, multicore and parallel systems
1.1.3 - Choosing input, output and storage
1.1.3 - RAM, ROM and virtual storage
Software and software development
1.2.1 - Operating systems, BIOS and drivers
1.2.1 - Paging, segmentation and virtual memory
1.2.1 - Interrupts and processor scheduling
1.2.1 - Operating-system types and virtual machines
1.2.2 - Applications, utilities and source licensing
1.2.2 - Translators, libraries, linkers and loaders
1.2.2 - The stages of compilation
1.2.3 - Software-development methods
1.2.3 - Writing and following algorithms
1.2.4 - Programming paradigms and procedural code
1.2.4 - Little Man Computer programs
1.2.4 - Immediate, direct, indirect and indexed addressing
1.2.4 - Object-oriented programming principles
Exchanging data
1.3.1 - Lossy and lossless compression
1.3.1 - Encryption and hashing
1.3.2 - Relational databases, keys and relationships
Locked
1.3.2 - Normalisation and referential integrity
Locked
1.3.2 - SQL selection, joins and nested queries
Locked
1.3.2 - SQL data changes and database indexing
Locked
1.3.2 - Transactions, ACID and record locking
Locked
1.3.3 - Internet structure, protocols and switching
Locked
1.3.3 - Network threats, firewalls and proxies
Locked
1.3.3 - Network hardware and architectures
Locked
1.3.4 - HTML structure and CSS styling
Locked
1.3.4 - JavaScript and client-server processing
Locked
1.3.4 - Search indexing and PageRank
Locked
Data types, structures and Boolean logic
1.4.1 - Primitive data types and character sets
Locked
1.4.1 - Binary, hexadecimal and denary
Locked
1.4.1 - Signed binary and integer arithmetic
Locked
1.4.1 - Floating-point representation and normalisation
Locked
1.4.1 - Floating-point arithmetic
Locked
1.4.1 - Bitwise operations, shifts and masks
Locked
1.4.2 - Arrays, records, lists and tuples
Locked
1.4.2 - Linked lists and pointer operations
Locked
1.4.2 - Stacks, queues and circular buffers
Locked
1.4.2 - Trees and binary search trees
Locked
1.4.2 - Directed and undirected graphs
Locked
1.4.2 - Hash tables and collision handling
Locked
1.4.3 - Boolean problems, gates and truth tables
Locked
1.4.3 - Boolean laws and simplification
Locked
1.4.3 - Karnaugh maps
Locked
1.4.3 - Adders and D-type flip-flops
Locked
Legal, moral, cultural and ethical issues
1.5.1 - Data protection and personal information
Locked
1.5.1 - Computer misuse, copyright and interception
Locked
1.5.2 - Workforce changes and automated decisions
Locked
1.5.2 - Privacy, censorship and online conduct
Locked
1.5.2 - Environmental and cultural design choices
Locked
Algorithms and programming (02)
Elements of computational thinking
2.1.1 - Abstraction and models
Locked
2.1.2 - Inputs, outputs and preconditions
Locked
2.1.2 - Caching and reusable components
Locked
2.1.3 - Decomposition and procedural plans
Locked
2.1.4 - Logical decisions and control flow
Locked
2.1.5 - Concurrent thinking and dependencies
Locked
Problem solving and programming
2.2.1 - Sequence, selection and iteration
Locked
2.2.1 - Recursion and iteration
Locked
2.2.1 - Scope, subroutines and parameter passing
Locked
2.2.1 - Files and persistent records
Locked
2.2.1 - IDE tools and systematic debugging
Locked
2.2.1 - Designing and implementing object-oriented solutions
Locked
2.2.2 - Recognising computational problems
Locked
2.2.2 - Divide and conquer
Locked
2.2.2 - Backtracking
Locked
2.2.2 - Data mining and heuristics
Locked
2.2.2 - Performance modelling, pipelines and visualisation
Locked
Algorithms
2.3.1 - Algorithm design and suitability
Locked
2.3.1 - Algorithm efficiency and Big O
Locked
2.3.1 - Data-structure algorithms and tree traversal
Locked
2.3.1 - Bubble sort and insertion sort
Locked
2.3.1 - Merge sort and quicksort
Locked
2.3.1 - Linear and binary search
Locked
2.3.1 - Dijkstra's shortest-path algorithm
Locked
2.3.1 - A-star search and heuristics
Locked
Programming project skills (03)
Analysis of the problem
3.1.1 - Formative project skills: choosing a computational problem
Locked
3.1.2 - Formative project skills: stakeholder needs
Locked
3.1.3 - Formative project skills: researching solutions
Locked
3.1.4 - Formative project skills: requirements and success criteria
Locked
Design of the solution
3.2.1 - Formative project skills: decomposing a solution
Locked
3.2.2 - Formative project skills: structure and algorithms
Locked
3.2.2 - Formative project skills: usability, data and validation
Locked
3.2.3 - Formative project skills: designing test data
Locked
Developing the solution
3.3.1 - Formative project skills: iterative development evidence
Locked
3.3.2 - Formative project skills: testing and remedial action
Locked
Evaluation
3.4.1 - Formative project skills: robustness and usability testing
Locked
3.4.2-3.4.3 - Formative project skills: evaluating the final product
Locked
3.4.4 - Formative project skills: maintenance and further development
Locked