The International Olympiad in Informatics Syllabus

1

Version and status information

This is the future Syllabus version intended for IOI 2018.
All changes since the 2017 version are shown in red. Nothing new wasadded, some topics were removed or restricted.
The Syllabus is an official document related to the IOI. For each IOI,
an up-to-date version of the Syllabus is produced by the ISC, as describedin the IOI Regulations, Statue 3.13.

2

Authors and Contact Information

The original proposal of the IOI Syllabus was co-authored by Tom Verhoeff1 ,Gyula Horváth2 , Krzysztof Diks3 , and Gordon Cormack4 .
Since 2007, the following people have maintained the syllabus and madesignificant contributions: Michal Forišek5 , Jakub La̧cki6 , and Richard Peng7 .
You are welcome to send any feedback on the Syllabus to the current
maintainer’s e-mail address (forisek@dcs.fmph.uniba.sk).
For people interested in contributing to the quality of the Syllabus, some
additional background on the Syllabus and other miscellaneous information
can be found at http://ksp.sk/~misof/ioi-syllabus/.

1

TU Eindhoven, The Netherlands, t.verhoeff@tue.nl
University of Szeged, Hungary, horvath@inf.u-szeged.hu
3Warsaw University, Poland, diks@mimuw.edu.pl
4
University of Waterloo, Canada, gvcormac@uwaterloo.ca
5
Comenius University, Slovakia, forisek@dcs.fmph.uniba.sk
6
Warsaw University, Poland, j.lacki@mimuw.edu.pl
7
Georgia Tech, USA, richard.peng@gmail.com

2

1

The IOI Syllabus – Version 2018

3

2

Introduction

During the years, the Syllabus has evolved. Currently it has the following
purposes:• It specifies a small set of required prerequisite knowledge. Below, thisis given in the category “Included, unlimited” and to some extent alsoin “Included, to be clarified defined”.
• It serves as a set of guidelines that help decide whether a task issuitable for the International Olympiad in Informatics (IOI). Based on
this document, the International Scientific Committee (ISC) evaluates
the task proposals when selecting the competition tasks.
• As a consequence of the previous item, another purpose of the Syllabus
is to help the organizers of national olympiads prepare their students
for the IOI.
The Syllabus aims to achieve these goals by providing a classification of
topics and concepts from mathematics and computer science. More precisely, this Syllabus classifies each topic into one of six categories.
Ordered by topic suitability, these are:
3
3W
3V
?
7?
7

Included, unlimited
Included, to be defined
Included, not for task description
Outside of focus
Excluded, but open to discussion
Explicitly excluded

In the next section we explain the scope of each category.

The IOI Syllabus – Version 2018

4

3

Categories

This Syllabus classifies a selection of topics into six different categories. Obviously, such a set of topics can never be exhaustive. Instead, the list givenin this Syllabus should serve as examples that map out the boundary. Topics
not explicitly mentioned in the Syllabus should be classified as follows:• Anything that is a prerequisite of an Included topic is also Included.
• Anything that is an extension of an Excluded topic or similar to an
Excluded topic is also Excluded.
• Anything else that is not mentioned in the Syllabus is considered Outside of focus.
Note that issues related to the usage of suitable terminology and notations in competition tasks are beyond the scope of this document.8
If there is a particular topic for which you are not sure how it should
be classified, we invite you to submit a clarification request to the current
Syllabus maintainer.
Here are the definitions of the six possible classifications:
3 Included, unlimited

Topics in this category are considered to be prerequisite knowledge.
Contestants are expected to know them. These topics can appear intask descriptions without further clarification.
Example: Integer in §5.1
3W Included, to be clarified definedContestants should know this topic, but when it appears in a task description, the statement should contain a sufficient definition.
This category is usually applied in situations where a general
concept that would be 3 has many different “flavors” and aformal definition is needed to distinguish among those.
Example: Directed graph in §5.2 DS2
3V Included, not for task description

Topics that belong to this category should not appear in tasks descriptions. However, developing solutions and understanding model
solutions may require the knowledge of these topics.
8

See T. Verhoeff: Concepts, Terminology, and Notations for IOI Competition Tasks,
http://scienceolympiads.org/ioi/sc/documents/terminology.pdf

The IOI Syllabus – Version 2018

4

Example: Asymptotic analysis of upper complexity bounds in §6.2 AL1
Note: This is the main category that should be of interest when preparing contestants for the IOI. It should be noted that this set of topics
contains a wide range of difficulties, starting from simple concepts andending with topics that can appear in problems that aim to distinguishamong the gold medallists. It is not expected that all contestants
should know everything listed in this category.
? Outside of focus

Any topic that is not explicitly addressed by the Syllabus should beconsidered to belong to this category.
Contestants are not expected to have knowledge of these topics. Most
competition tasks will not be related to any topics from this category.
However, this does not prevent the inclusion of a competition taskthat is related to a particular topic from this category. The ISC may
wish to include such a competition task in order to broaden the scopeof the IOI.
If such a task is considered for the IOI, the ISC will make sure thatthe task can reasonably be solved without prior knowledge of the particular topic, and that the task can be stated in terms of 3 and 3Wconcepts in a precise, concise, and clear way.
Examples of such tasks being used at recent IOIs include:• Languages (a.k.a. Wikipedia) from IOI 2010 in Canada• Odometer (a.k.a. robot with pebbles) from IOI 2012 in Italy• Art class from IOI 2013 in Australia.
7 Explicitly excluded

Some of the harder algorithmic topics are explicitly marked as excluded. It is guaranteed that there will not be a competition task that
requires the contestants to know these areas.
Furthermore, the tasks will be set with the goal that knowledge of Excluded topics should not help in obtaining simpler solutions / solutions
worth more points.
This category contains topics whose inclusion will result in problems
that are unaccessible to a significant portion of IOI participants. This
includes but is not limited to hard textbook algorithms and advanced
areas in mathematics.

The IOI Syllabus – Version 2018

5

Still, note that the Syllabus must not be interpreted to restrict in any
way the techniques that contestants are allowed to apply in solving
the competition tasks.
Examples: Calculus in §5.3
7? Excluded, but open to discussion

As the Syllabus is a living document, there can be cases when we consider bringing in some of the Excluded topics. Usually, the topics inquestion are natural extensions of Included topics, or ones where drawing an exact boundary is difficult. Should such topics appear, they will
be temporarily classified as “Excluded, but open to discussion”, andby doing so we encourage all members of the IOI community to give
us feedback on these topics.
The rest of this document contains the classification of topics.

5

Mathematics

5.1

Arithmetics and Geometry
Integers, operations (incl. exponentiation), comparison
Basic properties of integers (sign, parity, divisibility)
3
Basic modular arithmetic: addition, subtraction,
multiplication
3V Prime numbers
3
Fractions, percentages
3
Line, line segment, angle, triangle, rectangle, square, circle
3
Point, vector, coordinates in the plane3
Polygon (vertex, side/edge, simple, convex, inside, area)
3W Euclidean distances
3V Pythagorean theorem
337?

Additional topics from number theory.

7

geometry in 3D or higher dimensional spaces
analyzing and increasing precision of floating-pointcomputations
modular division and inverse elements

7
7

The IOI Syllabus – Version 2018
7
7
7

5.2

complex numbers,
general conics (parabolas, hyperbolas, ellipses)
trigonometric functions

Discrete Structures (DS)DS1. Functions, relations, and sets
3W Functions (surjections, injections, inverses, composition)
3W Relations (reflexivity, symmetry, transitivity, equivalence

relations, total/linear order relations, lexicographic order)
3W Sets (inclusion/exclusion, complements, Cartesian products,
power sets)
7

Cardinality and countability (of infinite sets)

DS2. Basic logic
First-order logic
3
Logical connectives (incl. their basic properties)
3
Truth tables
3
Universal and existential quantification (Note: statements
should avoid definitions with nested quantifiers wheneverpossible.)
3V Modus ponens and modus tollens
3?

Normal forms

7

Validity
Limitations of predicate logic

7

DS3. Proof techniques
3W Notions of implication, converse, inverse, contrapositive,

negation, and contradiction
3V Direct proofs, proofs by: counterexample, contraposition,

contradiction
3V Mathematical induction
3V Strong induction (also known as complete induction)
3
Recursive mathematical definitions (incl. mutually recursive definitions)

6

The IOI Syllabus – Version 20187

DS4. Basics of counting
3
3W
3W
3V
3V
3V
7
7

Counting arguments (sum and product rule, arithmetic andgeometric progressions, Fibonacci numbers)
Permutations and combinations (basic definitions)
Factorial function, binomial coefficients
Inclusion-exclusion principle
Pigeonhole principle
Pascal’s identity, Binomial theorem
Solving of recurrence relations
Burnside lemma

DS5. Graphs and trees
3W Trees and their basic properties, rooted trees
3W Undirected graphs (degree, path, cycle, connectedness, Euler/Hamil3W
3W
3W
3W
3W
3W
3V
7
7
7
7
7

ton path/cycle, handshaking lemma)
Directed graphs (in-degree, out-degree, directed path/cycle,
Euler/Hamilton path/cycle)
Spanning trees
Traversal strategies‘Decorated’ graphs with edge/node labels, weights, colors
Multigraphs, graphs with self-loops
Bipartite graphs
Planar graphs
Hypergraphs
Specific graph classes such as perfect graphs
Structural parameters such as treewidth and expansion
Planarity testing
Finding separators for planar graphs

DS6. Discrete probability
Applications where everything is finite (and thus arguments aboutprobability can be easily turned into combinatorial arguments)
are ?, everything more complicated is 7.

The IOI Syllabus – Version 2018

5.3

8

Other Areas in Mathematics
7
7

Geometry in three or more dimensions.
Linear algebra, including (but not limited to):– Matrix multiplication, exponentiation,
inversion, and Gaussian elimination– Fast Fourier transform

7
7
7

Calculus
Theory of combinatorial games, e.g., NIM game, SpragueGrundy theory
Statistics

6

Computing Science

6.1

Programming Fundamentals (PF)PF1. Fundamental programming constructs(for abstract machines)
Basic syntax and semantics of a higher-level language (atleast one of the specific languages available at an IOI, as
announced in the Competition Rules for that IOI)
3
Variables, types, expressions, and assignment3
Simple I/O
3
Conditional and iterative control structures
3
Functions and parameter passing
3V Structured decomposition
3

PF2. Algorithms and problem-solving
3V Problem-solving strategies (understand–plan–do–check, sep-

3V
3V
3V
3W
9

aration of concerns, generalization, specialization, case distinction, working backwards, etc.)9
The role of algorithms in the problem-solving process
Implementation strategies for algorithms (also see §7 SE1)
Debugging strategies (also see §7 SE3)
The concept and properties of algorithms (correctness, efficiency)

See G. Polya: How to Solve It: A New Aspect of Mathematical Method, Princeton
Univ. Press, 1948

The IOI Syllabus – Version 20189

PF3. Fundamental data structures
3
3
3
3W
3W
3W
3W
3V
3V
3V
?
?
?
?
7

Primitive types (boolean, signed/unsigned integer, character)
Arrays (incl. multicolumn dimensional arrays)
Strings and string processing
Static and stack allocation (elementary automatic memory
management)
Linked structures
Implementation strategies for graphs and trees
Strategies for choosing the right data structure
Elementary use of real numbers in numerically stable tasks
The floating-point representation of real numbers, the existence of precision issues.10
Pointers and references
Data representation in memory,
Heap allocation,
Runtime storage management,
Using fractions to perform exact calculations.
Non-trivial calculations on floating point numbers, manipulating precision errors

Regarding floating point numbers, there are well-known reasons
why they should be, in general, avoided at the IOI.11 However,the currently used interface removes some of those issues. In
particular, it should now be safe to use floating point numbers insome types of tasks – e.g., to compute some Euclidean distancesand return the smallest one.
PF4. Recursion
3
3
10

The concept of recursion
Recursive mathematical functions

Whenever possible, avoiding floating point computations completely is the preferredsolution.
11
See G. Horváth and T. Verhoeff: Numerical Difficulties in Pre-University Education
and Competitions, Informatics in Education 2:21–38, 2003

The IOI Syllabus – Version 2018
Simple recursive procedures (incl. mutual recursion)
3V Divide-and-conquer strategies
3V Implementation of recursion
3V Recursive backtracking
3PF5. Event-driven programming
Some competition tasks may involve a dialog with a reactive environment. Implementing such an interaction with the provided
environment is 3W.
Everything not directly related to the implementation of reactive
tasks is ?.

6.2

Algorithms and Complexity (AL)We quote from the IEEE-CS Curriculum:
Algorithms are fundamental to computer science and software engineering.
The real-world performance of any software system depends only on two
things: (1) the algorithms chosen and (2) the suitability and efficiency ofthe various layers of implementation. Good algorithm design is therefore
crucial for the performance of all software systems. Moreover, the study ofalgorithms provides insight into the intrinsic nature of the problem as wellas possible solution techniques independent of programming language,
programming paradigm, computer hardware, or any other implementation
aspect.

AL1. Basic algorithmic analysis
3W Algorithm specification, precondition, postcondition, cor3V
3V
3V
3V
3V
?

rectness, invariants
Asymptotic analysis of upper complexity bounds (informally if possible)
Big O notation
Standard complexity classes: constant, logarithmic, linear,O(n log n), quadratic, cubic, exponential, etc.
Time and space tradeoffs in algorithms
Empirical performance measurements.
Identifying differences among best, average, and worst casebehaviors,

10

The IOI Syllabus – Version 2018
?
?

7
7

11

Little o, Omega, and Theta notation,
Tuning parameters to reduce running time, memory consumption or other measures of performance
Asymptotic analysis of average complexity bounds
Using recurrence relations to analyze recursive algorithms

AL2. Algorithmic strategies
3V Simple loop design strategies
3V Brute-force algorithms (exhaustive search)
3V Greedy algorithms
3V Divide-and-conquer
3V Backtracking (recursive and non-recursive), Branch-and-bound
3V Dynamic programming12
?
?
?
?
7
7

Heuristics
Finding good features for machine learning tasks13
Discrete approximation algorithms
Randomized algorithms.
Clustering algorithms (e.g. k-means, k-nearest neighbor)
Minimizing multi-variate functions using numerical approaches.

AL3a. Algorithms
3V Simple algorithms involving integers: radix conversion, Eu-√
clid’s algorithm, primality test by O( n) trial division,
Sieve of Eratosthenes, factorization (by trial division or asieve), efficient exponentiation
3V Simple operations on arbitrary precision integers (addition,
subtraction, simple multiplication)14
3V Simple array manipulation (filling, shifting, rotating, reversal, resizing, minimum/maximum, prefix sums, histogram,bucket sort)

12

The IEEE-CS Curriculum puts this under AL8, but we believe it belongs here.
E.g., finding a good way to classify images in the IOI 2013 Art class problem.
14
The necessity to implement these operations should be obvious from the problem
statement.
13

The IOI Syllabus – Version 2018
3V Simple string algorithms (e.g., naive substring search)
3V sequential processing/search and binary search
3V Quicksort and Quickselect to find the k-th smallest element.
3V O(n log n) worst-case sorting algorithms (heap sort, merge

sort)
3V Traversals of ordered trees (pre-, in-, and post-order)
3V Depth- and breadth-first traversals
3V Applications of the depth-first traversal tree, such as topo3V
3V
3V
3V
3V
3V
3V

logical ordering and Euler paths/cycles
Finding connected components and transitive closures.
Shortest-path algorithms (Dijkstra, Bellman-Ford, FloydWarshall)
Minimum spanning tree (Jarnı́k-Prim and Kruskal algorithms)
O(V E) time algorithm for computing maximum bipartite
matching.
Biconnectivity in undirected graphs (bridges, articulation
points).
Connectivity in directed graphs (strongly connected components).
Basics of combinatorial game theory, winning and losing
positions, minimax algorithm for optimal game playing

7?

Maximum flow. Flow/cut duality theorem.

7

Optimization problems that are easiest to analyze
using matroid theory. Problems based on matroidintersecions (except for bipartite matching).
Lexicographical BFS, maximum adjacency search and theirproperties

7

AL3b. Data structures
3W Stacks and queues
3V Representations of graphs (adjacency lists, adjacency ma-trix)
3W Binary heap data structures
3V Representation of disjoint sets: the Union-Find data struc-

ture.

12

The IOI Syllabus – Version 201813

3W Statically balanced binary search trees. Instances of this in-

3V
3W
3V
3V
3V
3V
3W

clude binary index trees (also known as Fenwick trees) andsegment trees (also known as interval trees and tournament
trees).15
Balanced binary search trees16
Augmented binary search trees
O(log n) time algorithms for answering lowest common ancestor queries in a static rooted tree.17
Creating persistent data structures by path copying or using
fat nodes.
Composition of data structures, e.g. 2-D staticallybalanced binary trees
Nesting of data structures, such as having a sequence of sets
Tries

String algorithms and data structures: there is evidence
that the inter-reducibility between KMP, Rabin-Karp hashing, suffix arrays/tree, suffix automaton, and Aho-Corasickmakes them difficult to separate.
7? Heavy-light decomposition and separator structures for static
trees.
7? Data structures for dynamically changing trees and theiruse in graph algorithms.
7?

7
7
7

7
15

Complex heap variants such as binomial and Fibonacci heaps,
Using and implementing hash tables (incl. strategies toresolve collisions)Two-dimensional tree-like data structures (such asa 2D statically balanced binary tree or a treap oftreaps) used for 2D queries.
Fat nodes and other more complicated ways of implementing persistent data structures.

Not to be confused with similarly-named data structures used in computational geometry.
16
Problems will not be designed to distinguish between the implementation of BBSTs,
such as treaps, splay trees, AVL trees, or scapegoat trees
17
Once again, different implementations meeting this requirement will not be distinguished.

The IOI Syllabus – Version 2018
AL4. Distributed algorithms
This entire section is ?.
AL5. Basic computability
All topics related to computability are 7. This includes thefollowing: Tractable and intractable problems; Uncomputablefunctions; The halting problem; Implications of uncomputability.
However, see AL7 for basic computational models.
AL6. The complexity classes P and NP
Topics related to non-determinism, proofs of NP-hardness (reductions), and everything related is 7.
Note that this section only covers the results usually containedin undergraduate and graduate courses on formal languages andcomputational complexity. The classification of these topics as
7 does not mean that an NP-hard problem cannot appear at an
IOI.
AL7. Automata and grammars
3W Understanding a simple grammar in Backus-Naur form?
?
?
7

Formal definition and properties of finite-state machines,
Context-free grammars and related rewriting systems,
Regular expressions
Properties other than the fact that automata are graphs
and that grammars have parse trees.

AL8. Advanced algorithmic analysis
3V Amortized analysis.
?
?

Online algorithms
Randomized algorithms

7

Alpha-beta pruning

14

The IOI Syllabus – Version 201815

AL9. Cryptographic algorithms
This entire section is ?.
AL10. Geometric algorithms
In general, the ISC has a strong preference towards
problems that can be solved using integer arithmetics
to avoid precision issues. This may include representing
some computed values as exact fractions, but extensive
use of such fractions in calculations is discouraged.
Additionally, if a problem uses two-dimensional objects,
the ISC prefers problems in which such objects are rectilinear.
3V Representing points, vectors, lines, line segments.
3V Checking for collinear points, parallel/orthogonal vectors

3V
3V
3V
3V
3V
3V
7
7
7
7
7
7

18

and clockwise turns (for example, by using dot products and cross products)
Intersection of two lines.
Computing the area of a polygon from the coordinatesof its vertices18
Checking whether a (general/convex) polygon contains apoint.
Coordinate compression.
O(n log n) time algorithms for convex hull
Sweeping line method
Point-line duality
Halfspace intersection, Voronoi diagrams, Delaunay triangulations.
Computing coordinates of circle intersections against lines
and circles.
Linear programming in 3 or more dimensions and its geometric interpretations.
Center of mass of a 2D object.
Computing and representing the composition of geometric transformations if the knowledge of linear
algebra gives an advantage.

The recommended way of doing so is to use cross products or an equivalent formula.

The IOI Syllabus – Version 2018
AL11. Parallel algorithms
This entire section is ?.

6.3

Other Areas in Computing Science
Except for GV (specified below), all areas are 7.
AR. Architecture and Organization
OS. Operating Systems
NC. Net-Centric Computing (a.k.a. cloud computing)
PL. Programming Languages
HC. Human-Computer Interaction
GV. Graphics and Visual Computing
Basic aspects of processing graphical data are ?, everything else (including the use of graphics libraries such as
OpenGL) is 7.
IS. Intelligent Systems
IM. Information Management
SP. Social and Professional Issues
CN. Computational Science
Notes: AR is about digital systems, assembly language, instruction pipelining, cache memories, etc. OS is about the design ofoperating systems, not their usage. PL is about the analysis anddesign of programming languages, not their usage. HC is about
the design of user interfaces.
Usage of the operating system, GUIs and programming languages is covered in §8 and §6.1.

7

Software Engineering (SE)We quote from the IEEE-CS Curriculum:
Software engineering is the discipline concerned with the application of theory,knowledge, and practice for effectively and efficiently building software systems
that satisfy the requirements of users and customers.

16

The IOI Syllabus – Version 2018
In the IOI competition, the application of software engineering
concerns the use of light-weight techniques for small, one-off,single-developer projects under time pressure. All included topics are 3V.
SE1. Software design
3V Fundamental design concepts and principles
3V Design patterns
3V Structured design

In particular, contestants may be expected to– Transform an abstract algorithm into a concrete, efficient
program expressed in one of the allowed programming languages, possibly using standard or competition-specific libraries.
– Make their programs read data from and write data to text
files according to a prescribed simple format
7
7
7
7

Software architecture,
Design for reuse,
Object-Oriented analysis and design,
Component-level design

SE2. Using APIs
3V API (Application Programming Interface) programming

In particular, contestants may be expected to– Use competition-specific libraries according to the provided
specification.
77
7
7Programming by example,
Debugging in the API environment,
Class browsers and related tools,
Introduction to component-based computing

17

The IOI Syllabus – Version 2018
SE3. Software tools and environments
3V Programming environments, incl. IDE (Integrated Devel-

opment Environment)
In particular, contestants may be expected to– Write and edit program texts using one of the provided
program editors.
– Compile and execute their own programs.
– Debug their own programs.
7
7
7
7

Testing tools,
Configuration management tools
Requirements analysis and design modeling tools,
Tool integration mechanisms

SE4. Software processes
3V Software life-cycle and process models

In particular, contestants may be expected to– Understand the various phases in the solution development
process and select appropriate approaches.
7
7

Process assessment models,
Software process metrics

SE5. Software requirements and specification
3V Functional and nonfunctional requirements
3V Basic concepts of formal specification techniques

In particular, contestants may be expected to– Transform a precise natural-language description (with orwithout mathematical formalism) into a problem in termsof a computational model, including an understanding of
the efficiency requirements.
7
7
7

Prototyping,
Requirements elicitation,
Requirements analysis modeling techniques

18

The IOI Syllabus – Version 2018
SE6. Software validation
3V Testing fundamentals, including test plan creation and test

case generation
3V Black-box and white-box testing techniques
3V Unit, integration, validation, and system testing
3V Inspections
In particular, contestants may be expected to– Apply techniques that maximize the the opportunity to detect common errors (e.g. through well-structured code, code
review, built-in tests, test execution).
– Test (parts of) their own programs.
7
7

Validation planning,
Object-oriented testingSE7. Software evolution
7
7
7
7
7

Software maintenance,
Characteristics of maintainable software,
Re-engineering,
Legacy systems,
Software reuse

SE8. Software project management
3V Project scheduling (especially time management)
3V Risk analysis
3V Software configuration management

In particular, contestants may be expected to– Manage time spent on various activities.
– Weigh risks when choosing between alternative approaches.
– Keep track of various versions and their status while developing solutions.
77
7
7

Software quality assurance,
Team management,
Software measurement and estimation techniques,
Project management tools

19

The IOI Syllabus – Version 2018
SE9. Component-based computingThis entire section is 7.
SE10. Formal methods
3V Formal methods concepts (notion of correctness proof, in-variant)
3V Pre and post assertions
In particular, contestants may be expected to– Reason about the correctness and efficiency of algorithms
and programs.
7
77

Formal verification,
Formal specification languages,
Executable and non-executable specifications

SE11. Software reliability
This entire section is 7.
SE12. Specialized systems development
This entire section is 7.

8

Computer Literacy
The text of this section is 3V.
Contestants should know and understand the basic structure
and operation of a computer (CPU, memory, I/O). They are
expected to be able to use a standard computer with graphicaluser interface, its operating system with supporting applications,and the provided program development tools for the purpose ofsolving the competition tasks. In particular, some skill in file
management is helpful (creating folders, copying and moving
files).
Details of these facilities will be stated in the Competition Rulesof the particular IOI. Typically, some services are available through

20

The IOI Syllabus – Version 2018a standard web browser. Possibly, some competition-specifictools are made available, with separate documentation.
It is often the case that a number of equivalent tools are madeavailable. The contestants are not expected to know all thefeatures of all these tools. They can make their own choice basedon what they find most appropriate.
The following topics are all ?: Calculator, Word-processors, Spreadsheet applications, Database management systems, E-mail clients,
Graphics tools (drawing, painting).

21