Профессионального программиста? Прекрасно! Начни с понятия "абстрактного исполнителя", определения алгоритма через абстрактный исполнитель, классификации абстрактных исполнителей и их эквивалентности. Продемонстрируй как одна задача решается на разных абстрактных исполнителях. Потом расскажи об алгоритмически неразрешимых задачах... Потом о способах оценки сложности алгоритмов. И т. д. Вот это и есть ПРОФЕССИОНАЛЬНОЕ программирование. А умение писать программки, решающие стандартные задачи стандартными способами - это не программирование, а кодерство.