How to use this guide
This page from the World Association of Azerbaijani Scientists (WAAS / DAAB) helps teachers, specialists and participants in the “Complex Topics, Clear Explanations” competition choose an informatics topic. It brings together topics that matter in education and in practice, the difficulties of learning them, and examples that can support a clear explanation.
The page is a working guide. It does not close the list of possible topics. Participants may choose one of these directions or propose a new topic and justify its educational value. A piece of material is valuable when it answers a concrete question for its audience and gives the learner new knowledge or a new skill.
There is no universally accepted global ranking of informatics topics by popularity or difficulty. Here “interest” or “popularity” is a reading of learner need, curriculum priorities and activity in technology. It is not a count of internet searches. The order of the thirty topics, and labels such as “high” or “very high”, are directional judgements, not scores from a single measurement.
When you choose a topic, hold three things together: why it matters to the learner, where it is used, and where understanding usually breaks. Read first what the sources show. Then look at the priority table and pick a subtopic from the school or university list. Each list comes before the explanations and examples.
The content comes from the integrated guide. That guide combined a reworked Word document with the earlier web page. Where the sources complement each other, the information sits in the same section. Where they chose different words, groupings or degrees of certainty, the difference is not hidden.
Where the sources differ
The table below collects places where the two sources treated the same fact with different wording, grouping or certainty. This is not a choice between a wrong version and a right one. The working explanation uses the more cautious or more precise wording and keeps the other form as a short note.
| Issue | Difference | On this page |
|---|---|---|
| Python recommendation | The reworked document treats Python as a practical starting point and avoids calling it the single “best language”. The earlier web page called it the most suitable general teaching language at present. | Both statements are kept in the language section. |
| TypeScript figure | The reworked document says that in August 2025 TypeScript overtook Python and JavaScript on GitHub’s usage measure. The earlier page said it was the most-used language and did not name the platform. | The GitHub Octoverse 2025 wording is the base. |
| CSTA “specialties” | The earlier page named specialties in AI, cybersecurity and related fields. The reworked document stresses that these are school-level specialisation tracks, not university degrees. | The list is kept; the caution is added. |
| AI in CSTA | The reworked document says AI is integrated into the strands at a basic level and deepened in the upper years. The earlier page stressed that the standards treat AI as a priority. | Both emphases sit together in the CSTA section. |
| Grouping of university topics | The earlier page used 25 numbered items, with theory as item 25. The reworked document grouped paradigms with execution and automata with algorithms. | The 25-item numbering is kept; the grouping difference is noted in the university section. |
| Deadlock and network congestion | The reworked document uses mutual deadlock and congestion. The earlier page used two Azerbaijani words from the same root, tıxac and tıxaclıq. That root can mix two different ideas. | Both pairs are kept in the explanation. |
| Term pairs | Polymorphism / çoxformalıq; two-factor authentication / iki faktorlu təsdiq; Big-O / Böyük-O; consistency / tutarlılıq; isolation / izolə; orchestration / orkestrləşdirmə; consensus / razılaşma; object-oriented / obyektyönümlü; heap / dynamic memory. | Both forms appear at the first mention. |
| Competition links | The reworked document also listed a local development address. The web page uses the public links. | Public links are primary; the local address is noted as a development copy. |
Evidence behind the topics
The topic choices rest on three groups of sources. Each group answers a different question and completes the others. A curriculum standard can show that a topic should be taught; it does not by itself measure how popular or how difficult the topic is.
| Source group | Main question | What it contributes |
|---|---|---|
| Curriculum standards and programme guidance | What should people know and be able to do? | Shows the core ideas and a suitable level of study. |
| Professional activity and interest signals | Which technologies are used and attract attention? | Shows how the topic connects to current practice. |
| Learning and teaching research | Where do learners struggle, and why? | Helps identify ideas that need a clear explanation. |
CSTA school standards
CSTA is the Computer Science Teachers Association. PK–12 covers the years from pre-kindergarten to grade 12. PK stands for pre-kindergarten and K for kindergarten. That division should not be treated as the same as the grades of the Azerbaijani school system. [1]
CSTA’s 2026 standards organise school computing around five strands:
- Algorithms and design;
- Programming;
- Data and analysis;
- Systems and security;
- Computing and society.
Artificial intelligence is integrated into these strands at a basic level. The earlier page also stressed that the same standards treat AI as a priority. The two statements do not conflict: integration describes the basic level, and priority describes the emphasis. [1]
For deeper study in the upper years the standards name artificial intelligence, cybersecurity, data science, game development, physical computing and software development. These are school-level specialisation tracks, not university degrees.
Physical computing is a program working with the real environment through sensors and electronic devices. A device that measures soil moisture and then starts watering is a project in this direction.
CS2023 university guidance
CS2023 is Computer Science Curricula 2023, guidance for computer-science programmes. The document is joint work by three professional organisations.
| Abbreviation | Full name and meaning |
|---|---|
| ACM | Association for Computing Machinery — a scholarly and professional association for computing. |
| IEEE-CS | IEEE Computer Society — the computing society of the Institute of Electrical and Electronics Engineers. |
| AAAI | Association for the Advancement of Artificial Intelligence. |
CS2023 is aimed mainly at undergraduate study. Although the name says 2023, the final document was approved in 2024. It covers 17 knowledge areas, including algorithms, artificial intelligence, data management, networks, operating systems, security and software engineering. [2], [23]
This approach also takes in applying knowledge, collaboration, responsibility and professional conduct. When you plan a piece of material it is therefore useful to ask not only “What information am I presenting?” but also “What will the learner be able to do after this?” [24]
AP Computer Science Principles
AP is Advanced Placement, a course and examination programme that gives school students work at the start of university level. CSP is Computer Science Principles. The College Board offers the programme. [3]
AP CSP brings together five Big Ideas:
- Creative development;
- Data;
- Algorithms and programming;
- Computer systems and networks;
- The impact of computing.
Besides programming, the course builds a first picture of how the internet works, how to draw conclusions from data, and how technology affects society. CSTA guides school computing, AP CSP guides preparation at the start of university, and CS2023 guides undergraduate study. That difference matters when you choose how deep a topic should go. [1]–[3]
Stack Overflow and GitHub
Stack Overflow is a platform where people discuss programming questions. Its Developer Survey is an annual survey of how programmers use tools, how they work and what they think. The 2025 results used 49,009 responses from 177 countries. Because people were reached mainly through the platform’s own channels, the results should not be treated as a complete picture of all programmers. [4], [25]
Of those who answered the question on using AI, 84 percent said they were using these tools or planned to use them. On a separate question about trust in accuracy, 46 percent expressed distrust and 33 percent expressed trust. The 84 percent figure does not count only people who already use the tools. [26]
From these results one can draw teaching topics such as “How can you check code written by AI?” and “Why can a convincing answer still be wrong?” Those are not recommendations from the survey itself. They are a teaching reading of the results.
GitHub is a platform for storing program code and working on it together. Octoverse is the name of its yearly activity report, not an abbreviation. The 2025 report highlights the growth of AI projects and says that in August of that year TypeScript overtook Python and JavaScript on GitHub’s usage measure. It also reports that Python is used in about half of new AI repositories. A repository is the place that holds a project’s code and the history of changes. [5]
Difference. The earlier page said TypeScript was the most-used language in 2025 and did not name the platform. This page uses the GitHub Octoverse 2025 wording. Both sources point to the same report. These figures describe activity on a platform. They do not directly measure labour-market demand, educational value or how hard a topic is to learn.
Learning research
An empirical study is research based on real observation and collected data. In teaching this may mean interviews with learners, analysis of task answers, and measurements before and after a class.
A concept inventory is a diagnostic test that asks how well core ideas are understood and what misconceptions are present. Wrong answer choices are written to reveal those thought-errors. A tool of this kind for dynamic programming used misconceptions found in earlier studies. [27]
As an example, look at these commands in order:
a = 5
b = a
a = 8
At the end the value of b is 5. b was given the value that a had at that moment; the later command changes only a. The answer “b becomes 8 as well” can show that assignment was understood as a link that stays updated.
A test must be checked for fit with age, language and the topics that are taught. SCS1 — Second CS1 — is an assessment of ideas in introductory programming; CS1 is a name for a first computer-science or programming course. Research on SCS1 stresses the limits of the tool and the value of measuring before and after teaching if you want to judge learning gains. [28]
Thirty recommended topics
This table gives an overview of the topics. The order is a first suggestion of priority, not a statistical ranking. “Both groups” means school learners and university students; the same topic should be explained at different depths for those groups. “Upper-secondary” and “university” are not hard admission rules. The earlier page also added “college” on some rows.
| Order | Topic | Main audience | Interest | Explanation difficulty |
|---|---|---|---|---|
| 1 | Generative AI and large language models | Both groups | Very high | Very high |
| 2 | Algorithms and computational problem-solving | Both groups | Very high | Very high |
| 3 | Variables, assignment, data types and program state | Both groups | High | Very high |
| 4 | Finding errors, tests and reading error messages | Both groups | Very high | Very high |
| 5 | Cybersecurity, privacy and safe digital behaviour | Both groups | Very high | Very high |
| 6 | Data science, interpreting data and visualisation | Both groups | Very high | High |
| 7 | Conditions, Boolean logic and decision-making | Both groups | High | High |
| 8 | Loops, repetition and stopping | Both groups | High | Very high |
| 9 | Functions, parameters, return values and scope | Both groups | High | Very high |
| 10 | How the Internet and the Web work | Both groups | Very high | High |
| 11 | Machine learning, training data, models and predictions | Upper-secondary and university | Very high | Very high |
| 12 | Data structures and their uses | University | High | Very high |
| 13 | Algorithm efficiency and Big-O | University | High | Very high |
| 14 | Databases, modelling and SQL | Upper-secondary and university | High | Very high |
| 15 | Object-oriented programming | Upper-secondary and university | High | Very high |
| 16 | Recursion | Upper-secondary and university | Medium–high | Very high |
| 17 | Memory, references, pointers, the stack and dynamic memory | University | High | Very high |
| 18 | Concurrent, asynchronous and parallel programming | University | Very high | Very high |
| 19 | Binary numbers and digital representation | Both groups | High | High |
| 20 | Web programming, APIs and client–server applications | Both groups | Very high | High |
| 21 | Operating systems, processes, memory and file systems | University | High | Very high |
| 22 | Cloud computing, containers and distributed systems | University | Very high | Very high |
| 23 | Software engineering, Git and collaborative development | Upper-secondary and university | High | High |
| 24 | Computer architecture, the processor, memory and instructions | Upper-secondary and university | Medium–high | High |
| 25 | Dynamic programming and designing complex algorithms | University | Medium–high | Very high |
| 26 | Cryptography, encryption, hashing and digital signatures | Upper-secondary and university | Very high | Very high |
| 27 | Automata, computability and complexity classes | University | Medium | Very high |
| 28 | Ethics, algorithmic bias and the social effects of computing | Both groups | Very high | High |
| 29 | Game development and interactive graphics | School learners and beginners | Very high | Medium–high |
| 30 | Robotics, physical computing and the Internet of Things | School learners and university | High | High |
For school learners
These topics are especially useful for pupils and secondary-school students. For a school audience it helps to begin with a concrete situation and then move to the general idea. The reworked document gathered the same 23 items in thematic groups; the earlier page numbered them and gave each item an example. Below, the full list comes first. Then each item is explained in the same order, with examples. The examples are suggestions for building material, not required tasks.
Topic list
- What an algorithm is — and how to turn an everyday problem into steps
- Decomposition, patterns and abstraction
- Variables as changing stored values
- The difference between assignment and mathematical equality
- Conditions and Boolean expressions
- Nested conditions and compound logic
- How loops work and why an infinite loop starts
- A function versus a command that only prints a result
- Systematic debugging instead of changing code at random
- Binary numbers, bits, bytes and hexadecimal
- How text, images, sound and video are represented digitally
- Lossy and lossless compression
- The difference between the Internet, the Web and a browser
- IP addresses, DNS, routers, packets and HTTP
- Passwords, phishing, malware, privacy and two-factor authentication
- Encryption, hashing and digital signatures
- How AI differs from ordinary software
- Training data and the role of examples in machine learning
- Why AI can hallucinate or repeat bias
- How to check information and code produced by AI
- Collecting data, graphs, misleading pictures and bias
- The basics of websites, games, mobile apps and robotics
- Copyright, digital identity, disinformation and responsible use
CSTA 2026. The new CSTA standards organise school computing around algorithms and design, programming, data and analysis, systems and security, and computing and society. They treat AI as a priority and name deeper tracks in AI, cybersecurity, data science, game development, physical computing and software development. These are school-level specialisation tracks, not university degrees. (CSTA 2026 Standards) [1]
Thinking like a computer
1. What an algorithm is — and how to turn an everyday problem into steps
An algorithm is a finite list of clear steps, carried out in a definite order, to reach a goal. The hard part is not the word itself, but turning an everyday task into steps that a machine can follow without guessing.
Example. To make tea: boil water, put a bag in a cup, pour the water, wait, remove the bag. If a step is missing — “wait how long?” — the algorithm is incomplete.
2. Decomposition, patterns and abstraction
Decomposition means breaking a large problem into smaller ones. A pattern is what repeats. Abstraction means keeping the features that matter for the goal and setting the secondary details aside.
Example. When you choose the shortest route to school, the links between streets and the distances matter; the colour of the buildings usually does not.
Another example. Planning a school trip: tickets, food and a timetable (decomposition); every bus ride needs a start time (pattern); ignore seat colours and keep “how many seats” (abstraction).
First programs
3. Variables as changing stored values
A variable is a named place that holds a value the program can change later. It is not a mystery symbol from algebra; it is storage with a name.
Example. score = 0, then later score = score + 10. The place named score now holds 10.
Another example. a = 5, b = a, a = 8. At the end b is still 5, because b was given the value that a had at that moment.
4. The difference between assignment and mathematical equality
Assignment writes a value into a variable. In many languages the equals sign does not claim that both sides are already the same, as in mathematics.
Example. x = x + 1 is nonsense as an equation, but as assignment it means “take the current x, add one, store the result back in x.”
5. Conditions and Boolean expressions
A condition asks a yes-or-no question. A Boolean value is only true or false. The program chooses the next step from that answer.
Example. If temperature > 30, write “hot”; otherwise write “normal”.
6. Nested conditions and compound logic
Conditions can sit inside other conditions, and several tests can be joined with “and” or “or”. The difficulty is keeping the order of decisions clear.
Example. If it is a weekday and it is raining, take the bus; if it is a weekday and it is dry, walk; otherwise stay home.
7. How loops work and why an infinite loop starts
A loop repeats the same steps. It must have a way to stop. An infinite loop starts when the stopping condition never becomes true.
Example. “While the tank is not full, pour water” works only if each pour actually raises the level. If the tap is closed, the loop never ends.
8. A function versus a command that only prints a result
A function is a named piece of work that can take inputs (parameters) and give back a result (a return value). Writing a number on the screen is not the same as returning it for later use.
Example. A function add(2, 3) should return 5 so another part of the program can store it, not only display “5”.
9. Systematic debugging instead of changing code at random
Debugging is finding errors by testing a hypothesis, not by changing lines at random. First you fix the expected result, then you compare it with the actual result. This is hard to learn and hard to teach, because experienced programmers often rely on methods they do not spell out. [10]
Example. If a total is wrong, check the first input, then the addition, then the display — one step at a time — instead of rewriting the whole program.
How computers store information
10. Binary numbers, bits, bytes and hexadecimal
Computers store information as bits — 0 or 1. Eight bits make a byte. Hexadecimal (base 16) is a shorter way to write the same binary values.
Example. In a common text encoding the letter A is the byte 01000001, often written as 41 in hexadecimal.
11. How text, images, sound and video are represented digitally
A computer does not “see” a picture or “hear” a song. It stores numbers that stand for samples of colour, brightness or air pressure, then rebuilds the media from those numbers. A picture can be explained as pixels and their colour values.
Example. A black-and-white image can be a grid of 0s and 1s: 0 for white, 1 for black.
12. Lossy and lossless compression
Compression makes a file smaller. In lossless compression the original data can be restored completely. In lossy compression some of the data is thrown away so the file becomes smaller.
Example. A ZIP archive of text is usually lossless. A strongly compressed photo may look slightly softer because some colour detail was discarded.
Networks and safety
13. The difference between the Internet, the Web and a browser
The Internet is a system of networks linked to one another. The Web is one service that runs on that infrastructure: pages tied to addresses. A browser is the program that lets you look at that web content.
Example. The Internet is the road system; the Web is the shops along the road; the browser is the car you use to visit a shop.
14. IP addresses, DNS, routers, packets and HTTP
An IP address is a machine’s network number. DNS (Domain Name System) maps a domain name to a network address. A router forwards packets — small slices of data. HTTP (Hypertext Transfer Protocol) sets the request-and-response rules for web resources.
Example. When you type a page address, DNS is asked for the number, then HTTP asks that machine for the page, which arrives in packets.
15. Passwords, phishing, malware, privacy and two-factor authentication
Phishing is an attempt to obtain a password or another secret through a deceptive message or site. Malware is software written to harm or spy. Two-factor authentication (also called two-factor confirmation) uses two checks from different categories.
Example. On a school account the password is the first check; a confirmation through a separate device or app can be the second factor.
Another example. A message that looks like a school portal but asks you to “confirm your password” on an unknown site is a common phishing pattern.
16. Encryption, hashing and digital signatures
Encryption protects the confidentiality of data: only someone with the right key can read it. Hashing makes a short digital fingerprint of the data; you cannot usefully turn that fingerprint back into the original. A digital signature helps check integrity and origin.
Example. A messaging app may encrypt the text on the way. A site may store a hash of your password rather than the password itself.
AI and data
17. How AI differs from ordinary software
Ordinary software follows rules a person wrote. Many AI systems, especially machine learning, build their behaviour from training data — large sets of examples — rather than from a complete handwritten rule book. Not every AI method works in the same way.
Example. A spam filter is not given every possible junk sentence. It is shown many examples of spam and ordinary mail, then it estimates which new message looks more like spam.
18. Training data and the role of examples in machine learning
The examples used in training shape what the system can do and where it will go wrong. If the examples are narrow or biased, the answers will be too.
Example. A model trained only on summer photos may mislabel snow as a defect in the picture.
Another example. A model trained only on pictures taken in one setting may perform poorly in another setting.
19. Why AI can hallucinate or repeat bias
A hallucination is when an AI system produces information that sounds convincing but is false or unsupported. The system is not looking up a checked fact; it is predicting a likely sequence of words. It can also repeat bias present in the training data. An explanation should show the difference between an answer that sounds right and an answer that has been checked.
Example. A chatbot may invent a paper title that sounds real, or repeat a stereotype that appeared often in the data.
20. How to check information and code produced by AI
Treat AI output as a draft. Check claims against a reliable source, and run code before you trust it. This is listed as a school-level skill, not only a specialist one. The 2025 Stack Overflow results also support this check as a practical topic. [4], [26]
Example. If a model writes a date or a formula, open the cited page or test the formula with a known example.
21. Collecting data, graphs, misleading pictures and bias
Data can mislead even without AI. A graph can hide the scale, a sample can miss a group, and a colourful chart can make a weak pattern look strong.
Example. A bar chart that starts at 90 instead of 0 can make two close results look far apart.
Making things
22. The basics of websites, games, mobile apps and robotics
These are the first practical settings in which the ideas above meet a real audience: a page that loads, a game that keeps score, a phone app that stores a setting, or a robot that senses and moves. They are listed as fundamentals, not as a demand that every pupil build all four. A simple game project can explain conditions, loops and events together.
Example. Even a simple game needs a variable (the score), a loop (the game continues) and a condition (the player has won).
Computing and society
23. Copyright, digital identity, disinformation and responsible use
Computing is not only technique. Pupils also need to know who owns a work, how an online identity can be copied, how false claims spread, and what responsible use looks like. Showing the sources of images, sound and text in a project ties copyright to the technical work.
Example. Putting an image into a school project without credit can breach copyright even if the image was easy to download.
For university students
For this audience it is important to explain not only how a mechanism works, but also the difference between alternative solutions and why one is chosen. The earlier page treated these topics as especially important for college and university study; the reworked document gathered the same items in seven groups.
Difference of structure. The earlier page ordered the 25 items as execution (1–5), data structures (6–9), databases (10–12), systems (13–18), machine learning (19–21), software work (22–24) and theory (25). The reworked document placed paradigms and compilers with execution, and automata, P and NP with algorithms. The content is the same. The numbering below keeps the 25 items so that the list and the explanations stay in the same order.
Topic list
- Program execution models and tracing state
- Scope, lifetime, parameter passing and aliasing
- References, pointers and memory management
- Recursion and the recursive call stack
- Object identity, classes, objects, inheritance and polymorphism
- Lists, linked structures, stacks, queues, trees, heaps and graphs
- Sorting, searching and graph algorithms
- Big-O, worst case and the space–time trade-off
- Greedy algorithms, divide and conquer, and dynamic programming
- Relational modelling, keys, joins and normalisation
- Aggregation, subqueries and window functions in SQL
- Transactions, isolation, locking and database consistency
- Processes, threads, scheduling and virtual memory
- Race conditions, synchronisation, deadlock and nondeterminism
- Network protocols, routing, reliability and congestion
- Authentication, authorisation, encryption and secure software design
- Distributed systems, replication, consistency and consensus
- Cloud computing, containers, orchestration and deployment
- Evaluating machine learning, overfitting and underfitting
- Data leakage, class imbalance, model bias and explainability
- Tokenisation, vector representations, attention, retrieval and hallucination in large language models
- Testing software, architecture, version control and continuous integration
- Functional, logic and concurrent programming paradigms
- Compilers, interpreters and programming-language semantics
- Automata, computability, reductions, P, NP and NP-completeness
How programs run
1. Program execution models and tracing state
A program is a sequence of changes to state — the current values of variables and the next instruction. Tracing means writing down that state after each step. Many later misconceptions are linked to the lack of a mental model of this process. [8], [9]
Example. For x = 2; x = x * 3 a trace is: start with no x; after the first line x is 2; after the second line x is 6.
2. Scope, lifetime, parameter passing and aliasing
Scope is where a name is visible. Lifetime is how long a stored value or object exists. Parameter passing is how inputs enter a function. Aliasing means two names refer to the same object, so a change through one name is visible through the other.
Example. If a function receives a list and appends an item, the caller’s list may change too — both names pointed at the same list.
Another example. If two variables point at the same object, a change to the object is visible through both references. Pointing one of the references at a different object is a different operation.
3. References, pointers and memory management
A reference or pointer holds the location of a value, not the value itself; the exact behaviour depends on the language. Memory management is deciding when that storage is created and released. Indirection can remain difficult even after several years of study. [14]
Example. Two variables can point at one customer record. Updating the address through either variable changes the same record.
4. Recursion and the recursive call stack
Recursion is a function calling itself, directly or indirectly, until a base case that needs no further call. Each call waits on the call stack until the inner call finishes. An explanation should show both the new calls being created and the results coming back. [13]
Example. factorial(4) waits for factorial(3), which waits for factorial(2), until factorial(1) returns 1.
5. Object identity, classes, objects, inheritance and polymorphism
A class is a description; an object is one instance. Identity asks which object you have, not only whether two objects hold the same numbers. Inheritance lets a class reuse another’s structure. Polymorphism lets the same interface produce different behaviour in different objects. A constructor takes part in setting an object’s starting state when it is created. [12]
Example. Circle and Rectangle can both answer “area”, but each calculates it differently.
Data structures and algorithms
6. Lists, linked structures, stacks, queues, trees, heaps and graphs
A data structure is a way of organising values so that some operations stay cheap. A list keeps order; a stack is last-in, first-out; a queue is first-in, first-out; trees and heaps organise hierarchy; a graph models connections. Here a heap is a structure; the same word is also used for a region of memory. [11]
Example. A browser’s Back button behaves like a stack: the last page you opened is the first one you return to.
7. Sorting, searching and graph algorithms
These are standard methods for putting items in order, finding an item, or walking along connections. A student needs to see both the method and when it is the right method.
Example. Finding a name in a sorted class list can use binary search: repeatedly cut the remaining list in half.
8. Big-O, worst case and the space–time trade-off
Big-O is used to give an upper bound on how an algorithm’s demand for resources grows as the input grows; it is not a count of exact seconds. Worst-case analysis asks about the most expensive legal input. A space–time trade-off means using more memory to save time, or the reverse.
Example. Looking at every item once is linear time. Looking at every pair of items grows much faster as the list lengthens.
9. Greedy algorithms, divide and conquer, and dynamic programming
A greedy method takes the locally best step. Divide and conquer splits a problem, solves the parts, and combines them. Dynamic programming stores answers to overlapping subproblems so they are not recomputed. Choosing the technique and writing the recurrence are common difficulties. [20], [27]
Example. Making change with the fewest coins can be greedy if the coin system allows it; some systems need a more careful stored-solution method.
Data and databases
10. Relational modelling, keys, joins and normalisation
A relational database stores data in tables. A key uniquely identifies a row. A join combines rows from more than one table. Normalisation organises tables so that repetition and update problems are reduced.
Example. A Students table and a Courses table meet in an Enrolment table. Enrolling the same student on several courses shows why the result can contain several rows.
11. Aggregation, subqueries and window functions in SQL
SQL (Structured Query Language) is the language used to ask questions of a database. Aggregation summarises many values as a sum, a count or an average. A subquery sits inside another query. A window function computes across related rows while still keeping the separate rows in the result. Large-scale analysis found frequent student errors with joins, subqueries and GROUP BY. [16]
Example. University student and enrolment tables can explain a JOIN. First show that the join increases the number of rows, then show how GROUP BY gathers those rows by course or by student.
12. Transactions, isolation, locking and database consistency
A transaction treats related operations as one piece of work: they should finish together or fail together. Isolation decides how far parallel transactions may see one another’s intermediate results. Locking prevents a clash on the same data. Consistency means the stored facts still obey the rules after the change.
Example. A bank transfer should not subtract from one account unless it also adds to the other.
Systems
13. Processes, threads, scheduling and virtual memory
A process is the environment of a running program; it usually has its own memory. A thread is a line of execution inside that environment. Scheduling decides which work the processor runs next. Virtual memory separates the addresses a program sees from physical memory. Students may memorise these mechanisms and still struggle to choose between solutions. [17]
Example. A browser can keep one process per tab so that one crashed page does not take down the others.
14. Race conditions, synchronisation, deadlock and nondeterminism
When several pieces of work overlap, the result can depend on the order of the steps. A race condition is that dependence on order. Synchronisation coordinates threads. Deadlock (also called tıxac in the earlier Azerbaijani page) is a standstill in which each side waits for a resource the other holds. Nondeterminism means an incorrect program may appear to work on some runs. One correct run does not prove that every legal order is correct. [15]
Example. Two threads both read “1 seat left” and both sell the last seat.
Another example. Splitting the update of the same counter by two threads into steps shows a race condition.
15. Network protocols, routing, reliability and congestion
A protocol is an agreed conversation between machines. Routing chooses a path. Reliability asks whether lost data is detected and resent. Congestion is overload on a shared path.
Example. A video call may drop picture quality when the path is congested rather than freeze forever.
16. Authentication, authorisation, encryption and secure software design
Authentication answers “Who are you?” Authorisation answers “What are you allowed to do?” Encryption protects data on the way or in storage. Secure design treats these as part of the system from the start. In cybersecurity, vulnerability, threat, risk and a protective measure are often mixed up. [19]
Example. Logging in proves identity; being a student still does not grant the right to change another student’s marks.
17. Distributed systems, replication, consistency and consensus
In a distributed system the parts run on different computers and communicate over a network. Replication keeps copies of data in more than one place. Those copies can disagree, so the system needs a consistency rule and sometimes a consensus method for agreeing on the next value.
Example. Two copies that are temporarily out of contact are a good starting point for explaining how data is brought back into agreement.
Another example. If two people type at once in a document saved on several servers, the system must decide whose edit remains.
18. Cloud computing, containers, orchestration and deployment
Cloud computing rents servers, storage and networks as a service. A container makes it easier to run an application together with what it depends on. Orchestration coordinates the placing, starting and managing of many containers. Deployment is putting a new version into service.
Example. A course website may run in a container so that the same image works on a laptop and in the cloud.
Machine learning and large models
19. Evaluating machine learning, overfitting and underfitting
Overfitting means the model fitted the peculiarities of the training data too closely and then fails on new examples. Underfitting means the model did not learn the main relationships well enough. Evaluation must use data the model has not already seen.
Example. A model that names every student in last year’s class but cannot place a new student has overfitted.
20. Data leakage, class imbalance, model bias and explainability
Data leakage is accidentally giving the model information it would not have at prediction time. Class imbalance means the example categories are unequal in number. Bias here can be a systematic distortion of results for certain groups. Explainability is being able to say, in a way people can follow, which factors affected the result.
Example. Mixing the test data into training is an example of leakage in evaluation.
Another example. If a medical model sees the hospital name, it may “predict” from that hospital’s typical patients rather than from the symptoms.
21. Tokenisation, vector representations, attention, retrieval and hallucination in large language models
An LLM is a large language model. Tokenisation splits text into the pieces the model processes; a token is not always a whole word. A vector representation (also called an embedding) expresses those pieces as numbers. An attention mechanism weighs relations among pieces in the context. Fetching information from an outside source can give an answer extra grounding, but it does not automatically guarantee correctness.
Example. The same word may become one token or several, which is why some models stumble on unusual spellings or codes.
Software work
22. Testing software, architecture, version control and continuous integration
Testing checks that code does what was intended. Architecture is the large-scale structure. Version control (often Git) records who changed what. Continuous integration (CI) regularly merges code changes and runs automated checks.
Example. A team can see who last changed a login page and whether the tests still pass after that change.
23. Functional, logic and concurrent programming paradigms
A paradigm is a general approach to building a program. Functional style emphasises functions and values; logic style emphasises relations and search; concurrent style emphasises work that overlaps in time. Concurrency is the overlapping progress of several pieces of work; parallelism is work that truly runs at the same time.
Example. The same “shortest path” problem can look like function composition in a functional language, like a constraint in a logic language, and like several searches overlapping in a concurrent model.
24. Compilers, interpreters and programming-language semantics
An interpreter carries out a program directly. A compiler first translates it into another form. Semantics is the meaning of the language’s constructions — what a program is allowed to do, not only how it is written.
Example. First tracing the same short program line by line, then asking “what exactly does this language do with x = x + 1?”, helps separate semantics from the mechanism of compilation or interpretation.
Theory of computation
25. Automata, computability, reductions, P, NP and NP-completeness
An automaton is a formal model described by states and transitions. Computability asks whether a problem can be solved by an algorithm at all. A reduction is a transformation that lets one problem be solved through another. P is the class of decision problems solvable in polynomial time. For NP, a suitable proof of a yes-answer can be checked in polynomial time. NP does not mean “not polynomial”. An NP-complete problem is in NP, and every NP problem can be reduced to it in polynomial time.
Example. If you can turn every instance of problem A into an instance of problem B, then a fast method for B would also give a fast method for A.
Why these topics are difficult
The sources do not claim that learners are weak. They report findings from teaching research: the ideas themselves are easy to misread, and experts often cannot see their own shortcuts. These findings are tied to the audiences and methods of particular studies. It is more useful to take them as a basis for explanations and tasks that you then check with a local audience.
Three main difficulties in programming
A literature review of introductory programming links the difficulties to syntax, conceptual knowledge and problem-solving strategy. Syntax is the written rules of the language. Knowing those rules is not enough, on its own, to understand why a program behaves as it does. The source points to Qian and Lehman’s literature review. [6]
A study that re-checked earlier research found that teachers struggle especially with teaching recursion, functions, loops, finding errors, and thinking and planning before code. A replication asks whether earlier results are seen again at another time or in another setting. [7]
A correct picture of how a program runs
If a learner does not build a correct mental model of how the computer carries out commands, variables, loops, functions, references and recursion can look like weakly connected rules. A notional machine is a simplified teaching model of program execution. Making the order of execution, the values in memory and the calls visible serves that aim. [8], [9]
Finding and fixing errors
When an experienced programmer looks for an error, they often use thought-steps they have already automated. If those steps are not explained openly, a beginner sees only the finished fix. Teaching should show how a hypothesis is formed, which check is chosen, and how the result is read. [10]
Difficulties identified in particular fields
- Data structures and algorithms. A 2026 systematic review identified 92 misconceptions and learning difficulties. That number does not mean every student makes the same errors; it means the review gathered such problems from different studies. [11]
- Object-oriented programming. Confusion commonly surrounds the difference between class and object, constructors, building objects from other objects, and the flow of execution. [12]
- Recursion. Following nested calls, seeing results come back, and the stopping condition all cause difficulty. [13]
- References and pointers. Indirection, aliasing, scope and parameter passing can remain difficult even after several years. [14]
- Concurrency and parallelism. The variety of possible execution orders can make an incorrect program sometimes look correct. [15]
- SQL. Large-scale analysis recorded errors with joining tables, subqueries and GROUP BY. [16]
- Operating systems. Memorising a mechanism is not always enough to explain the strengths and weaknesses of alternative solutions. [17]
- Number representation. Misconceptions about positional notation, two’s complement and overflow can remain after a computer-organisation course. Overflow is a result that does not fit in the number of bits set aside for it. [18]
- Cybersecurity. Vulnerability, threat, risk and a protective measure can be mixed up. Thinking through the possible steps of an attacking side is a separate skill. [19]
- Dynamic programming. Choosing when to use the method, building the relation among subproblems, and avoiding inefficient repetition are difficult. [20]
- Artificial intelligence. A study of pupils’ ideas shows that children can attribute human qualities to systems and overlook the role of training data. [21]
Authors in this competition can treat these findings as a brief: explain the missing mental model, not only the definition.
A first series of twelve articles
If the aim is accessible teaching articles, the following sequence is suggested. The titles overlap the highest-priority table and are written so that a non-specialist can see the question. This is a starting plan for publication, not a required topic list or order for the competition.
- How generative AI and ChatGPT-like systems work
- Why AI gives answers that sound convincing but are wrong
- What happens inside the computer when a program runs
- Variables and the meaning of
x = x + 1 - How to build an algorithm before writing code
- How loops work and why an infinite loop starts
- Functions, parameters, printed output and return values
- A practical method for finding and fixing program errors
- How the Internet delivers a web page to the user
- How a computer represents text, pictures and sound
- How passwords, encryption and digital signatures work
- How data can lead to a wrong conclusion, and how to recognise biased analysis
The order can be changed to fit the audience, and each topic can be split into smaller pieces of material.
Suggested teaching languages
Both sources point in the same three directions: Python for programming, data science and AI examples; JavaScript and TypeScript for web examples; SQL for database topics. A clear explanation can still use another language if that is the language the named audience actually meets.
Difference of certainty. The reworked document calls Python a “practical starting choice” and asks readers not to treat that as a single “best language” for every audience. The earlier page called Python “the most suitable general teaching language at present”. This page keeps both statements and recommends choosing the language by the aim of the topic, the audience’s prior knowledge, and the chance to run the example.
The rise of Python use in the 2025 Stack Overflow survey, and Python’s wide presence in AI projects in the GitHub report, support the current relevance of that language. TypeScript’s rise on GitHub can also support interest in web examples. [4], [5]
Preparing a topic proposal
This section comes from the reworked document and completes the twelve-article suggestion above. For each topic it is useful to write a short answer to these five questions:
- Audience — who the material is for, and what prior knowledge it needs;
- Educational value — which idea or skill it teaches;
- Practical link — where that knowledge is used;
- Learning difficulty — which misconception or confusion it removes;
- Intended outcome — what the learner will be able to explain or apply afterwards.
For example, “the difference between a function and printing a result” can be aimed at people learning introductory programming. The aim of the material is to show that a returned value can be used in another calculation. Two short functions, one that only writes to the screen and one that returns a value, can make that difference visible.
You can start the explanation with an everyday question or a small problem, present the core ideas, open the example step by step, and end with a short check. That structure is a suggestion and can change with the topic. A topic does not have to stand out in all three source groups at once. Recursion appears little in everyday technology news, yet a clear explanation of it can have serious educational value.
Terms and abbreviations
This glossary explains the main technical terms used in the text and in the topic lists. Organisation names and curriculum frameworks are opened in the sources section above. Synonyms appear in parentheses.
- AI / SI
- Artificial Intelligence. Computing methods and systems that carry out tasks associated with human intelligence.
- API
- Application Programming Interface. An interface for programs to exchange data and commands.
- CPU
- Central Processing Unit. The processor that carries out instructions.
- DNS
- Domain Name System. The system that links domain names to IP addresses.
- HTTP
- Hypertext Transfer Protocol. The protocol for request and response on the Web.
- IP
- Internet Protocol. The protocol for addressing and forwarding packets between networks.
- IoT
- Internet of Things. Sensors and devices exchanging data over a network.
- SQL
- Structured Query Language. The query language for working with data in databases.
- LLM
- Large Language Model. A large model that works with text.
- OOP
- Object-Oriented Programming. An approach that organises data and operations around objects.
- DSA
- Data Structures and Algorithms.
- CI
- Depending on context: Continuous Integration, or a Concept Inventory — a diagnostic test of ideas.
- CS1 / SCS1
- CS1 is a first computer-science or programming course. SCS1 — Second CS1 — is a tool that measures ideas at that level.
- Big-O
- Notation that gives an asymptotic upper bound on how resource demand grows as the input grows.
- P / NP
- P is decision problems solvable in polynomial time. For NP, a suitable proof of a yes-answer can be checked in polynomial time. NP does not mean “not polynomial”.
- NP-completeness and reduction
- An NP-complete problem is in NP, and every NP problem can be reduced to it in polynomial time.
- Boolean logic
- Logic based on true and false values and on AND, OR and NOT.
- Scope and lifetime
- Scope is where a name is available; lifetime is how long an object exists.
- Parameter and return value
- A parameter accepts a function’s input. A return value passes the result back to the caller.
- Reference, pointer and aliasing
- A reference or pointer is a way of referring to an object; exact behaviour depends on the language. Aliasing is access to the same object through more than one name.
- Stack and heap
- A stack is last-in, first-out; the call stack tracks function execution. Heap may mean a memory region or a separate heap structure.
- Recursion and base case
- Recursion is a function calling itself. The base case is the stopping situation that needs no new call.
- Inheritance and polymorphism
- Inheritance passes features between classes. Polymorphism lets the same interface produce different behaviour.
- Normalisation
- Organising tables in a relational database so that repetition and update problems are reduced.
- JOIN
- Combines data from related tables. Aggregation draws a sum, count or average from many values.
- Subquery and window function
- A subquery sits inside another query. A window function computes across related rows and still keeps the separate rows.
- Transaction and isolation
- A transaction treats related operations as one piece of work. Isolation decides how far parallel transactions may see intermediate results.
- Concurrency and parallelism
- Concurrency is overlapping progress. Parallelism is work that truly runs at the same time.
- Race condition and deadlock
- In a race condition the result depends on execution order. Deadlock is a standstill in which each side waits for the other.
- Process, thread and virtual memory
- A process is the environment of a running program; a thread is a line of execution in that environment. Virtual memory separates the addresses a program sees from physical memory.
- Authentication and authorisation
- Authentication checks identity; authorisation checks permission to perform an action.
- Phishing and two-factor authentication
- Phishing is an attempt to obtain information through a deceptive message or site. Two-factor authentication uses two checks from different categories.
- Encryption, hashing and signature
- Encryption protects data with a key. Hashing makes a short digital fingerprint. A digital signature helps check integrity and the link to the signer.
- Training and evaluation
- During training a model learns from examples. Evaluation checks how it works on separate data.
- Overfitting and underfitting
- In overfitting the model fits the peculiarities of the training data too closely. In underfitting it does not learn the main relationships well enough.
- Class imbalance and bias
- Class imbalance means example categories are unequal in number. Bias can be a systematic distortion of results for certain groups.
- Explainability
- Being able to say, in a way people can follow, which factors affected a model’s result.
- Token, vector representation and attention
- A token is a unit of text processing; it is not always a whole word. A vector representation shows it as numbers. Attention weighs relations among pieces of context.
- Git / GitHub
- Git is a version-control system that tracks the history of changes. GitHub is a platform for storing Git projects and working on them together.
- Two’s complement
- A way of representing signed integers, including negative numbers, in a fixed number of bits.
- Automaton and computability
- An automaton is a formal model of states and transitions. Computability asks whether a problem can be solved by an algorithm.
- Client and server
- A client sends a request for a service; a server processes that request and replies.
- Anthropomorphism
- Attributing human thought, intention and feeling to a system. In explanations of AI this assumption can make the mechanism harder to understand.
Sources and references
The numbers in the text match the sources below. For research items the short descriptive names from the source document are kept; they are not presented as full bibliographic titles.
- [1] CSTA’s 2026 PK–12 Standards — https://csteachers.org/pk12standards/
- [2] ACM/IEEE-CS/AAAI CS2023 — knowledge areas — https://csed.acm.org/knowledge-areas/
- [3] AP Computer Science Principles — https://apcentral.collegeboard.org/courses/ap-computer-science-principles
- [4] 2025 Stack Overflow Developer Survey — https://survey.stackoverflow.co/2025/technology
- [5] GitHub Octoverse 2025 — https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/
- [6] Qian and Lehman’s literature review — https://doi.org/10.1145/3077618
- [7] 20-year CS1 replication study — https://doi.org/10.1145/3730405
- [8] Sorva’s notional-machine research — https://doi.org/10.1145/2483710.2483713
- [9] Study of variable evaluation — https://doi.org/10.1145/3017680.3017724
- [10] Systematic review of debugging instruction — https://doi.org/10.1145/3690652
- [11] DSA systematic review — https://doi.org/10.1080/08993408.2026.2633989
- [12] Long-term OOP study — https://doi.org/10.1080/08993400500224310
- [13] Recursion concept inventory — https://doi.org/10.1080/08993408.2017.1414728
- [14] Indirection study — https://doi.org/10.15388/infedu.2507.015
- [15] Concurrency study — https://doi.org/10.15388/infedu.2021.29
- [16] SQL misconception study — https://doi.org/10.1145/2899415.2899464
- [17] Operating-systems concept inventory — https://doi.org/10.1145/2538862.2538886
- [18] Number-representation study — https://doi.org/10.1080/08993408.2011.611712
- [19] Cybersecurity misconception study — https://digitalcommons.kennesaw.edu/jcerp/vol2018/iss1/5/
- [20] Replication study on dynamic programming — https://doi.org/10.1080/08993408.2022.2079865
- [21] Study of pupils’ AI conceptions — https://doi.org/10.1016/j.caeai.2022.100095
- [22] The public invitation to the competition. The reworked document also listed a local development address. — https://daab-waas.com/az/complex-topics.html
- [23] CS2023 official page — https://csed.acm.org/
- [24] CS2023 knowledge and competency model — https://csed.acm.org/wp-content/uploads/2024/04/1.3-Introduction-to-Knowledge-Model.pdf
- [25] Survey methodology — https://survey.stackoverflow.co/2025/methodology
- [26] Survey AI section — https://survey.stackoverflow.co/2025/ai
- [27] Dynamic-programming concept inventory — https://arxiv.org/abs/2411.14655
- [28] Validation and use of SCS1 — https://www.sci.sdsu.edu/crmse/msed/papers/parker2-parker-guzdial-engleman_SCS1.pdf
- [29] The web copy of this topic guide — https://daab-waas.com/az/complex-topics-informatics.html
- [30] Organisation of the competition — working plan — https://daab-waas.com/az/complex-topics-approach.html
This page is not a new source. It brings together the documents above and the integrated guide — the combination of the reworked Word document and the earlier web page.