All Topics
Learn Computer Science - both programming and theory
Programming
Learn to code in Python - from basics to advanced concepts.
Variables
Learn to store and use data in your programs. The foundation of all programming!
- Variable assignment
- Naming rules
- Using variables in output
Arithmetic Operators
Perform calculations in Python using arithmetic operators.
- +, -, *, / operators
- Integer division and modulo
- Order of operations (BIDMAS)
Data Types
Understand the different types of data and how to convert between them.
- Strings, integers, floats, booleans
- Type checking with type()
- Casting: int(), str(), float()
Selection
Make decisions in your code using if statements and conditions.
- if statements
- Comparison operators (==, !=, etc.)
- Boolean operators (and, or, not)
- if-else and if-elif-else
For Loops
Repeat code a specific number of times. Essential for automation!
- for loops and range()
- Loop variables
- Accumulator pattern
While Loops
Repeat code while a condition is true. Great for input validation!
- while loops
- Condition-controlled iteration
- break and continue
- Input validation
1D Arrays (Lists)
Store multiple values in a single variable. Learn to iterate with loops!
- Creating and accessing arrays
- Indexing and length
- Looping through arrays
2D Arrays (Grids)
Work with data in rows and columns. Master nested loops!
- Creating 2D arrays
- Row and column indexing
- Nested loops
String Manipulation
Strings are arrays of characters! Learn slicing, concatenation, and more.
- Strings as character arrays
- Indexing and slicing
- Concatenation and methods
Functions
Organise code into reusable blocks. Write once, use many times!
- Defining functions
- Parameters and arguments
- Return values
- Local and global variables
Common Errors
Learn to identify, understand, and fix the most common programming errors.
- Syntax errors vs logic errors
- Reading error messages
- Debugging strategies
File Handling
Read from and write to files. Store data permanently!
- Opening and closing files
- Reading: read(), readline(), readlines()
- Writing and appending
- The with statement
Input Validation
Check user input before using it. Essential for robust, secure programs!
- Presence, Range, Length checks
- Format and Type checks
- Input sanitisation
- SQL injection prevention
Theory
Understand how computers work - the concepts behind the code.
CPU & Fetch-Execute Cycle
Understand how the processor runs every program on your computer.
- Purpose of the CPU
- CPU components (CU, ALU, Registers)
- The Fetch-Execute cycle
Memory & Storage
Learn how computers store data - from lightning-fast RAM to permanent storage.
- RAM vs ROM
- Virtual memory
- Cache memory
- Memory hierarchy
Secondary Storage
Explore the different types of permanent storage and when to use each.
- Magnetic, Solid State, Optical
- Capacity, Speed, Portability
- Durability & Reliability
- Choosing the right storage
Data Units & Capacity
Understand how data is measured, converted, and calculate file sizes.
- Binary data & why computers use it
- Units: bit to petabyte
- File size calculations
- Storage capacity planning
Number Systems
Master binary, denary, and hexadecimal - the number systems computers use.
- Binary & denary conversion
- Hexadecimal conversion
- Binary addition & overflow
- Binary shifts (ร2, รท2)
Data Representation
How computers store characters, images, and sound in binary.
- Character sets (ASCII, Unicode)
- Images: pixels, colour depth, metadata
- Sound: sampling, bit depth, duration
- File size calculations
Compression
Understand how files are made smaller for storage and transmission.
- Why compression is needed
- Lossy vs Lossless compression
- Common formats (ZIP, JPEG, MP3)
- Choosing the right type
Computer Networks
Learn how computers connect and communicate with each other.
- LAN vs WAN networks
- Network hardware (NIC, switches, routers)
- Client-server & peer-to-peer
- Star & mesh topologies
Protocols & Layers
Understand wired/wireless connections, protocols, and network layers.
- Wired vs Wireless (Ethernet, WiFi, Bluetooth)
- IP & MAC addressing
- Protocols (HTTP, HTTPS, FTP, SMTP, IMAP)
- TCP/IP layers
Network Security
Understand threats to computer systems and how attackers exploit vulnerabilities.
- Malware: viruses, worms, trojans, ransomware
- Social engineering & phishing
- Brute-force & denial of service attacks
- SQL injection & data interception
Preventing Vulnerabilities
Learn how to protect computer systems using security prevention methods.
- Penetration testing & anti-malware
- Firewalls & encryption
- User access levels & passwords
- Physical security measures
Operating Systems
Understand the software that manages your computer and enables applications to run.
- User interface (GUI & CLI)
- Memory management & multitasking
- Peripheral management & drivers
- User & file management
Utility Software
Learn about software that performs housekeeping tasks to maintain and optimise your computer.
- What is utility software?
- Encryption software
- Defragmentation
- Data compression
Additional Topics
These topics can be studied alongside or after the main curriculum: