After completing the course:
- Student understands the importance of algorithms and can analyse asymptotic time complexity of simple algorithms.
- Student can select and reason about a correct data structure (abstract data type) for an application and use the chosen structure efficiently.
- Student can use efficiently the standard library of his/her programming language.
- Student knows and can implement most common abstract data types, list, tree, and set.
- Student can design and implement an algorithm for a simple problem.
- Student can search, select, and apply a proper algorithm from literature for given problem.
- Student knows the principle of recursion and can implement a recursive algorithm.