The course is a follow-up to the programming introductory course ALG119000. The aim is to look into the theoretical aspects of programming, learn about various well-known algorithms and data organization methods and evaluate their complexity in practice.