Дисциплината предлага нестандартен подход за усвояване на умения за съставяне на алгоритми - важен елемент от подготовката на всеки програмист и учител по информатика. В рамките на курса ще бъдат систематизирани и разгледани основни методи за проектиране на алгоритми и решаване на етюди по програмиране. По-специално ще бъдат представени теми като редуциране на алгоритмичната сложност, динамично оптимиране, теория на графите (най-кратък път,топологично сортиране, минимално покриващо дърво, цикли и максимален поток, планаризация и др.), геометрични задачи в програмирането, и др. Ще бъде представена тематична класификация и подход за решаване на задачи по програмиране, определяни като нестандартни и състезателни.