Без заголовка
Вообще-то, функции и прочие прибамбасы нужны для повторного использования кода, его развития, поддержки и т.п. Соответственно, нужна итеративность заданий.
"Вычисли корень числа"
"А теперь вычисли его для чисел из таблицы"
"А теперь сделай, чтобы из таблицы брались и числа, и число знаков после запятой"
"А теперь нам сказали вычислить, при каком максимальном изменении числа корень все еще не меняется"
"А теперь сделай, чтоб еще и время вычисления печаталось"
"Ой! оказывается, надо было кубический корень вычислять, а не квадратный, исправь!"
и т.п.
(кстати, интервью у нас проводятся примерно по такой же схеме)
Пока не будет понимания, что реальная жизнь программиста устроена именно так, и что всякие там функции и объекты сделаны для облегчения этой реальной жизни - он и не будет понимать, зачем это надо.