This document outlines the syllabus for a course on analysis of algorithms and complexity. The course will cover foundational topics like asymptotic analysis and randomized algorithms, as well as specific algorithms like sorting, searching trees, and graph algorithms. It will also cover advanced techniques like dynamic programming, greedy algorithms, and amortized analysis. Later topics will include NP-completeness, multi-threaded algorithms, and approaches for dealing with NP-complete problems. The requirements include exams, homework assignments, and a project, and the course will be taught in English.