Prerequisites

fundamentals of programming,
corresponding to Programming I and II [NPRG030, NPRG031]
(essential)

fundamentals of algorithms and data structures,
corresponding to Algorithms and Data Structures I [NTIN060]
(needed for solving some problems)

foundations of propositional and predicate logic,
corresponding to Propositional and Predicate Logic [NAIL062]
(useful but not absolutely necessary)
