Students who complete this course successfully should

  • have learnt to reason about the fundamental concepts of problems and algorithms, without restrictions to specific computers, languages or implementations;
  • understand the concepts of automata, regularity, context-free, computability, decidability, nondeterminism, NP-completeness and other related concepts;
  • understand that (and why) there are boundaries for computability;
  • have solved several problems which would increase your ability to formulate abstract arguments; and
  • have had repeated exercise and practice in the formal and precise description of the properties of computability and automata.