Learn CS with
mr. TEA
Structured knowledge base for grades 11–12. Computer Science theory and Python programming — aligned with NIS and Cambridge standards.
Interactive Lab
Hands-on simulators and tools for deeper understanding
Python Compiler
Write, run and debug Python code directly in your browser. Instant feedback on your solutions.
Data Representation Lab
Custom 16-bit floating point (12m/4e) and Number Systems converter. Aligned with Cambridge 9618.
Logic Gates
Build and test logic circuits with AND, OR, NOT, NAND, NOR, XOR gates. Generate truth tables automatically.
LMC Emulator
Little Man Computer emulator. Write assembly-level programs and step through execution cycle by cycle.
Full Syllabus
Complete NIS 2025 learning objectives — Grades 11 & 12
Grade 11 — Computer Science (CS)
Software Categories
- 11.3.1.1 justify the choice of applied software and choice criteria
- 11.3.1.2 classify application software
Operating Systems & Types
- 11.3.1.3 describe the purpose and main functions of OS
- 11.3.1.4 compare single-user and multi-user OS
- 11.3.1.5 compare one-task and multitasking OS
Von Neumann Architecture
- 11.3.2.1 describe the interaction of CPU with peripheral devices
System Bus
- 11.3.2.2 describe the purpose of CPU components, system bus and main memory
Main Memory (RAM/ROM)
- 11.3.4.1 explain the differences between RAM and ROM memory
Cache & Virtual Memory
- 11.3.4.3 explain the purpose of cache memory
- 11.3.4.2 explain the purpose of virtual memory
Boolean Logic & Gates
- 11.3.3.3 build truth tables AND, OR, NOT, NAND, NOR, XOR
Simplifying Boolean Expressions
- 11.3.3.1 distinguish between laws of Boolean logic
- 11.3.3.2 simplify logical expressions using laws
Classifications of PL
- 11.5.1.1 distinguish between generations of PL
- 11.5.1.2 classify PL into low and high-level
- 11.5.1.5 analyze advantages/disadvantages of high-level languages
- 11.5.1.6 analyze advantages/disadvantages of low-level languages
LMC Simulator
- 11.5.1.3 analyze a simple program written in assembler
Trace Tables
- 11.5.1.4 use trace tables to verify algorithms
Translators
- 11.5.1.7 analyze advantages/disadvantages of compilers
- 11.5.1.8 analyze advantages/disadvantages of interpreters
SDLC Models
- 11.2.1.1 explain life cycle stages
- 11.2.1.2 analyze cyclical, waterfall, and spiral models
Data Analysis
- 11.2.1.3 describe data collection methods
- 11.2.1.4 compare data analysis techniques
- 11.2.1.5 compare alternative solutions
Data Flow Diagram (DFD)
- 11.2.1.6 use DFD to input, process, store and output data
Flowcharts
- 11.2.1.7 use flow charts for computing systems
Relational Databases
- 11.4.1.1 describe relational databases and purpose
- 11.4.1.2 use terms: attribute, object, index, record, tuple
- 11.4.1.4 define data types
- 11.4.1.3 explain primary, composite, foreign keys
Entity Relationship Diagrams
- 11.4.1.6 define connections between tables
- 11.4.1.7 create an ER model
Normalization
- 11.4.1.5 define connections (1NF, 2NF, 3NF)
SQL (DDL & DML)
- 11.4.2.1 explain purpose of data dictionary
- 11.4.2.2 compare DDL and DML
- 11.4.2.3 basic SQL: CREATE, ALTER, DROP
- 11.4.2.4 basic SQL: SELECT, UPDATE, INSERT, DELETE
- 11.4.2.5 use SELECT for multiple tables
1D, 2D Arrays
- 11.5.2.1 terms: upper/lower bounds
- 11.5.2.3 code using 1D and 2D arrays
Sorting Algorithms
- 11.5.2.4 Bubble sort and Insertion sort
Binary Search
- 11.5.2.5 write pseudo-code of binary search
Algorithm Efficiency
- 11.5.2.6 understand time-efficiency
- 11.5.2.7 understand space-efficiency
HTML/CSS
- 11.5.3.1 create a site using basic HTML tags
- 11.5.3.2 create forms for data entry
- 11.5.3.3 use CSS stylesheet
Script Language (PHP)
- 11.5.3.8 use script language for interactivity
- 11.5.3.6 use algorithmic structures in script
PHP & Database
- 11.5.3.4 connect to database / User registration
Application Interface
- 11.2.2.3 describe the characteristics of a development framework
- 11.5.4.1 create a mobile application interface using the components of an application designer
- 11.5.4.2 edit properties of components in a program code
Mobile Application Development
- 11.5.4.3 create an application for mobile devices using conditional operators
- 11.5.4.4 create an application for mobile devices using loop structures
- 11.5.4.5 use the technical capabilities of smartphones when developing
Publishing Applications
- 11.5.4.6 publish the results of a project on the network (application store)
Basic Algorithmic Structures
- 11.4.1.1 use basic algorithmic structures (sequential, branching, loop)
Validation & Verification
- 11.4.1.2 difference between validation and verification of data
Good Programming Style
- 11.4.1.3 apply rules of good programming style
Data Protection
- 11.1.2.1 security, privacy, data integrity
Backup & Mirroring
- 11.1.2.3 data backup and disk mirroring
Encryption & Authentication
- 11.1.2.4 encryption and access rights
Blockchain
- 11.1.2.6 function and operation of Blockchain
Open & Closed Software
- 11.1.3.2 open-source specifics
- 11.1.3.3 closed-source specifics
Copyright & Access Restriction
- 11.1.3.1 copyright law in computing
- 11.1.3.4 methods of access restriction
Cloud Technologies
- 11.1.3.5 evaluate risks of cloud technologies
LAN & WAN
- 11.6.1.1 compare LAN and WAN
Network Topology
- 11.6.1.2 bus, ring, star, mesh topologies
Network Hardware
- 11.6.1.3 purpose of network equipment
Client-Server Model
- 11.6.2.3 features of client-server model
URL & DNS
- 11.6.2.1 structure and purpose of URL
- 11.6.2.2 Domain Name System
Network Protocols
- 11.6.2.2 network protocols
IP Address
- 11.6.2.4 format of IP address
Grade 11 — Programming (PROG)
Output & Escape Sequences
- 11.1.1.1 organize data output
- 11.1.1.2 use the escape sequences with data output
Data Types & Type Conversion
- 11.1.1.3 distinguish between data types in Python
- 11.1.1.4 convert data types of variables
Input & Arithmetic Operations
- 11.1.1.5 organize keyboard inputs
- 11.1.1.6 use arithmetic operations when solving problems
Boolean Logic & Branching
- 11.1.1.7 apply logic operations to Boolean variables
- 11.1.1.8 use logical operations AND, OR, NOT in selection structure
- 11.1.1.9 implement the branching algorithm according to the flowchart
While Loop & Flowcharts
- 11.1.2.1 write program code using a While loop
- 11.1.2.2 implement a loop algorithm according to a flowchart
For Loop & Range
- 11.1.2.4 write program code using a For loop
- 11.1.2.5 define a range of values for a loop
Nested Loops
- 11.1.2.7 use nested loops when solving problems
Tracing & Debugging
- 11.1.2.3 trace program code
- 11.1.2.6 debug a program
Creating Sets
- 11.2.1.1 create sets
- 11.2.1.2 use operations of adding, deleting, counting the number of elements
Set Operations & Comparison
- 11.2.1.3 apply operations to sets: union, intersection, subtraction, symmetric difference
- 11.2.1.4 compare sets
String Indexing & Slicing
- 11.2.2.1 perform access to the elements of strings, lists, tuples
- 11.2.2.2 use slicers to process the string
String Methods
- 11.2.2.3 apply functions and string processing methods
Creating Lists & split/join
- 11.2.3.1 create a list
- 11.2.3.2 organize the output of a string using the split() and join() methods
List Methods
- 11.2.3.3 apply functions and methods of processing lists
Tuples & Type Conversion
- 11.2.4.1 create a tuple
- 11.2.4.2 convert from one data structure to another
Dictionaries
- 11.2.5.1 create a dictionary
- 11.2.5.2 search for data in a dictionary for a given key
List & String Methods
- 11.2.3.3 apply functions and methods of processing lists
- 11.2.2.3 apply functions and methods of processing strings
Functions
- 11.3.1.1 write code in a programming language using functions
Lambda & Applied Problems
- 11.3.2.1 write code in a programming language using lambda functions
- 11.4.3.2 solve applied problems of various subject areas
Classes & Objects
- 11.4.1.1 create classes and instances of classes
- 11.4.1.3 use special method __init__ to set default properties
- 11.4.1.2 develop methods for the class
Inheritance & Polymorphism
- 11.4.2.2 explain the concept of inheritance with examples
- 11.4.2.1 explain the concept of polymorphism with examples
Applied OOP Problems
- 11.4.3.1 decompose an applied task
- 11.4.3.2 solve applied problems of various subject areas
Grade 12 — Computer Science (CS)
AI Applications
- 12.4.3.1 describe spheres where artificial intelligence is applied: industry, education, medicine, gaming industry, society
- 12.4.3.2 explain the purpose of virtual and augmented reality
Declarative vs Imperative
- 12.5.1.1 compare declarative and imperative programming languages
Expert Systems
- 12.5.1.2 create a simple expert system
Program Compilation Stages
- 12.5.1.3 describe programme compilation stages: lexical and syntactic analysis, code generation, and optimization
Testing Methods
- 12.5.3.2 perform testing using normal data
- 12.5.3.3 perform testing using extreme data
- 12.5.3.4 perform testing using erroneous data
- 12.5.3.1 describe execution errors at program startup
- 12.5.3.5 describe a syntax error in a program code
- 12.5.3.6 describe a logic error in a program code
Threats to Computer System
- 12.1.3.2 analyze problems arising due to malware, physical risks
- 12.1.3.1 analyze ethical problems arising due to computer system cracking
Data Protection Measures
- 12.1.2.1 describe protection measures for data and computer systems such as firewalls, encryption, biometrics
Backup & Disk Mirroring
- 12.1.2.2 use data protection measures such as data backup and disk mirroring
Protect Data from Unauthorized Access
- 12.1.2.3 protect data from unauthorized access
Privacy Policies
- 12.1.3.3 explain privacy policies
- 12.1.3.4 analyze problems arising due to disseminating and using information
Cloud Computing & E-Government
- 12.5.4.1 Describe what is meant by Cloud Technology and its benefits
- 12.5.4.2 Differentiate between types of cloud computing (Deployment and Service models)
- 12.5.4.3 Outline the purpose and functions of E-Government
- 12.5.4.4 Describe the different types of services available on the E-Gov portal
Making a Text Document
- 12.2.1.1 use headers and footers when documenting a project
- 12.2.1.2 use footnotes when documenting a project
- 12.2.1.3 use tables when documenting a project
Formatting a Text Document
- 12.2.1.4 set page parameters when documenting a project
- 12.2.1.5 set page numbers when documenting a project
- 12.2.1.6 set indents and line spacing when documenting a project
Plagiarism Verification
- 12.1.3.5 check documents using antiplagiarism resources
- 12.1.3.6 list copyright protection rules
Implementation Methods
- 12.2.1.7 list system implementation methods
- 12.2.1.8 compare the advantages and disadvantages of system implementation methods
Installation & Implementation Plan
- 12.2.1.9 explain the importance of making a system implementation plan
- 12.2.1.10 make a system implementation plan
Types of Operating Systems
- 12.3.1.1 describe a real-time operating system
- 12.3.1.2 describe a network operating system
- 12.3.1.3 describe a batch processing operating system
User Interfaces
- 12.3.1.4 define the advantages and disadvantages of a graphical user interface (GUI)
- 12.3.1.5 define the advantages and disadvantages of a command-line interface (CLI)
- 12.3.1.6 define the advantages and disadvantages of natural-language and gesture-recognition user interfaces
Fetch-Decode-Execute Cycle
- 12.3.2.5 explain three operations in a fetch-execute cycle (fetch / decode / execute)
System Bus
- 12.3.2.4 explain how data is transferred between different components through the address bus, data bus, and control bus
Clock Speed, Word Size & Bus Width
- 12.3.2.6 explain how the clock speed, word length, and bus width affect the performance
RISC vs CISC
- 12.3.2.1 describe the RISC architecture
- 12.3.2.2 describe the CISC architecture
- 12.3.2.3 compare RISC and CISC
Addressable Memory
- 12.3.4.1 explain the principle of memory addressing
- 12.3.4.2 explain the principle of storing programs and data
Paging & Segmentation
- 12.3.4.2 explain the principle of memory organization by segment and page
Virtual Machine
- 12.3.4.3 explain the concept of a virtual machine
Boolean Logic
- 12.3.3.2 build logical structures
- 12.3.3.4 analyze logical structures
Logic Laws
- 12.3.3.3 simplify logical expressions using the laws of logic
Number Systems
- 12.1.1.1 convert a number from one number system to another
- 12.1.1.2 explain the advantages of using hexadecimal numbers in computer systems
- 12.1.1.3 perform the arithmetic operations: addition and multiplication of binary numbers
Two's Complement & Floating Point
- 12.1.1.4 represents positive and negative numbers in two's complement and specifies the range of n bits
- 12.1.1.5 perform subtraction using two's complement
- 12.1.1.6 use binary numbers with a fixed point to represent fractional numbers with a given number of bits
- 12.1.1.7 represent positive and negative floating-point decimal numbers in binary
Data Structures
- 12.5.2.1 describe the operation of stack and queue data structures
- 12.5.2.2 build a binary tree
Internet & the World Wide Web
- 12.6.2.1 distinguish features of the World Wide Web, Intranet and the Internet
OSI Model
- 12.6.1.2 describe the functions of the OSI network model layers
Circuit Switching & Packet Switching
- 12.6.1.1 explain the difference between packet switching and circuit switching
Packet Routing & MAC Addresses
- 12.6.2.2 describe the role of MAC addresses in packet routing
- 12.6.2.3 identify the MAC address of a computer
Engineering & SDLC
- 11.2.2.3 describe the characteristics of a development framework
- 11.2.2.5 discuss the use of prototypes based on a specific example
- 11.2.2.6 develop a prototype for a new system
- 11.2.2.7 define minimum requirements for hardware when implementing solutions
Databases
- 11.4.1.1 describe relational databases and their purpose
- 11.4.1.2 use the terms attribute, object, index, record, table and tuple
- 11.4.1.3 explain the difference between primary, composite and foreign key
- 11.4.1.4 define data types when creating a database
- 11.4.1.5 define the connections between tables (1–3NF)
- 11.4.1.6 define the connections between tables
- 11.4.1.7 create an entity-relationship (ER) model
SQL Query Language
- 11.4.2.3 describe the basic SQL queries: CREATE, ALTER, DROP
- 11.4.2.4 use SQL queries: SELECT, UPDATE, INSERT, DELETE
- 11.4.2.5 use SQL SELECT for data selection in multiple tables
- 11.4.2.1 explain the purpose of data dictionary
Programming Paradigms
- 11.5.1.1 distinguish between generations of programming languages
- 11.5.1.2 classify programming languages into low and high-level
- 11.5.1.3 analyze a simple program written in assembly language
- 11.5.1.4 use trace tables to verify the correctness of an algorithm
- 11.5.1.5 advantages and disadvantages of high-level languages
- 11.5.1.6 advantages and disadvantages of low-level languages
- 11.5.1.7 advantages and disadvantages of compilers
- 11.5.1.8 advantages and disadvantages of interpreters
Protocols
- 11.6.3.1 explain the role of protocols (HTTP, FTP, POP3, SMTP, HTTPS, FTPS)
- 11.6.3.2 explain the format of an IP address and how it is associated with a device
- 11.6.3.3 explain the difference between public and private IP addresses
Principles of Internet Operation
- 11.6.1.1 compare features of LAN and WAN
- 11.6.1.2 describe advantages and disadvantages of network topologies
- 11.6.1.3 explain the purpose of network equipment
- 11.6.2.1 describe the role of URL
- 11.6.2.2 describe the purpose of DNS
- 11.6.2.3 know the features of the client-server model
Grade 12 — Programming (PROG)
Random Library
- 12.6.1.1 use the functions of the library Random to get a pseudo-random number
- 12.6.1.3 identify code snippets that use random sequence generation
RGB Colors
- 12.6.2.1 determine standard colors by RGB code
PIL Image Basics
- 12.6.2.2 use commands of module Image in PIL library (load, create, size, save) to manipulate images
PIL Drawing Primitives
- 12.6.2.3 apply graphic primitives to create drawings
PIL Image Filters
- 12.6.2.4 create filters for image processing
Wave Library
- 12.6.3.1 use commands of the Wave library to process sound files
PyGame Setup & Window
- 12.5.1.1 connect the PyGame library and its modules
- 12.5.1.2 create the game window
Game Loop
- 12.5.1.3 code the game loop of the application
Drawing Primitives
- 12.5.2.1 output graphic primitives to the application window
Movement & Animation
- 12.5.3.1 code the movement of graphic objects
- 12.5.3.8 analyse the result of the programme execution
Mouse Control
- 12.5.3.3 control characters with the mouse
Keyboard Control
- 12.5.3.4 control characters with the keyboard
Text & Scoring
- 12.5.2.4 display graphic text on the screen
- 12.5.3.7 implement an algorithm for calculating game results
Sprites & Characters
- 12.5.2.2 load ready-made characters for the game
- 12.5.3.5 define parameters (x, y, width, height) of the current state of the object
Collision & Movement
- 12.5.3.1 code the movement of graphic objects
- 12.5.3.6 check the relative position of objects on the screen
Full Game Implementation
- 12.5.3.9 implement the game in accordance with the scenario
Types & Uses of Chatbots
- 12.6.4.1 define the types of chatbots
- 12.6.4.2 argue for the use of chatbots
APIs & Configuration
- 12.6.4.3 explain the meaning of the API
- 12.6.4.4 get API configuration for a chatbot
Keyword Database & Events
- 12.6.4.5 create a database of answers by keywords
- 12.6.4.6 process chat events
Assessment Hub
Mock exams and resources aligned with NIS and Cambridge standards
SAT / SAU Papers
Ready-to-use papers specifically for NIS 2025.
Guides & Past Papers
Guides, Mark Schemes and Cambridge Past Papers.