четверг, 28 декабря 2017 г.

Мысли с олимпиады

Был наблюдателем на олимпиаде по информатике. Ходил и смотрел что и как делал каждый из участников.
Грустно. Очень грустно от увиденного... :(
Я могу понять учителей, к-рые направляют на олимпиаду малоподготовленных учеников - "Пусть попробуют что и как на олимпиаде делается". Но я не могу понять почему не показать "что и как на олимпиаде делается" в течении года? Ведь системы работы с олимпиадными (аналогичными олимпиадным) работами работают в Интернете круглый год, 24 часа в сутки. Что мешает использовать эти системы для встраивания их в учебный процесс (здесь должен быть модный трендовый термин "смешанное обучение" - получите :) )?
Ладно. Пусть пробуют.
А вот то что я до сих пор не могу понять - почему на уроках не учат писать текст программ таким образом чтобы его можно было бы потом читать. Ведь значительной частью расходов в жизненном цикле программ является её сопровождение (исправление ошибок, модификация). А для этого текст надо прочитать (хорошо если это делает сам автор программы, но чаще всего автор перешёл на другую работу, проект и "читателем" является другой разработчик). И вот тут мы нарываемся на "коекакерский" текст: имена переменных ни о чём, текст не структурирован и идёт сплошной портянкой, комментов ноль целых фиг десятых.
В настоящее время очень часто используют для решения что-то типа Pascal ABC. И это с одной стороны благо - система автоматом формирует структурированный текст. Но с другой стороны, при отсутствии подобной среды, никто не пишет структурированный тест. Почему? Потому что не видит смысла в этом? Наверное да. Вспомните уроки. Обычная урочная задача умещается на страничке тетрадки. И автор помнит что он писал. А теперь прикинем/вспомним сколько учеников в стандартной схеме урока читает чужой код, правит его, модифицирует? Практически никто. И потому нет смысла структурировано писать текст, к-рый написал, сдал и забыл. Цикл жизни нулевой - родился и умер. Нет смысла....
Из 12 наблюдаемых олимпиадников только один писал комменты. Ох как меня обрадовало когда я увидел что парень использует комментарии. Но когда я подошёл ближе, то моя радость поблекла - комментарии были типа "а - число ходов, с - длина пути....". Ребята.... Ну нельзя же так... Казалось бы дай "говорящие" имена переменных, функций и тогда не надо писать себе памятку что в какой переменной у тебя лежит.  И любой твой соавтор может сразу врубиться в твою программу.
Вот выше два примера и в обоих примерах говорится о том что кто-то другой приходит и читает, модифицирует твой код. Но практически в школе нет этого другого и "нет смысла"...
Кто из учителей говорит о таких вещах? Ооочень редко и на методобъединениях информатиков тоже не говорят.
Почему я говорю о таких, как мне часто говорят, "мелочах"? Да потому что потом эти ученики приходят на производство и начинается ломка юных гениев. В настоящее время программный продукт не делается в одно лицо. В настоящее время программный продукт - это совокупность действий группы разработчиков. А они не готовы. Они всё время делали нечто исключительно для себя. И это беда...