Я могу говорить только с позиции бывшего студента. Причем, мне знакомы системы обучения программированию у нас и у буржуев. А сейчас на работе вижу, что мне реально понадобилось.
Так вот, в Финляндии обучение поближе к практике, что, конечно, плюс. Но у нас с теорией дела обстоят лучше (не всегда - некоторые преподы, по-моему, застряли где-то во второй половине XX века). Нужен баланс "теория-практика". Циклы, ветвления и т.п. - это хорошо, но и практиковаться надо на реальных проектах, а не в турбо паскале.
Нужно изучать современные технологии программирования. А то у нас доходят до ООП и все. Про интерфейсы ни слова не говорят, а если и говорят, то только в качестве упоминания. А насчет шаблонов проектирования, преподы, по-моему, вообще ничего не слышали.
Короче, вся проблема в том, на мой взгляд, что преподаватели программирования сами не являются программистами, и никогда ими не являлись. А как человек, ни разу в жизни ни написавший ни одной полезной программы, может учить других писать программы?!