Вы не уточнили на каком уровне преподаёте: частные занятия, вуз, курсы. От этого сильно щависит и специфика преподавания.
Для эффективности преподавания однозначно необходимо дать человеку решить примитивную, но впечатляющую задачу в первый же заход. Это сильно стимулирует интерес. Дальше «примять траву»: организация рабочего пространства (IDE, простые редакторы), соглашения о синтаксисе, свой локальный тестовый полигон (denwer, linux, мобильная платформа), контроль версий (совместите со сдачей домашних заданий). После всего обучение можно направлять в любую область. Мешать теорию и практику по возможности исходя из обучаемых.
Эффективно выдавать задачки на подумать но с некоей составляющей творчества. Если рассчитываете по программе обучения интеграл, дайте задание оформить хотя бы цветом входные и выходные данные как в платёжных термналах.
И еще: используйте moodle для организации процесса, выдачи материалов для самостоятельногообучения и проверки знаний. Очень упростит жинь и покажет пример живой системы.