IIOT Syllabus
Version 2 — May 19th, 2019
Download PDF
Level 1
- Primitive data types (e.g.
int
, char
, double
, bool
)
- One-dimensional arrays (e.g.
int[]
, char[]
, double[]
, bool[]
)
- Branching (
if
/else
statement)
- Bounded loops (simple
for
statement)
Level 2
- Multi-dimensional arrays (e.g.
int[][]
)
- Queue and stack data structures
- Unbounded loops (
while
statement)
- Functions and exhaustive recursion (e.g. listing permutations)
- Binary search
- Quadratic sorting algorithms (e.g. bubble sort)
- Strings and quadratic substring search
- Euclidean algorithm for the greatest common divisor
- Basic concepts of geometry and arithmetic
Level 3
- Standard containers (e.g.
vector
, set
, map
)
- Divide et impera
- Dynamic programming on one- or multi-dimensional arrays
- Graph traversals (BFS, DFS)
- Efficient sorting algorithms (
sort
or qsort
)
- Approximate optimization through heuristics techniques
Level 4
- Disjoint-set data structure (union-find)
- Data structures for range queries
- Least common ancestor in trees
- Graph algorithms: shortest path, spanning tree
- Dynamic programming on acyclic graphs
- Backtracking (branch and bound algorithms)
Level 5
- All other topics not mentioned in previous levels