Про обучение программированию

Такой вот рассуждательный пост.

Мне со следующего учебного года, по всей видимости, предстоит обучать студентов программированию. Пока что это спецкурс, скорее факультативный, чем основной (хотя и непосредственно относящийся к специальности), на первом курсе. Называется - спортивное программирование. Звучит конечно круто, но приходится принимать во внимание два обстоятельства: 1) курс - всего 2 часа в неделю (2 академических часа в нашем вузе равняются 1-му астрономическому), 2) большинство (ок. 70%) поступающих к нам на физмат либо плохо знают Паскаль, либо вообще ничего из области программирования не знают. Из-за второго факта на дисциплине "Теория программирования" на первом курсе изучают Паскаль (до прошлого года - Turbo Pascal, сейчас, кажется, перешли на Free Pascal).

В связи со всем этим возникает, конечно, вопрос - как тут можно обучать спортивному программированию? Некоторые вещи я для себя уже уяснил, и продолжаю уяснять, думаю по мере накопления публиковать. Итак, чего я пока нарешал:

  1. Кому не надо - пусть гуляют. Мне вообще обучать кого-либо невыгодно, тем более я не собираюсь возиться с теми, у кого нет желания учиться.
  2. Знание какого-нибудь ЯП в спортивном (да любом) программировании нужно, но не является главным. С учетом того, что Паскалю их обучать будут параллельно, программировать видимо будем все на том же Паскале.
  3. За 27 астрономических часов, размазанных на весь учебный год, подготовить с нуля программиста-олимпийца невозможно никак. Так что от этой цели придется отказаться. Буду делать возможное - постараюсь мало-мальски подготовить желающих стать программистами к самообучению в нужном направлении.
  4. В данной ситуации "спортивное программирование" приходится интерпретировать как знание алгоритмов. Так что будем изучать алгоритмы, сколько успеем. Все остальное, что успею - "дополнительные сведения".
  5. Вопреки всем обстоятельствам, я хочу дать шанс талантливым ребятам, по случайности оказавшимся у нас. Поэтому по возможности буду включать в курс какие-то сведения, помогающие сориентироваться в мире современного программирования.
  6. Какие это могут быть сведения? На изучение, например, современных технологий программирования, у меня нет времени (и подготовка учащихся недостаточна). Перебором вариантов аналогично показывается, что не проходят идеи об изучении каких-либо конкретных разделов/технологий современного программирования (сверх "знания алгоритмов"). Из "дополнительных сведений" конкретные знания приходится исключить.
  7. Таким образом, из "дополнительных" сведений остаются только 1) сведения обзорного характера - хотя бы просто перечисление самых динамично развивающихся сейчас технологий и какая-нибудь попытка классификации языков программирования; 2) какие-то основополагающие, фундаментальные вещи, афористические формулировки - квинтэссенция полувекового опыта программирования; 3) знания, относящиеся не к практике и даже не к теории, а скорее к "философии программирования".

Для практикующих программистов: да, я сам программист, я знаю, что "нормальный программист" не занимается изучением "философии программирования", и чаще всего вообще не замечает ее существования. Это - знания, приходящие с опытом, и программисту кажется, что он это всегда знал, а для первокурсника это вовсе не очевидно. Сюда относится, например, "инстинкт модуляризации" - стремление разнести функциональность по модулям, классам, функциям, аспектам кажется опытному программисту естественным, а для изучающего Паскаль оно непонятно.

Пока что больше вопросов, чем ответов...

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Комментарии (5) »

  1. Splinter пишет

    Октябрь 2, 2008 в 3:39

    Автор, может, и не гений… Но что большой талант – это точно!;)

  2. Alanko пишет

    Октябрь 2, 2008 в 4:55

    У меня в глазах пестрит от этого однообразия.

  3. Виктор пишет

    Октябрь 3, 2008 в 0:07

    Интересная статья. Спасибо!

  4. Rostislav пишет

    Октябрь 3, 2008 в 5:22

    Всегда приятно читать умных людей. Спасибо!

  5. Автор за кардоном пишет

    Октябрь 3, 2008 в 5:37

    Полезного много нашла для себя =)

RSS-лента комментариев к записи · Trackback URL

Оставить комментарий