- Section 1: Fundamentals of programming
- Programming basics
- Programming concepts
- Basic operations in programming languages
- Subroutines, local and global variables
- Structured programming
- Object-oriented programming concepts
- Section 2: Fundamentals of Data Structures
- Data Structures and abstract data types
- Queues and stacks
- Graphs and trees
- Hash tables and dictionaries
- Vectors
- Section 3: Fundamentals of Algorithms
- Graph and tree traversal
- Dijkstra’s shortest path algorithm
- Search algorithms – binary, binary tree and linear search
- Reverse Polish Notation
- Sorting algorithms – bubble and merge
- Section 4: Fundamentals of Computational Thinking
- Abstraction and automation
- Finite state machines
- The Turing machine
- Regular and context-free languages
- Maths for regular expressions
- Big O notation and classification of algorithms
- Section 5: Fundamentals of Data Representation
- Number systems
- Number bases
- The binary number system
- Coding systems
- Encryption
- Section 6: Fundamentals of Computer Systems
- Hardware and software
- Classification of programming languages and translation
- Boolean algebra
- Logic gates
- Section 7: Fundamentals of Computer Organisation and Architecture
- Internal hardware of a computer
- The stored program concept and processor components
- The processor instruction set and addressing modes
- External hardware devices
- Section 8: Consequences of Uses of Computing
- Moral, ethical, legal and cultural issues
- Section 9: Fundamentals of Communication and Networking
- Communication basics
- Networks
- The Internet
- Internet security
- Transmission Control Protocol/Internet Protocol (TCP/IP)
- The client-server model
- Section 10: Fundamentals of Databases
- Relational databases
- Structured query language (SQL)
- Big data
- Section 11: Fundamentals of Functional Programming
- Basics of functional programming
- Writing functional programs
- Section 12: Software Development
- Aspects of software development
- Non-exam assessment (NEA)
|