After completing the course a student is expected to
- be able to design and implement efficiently basic algorithms related to dynamic programming, graphs, numeric algorithms, optimization and geometric algorithms. - have a deepened understanding of the fundamental role that algorithm design and analysis have in solving real problems. - be familiar with the most common programming contests, online practise environments and literature on algorithmic programming.