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