Курсът по алгоритми запознава участниците с най-разпространените техники на програмиране. Заедно с това се решават множество алгоритмични задачи и се извършва анализ на различни подходи - техните свойства, приложения, предимства и недостатъци. Ще развиете алгоритмичното си мислене и ще придобиете умения за работа с алгоритми от по-високо ниво в теория на графите:
• топологично сортиране;
• минимално покриващо дърво;
• намиране на най-кратък път в граф с негативни тегла;
• най-дълъг път в директен ацикличен граф;
• силно свързани компоненти и максимален поток.
Също така ще надградите умения си за прилагане на динамично програмиране в по-сложни оптимизационни задачи. В допълнение ще придобиете задълбочени знания в амортизирания анализ, класификацията на проблеми (P, NP, NP-completeness) и редуцирането на проблеми.