Как обычно проходит олимпиада по информатике на нашем районе)
Заявляется допустим 50 участников. Приезжают 45. Через 15 минут после начала начинают выходить первые юные программисты с несколько озадаченным выражением на лице. Через полчаса уходит треть. Иногда уже половина. Через 2 часа остаются 5 монстров которые и остаются все допустимые по регламенту 4 часа. Кто-то из них получит какие-то баллы. Возможно. Может и нет.
Почувствуете мощь, с которой сейчас в наших школах растут кадры российской IT-элиты...
На прошлой неделе я и сам возил учеников на муниципальный этап олимпиады школьников по информатике. Есть повод рассказать интересующимся о процедуре ну и пару мыслей&наблюдений накидать.
За последние 15 лет олимпиада по информатике одновременно и сильно изменилась и осталась абсолютно прежней.
Что осталось неизменным, так это главная идея - олимпиада по информатике = олимпиада по программированию. Другого не дано. Неважно в каком ученик классе, в седьмом или одиннадцатом. Для получения баллов необходимо составить работающую программу на одном из языков программирования. Так у нас было всегда. Сейчас стало совсем безвариантно.
Что изменилось очень сильно - сама процедура. Еще лет 5-6 назад участникам раздавались задания на листочках. Теперь участники перед началом олимпиады получают логин-пароль для доступа на сайт олимпиады. Логинятся и читают задания на сайте. На сайт же и загружают файлы с решениями. Решение - скомпилированный исполнимый файл текстовый файл с кодом.
Решением задачи является программа, написанная на одном из следующих
языков программирования:
• Pascal
• C
• C++
• Java
• Python.
Кому интересно, при компиляции текста программы, которую участник сдает на проверку, жюри
использует вполне определенные командные строки для компиляции решений:
Компилятор | Командная строка |
GNU С 4.9 (MinGW) | gcc -O2 -х с –WI, --stack=67108864 <исходный файл> |
GNU C++ 4.9 (MinGW) |
g++ -O2 -х с++ –WI, --stack=67108864 <исходный файл> |
GNU C++11 4.9 (MinGW) |
g++ -O2 -х с++ -D_ _USE_MINGW_ANSI _STDIO=0- WI, --stack=67108864 --std=c++11 <исходный файл> |
GNU C++11 5 (Linux) |
g++ -O2 --std=c++11 -static <исходный файл> |
Visual C++ 2015 | cl /F67108864/O2 /EHs /TP <исходный файл> |
Java | javac <исходный файл> |
Free Pascal | fpc <исходный файл> |
Pascal ABC.Net 2.1 | pabcnetcc <исходный файл> |
Python 3.5 | python <исходный файл> |
Когда-то (лет 5-6 назад), школьники после завершения олимпиады оставляли за собой файлы с кодом и листочки с кодом и блок-схемами. Ученики расходились, а толпа коллег-информатиков начинала коллегиально проверять решения и раздавать баллы. Бывали жаркие дискуссии)
Теперь ничего интересного. Никаких интриг и мордобоя. Решения участников проверяются в 2 этапа:
- сначала бездушная система берет загруженную учеником прогу и подсовывает ей файлы с исходными данными. Решения системе разумется известны так что если творение шкодера вдруг выдает именно верное решение, то участнику начисляется БАЛЛ. Совершенно автоматически.
- набравшие баллы программы проверяются живыми экспертами
Вот так.
Скучно теперь стало на олимпиадах. В нашем муниципальном образовании - всего 58 школ. Из них - 34 в самом городе. Остальные - в окрестных поселках. Было врем, городские и деревенские олимпиады проводились отдельно. Теперь - все вместе собираемся в городе. В этом году из 24 сельских школ заявились на муниципальный этап всего 4 школы. Приехали фактически - только из 3.
Собственно, школьники никогда массово не осваивали программирование. В былые времена, когда преподаватели информатики сами проверяли работы, то балл ученику могли начислить просто за правильную структуру программы или за корректное применение команд. Вобщем, какие-то баллы кидали даже за неработающие алгоритмы и программы. Работающие проги встречались очень редко. Прога с реально правильным алгоритмом решения - это было уже призовое место как минимум.
Вот тогда было на олимпиаде общение с коллегами. Информатики района знали друг друга. Были вечные соперники принципиальные) Пока дети решали, коллеги обменивались опытом и точили кинжалы. Живое душевное общение вобщем) Преподавателей, которые реально умели программировать, всегда было очень мало, единицы, и они всегда охотно делились опытом и старались мотивировать остальных.
Как автоматизировали это дело, так общение окончательно рухнуло. Быстро выяснилось, что проводить отдельную олимпиаду для сельских школ - нецелесообразно. Слишком мало решений проходило фильтр автоматизированной проверки. Со всей определенностью вылезло - программировать в школах дети не умеют.
При работе с автоматизированной системой есть объективная сложность - участнику совершенно недостаточно найти правильный алгоритм решения задачи. Для того, чтоб система приняла решение, необходимо в программе ПРАВИЛЬНО реализовать ввод-вывод информации через текстовые файлы. Это - сама по себе отдельная задача с неочевидными решениями. Вот и получилось, если ранее ученики могли хотя бы алгоритм реализовать внятно и это решение могло быть оценено комиссией живых проверяющих преподавателей, то теперь ученику просто реализовать алгоритм - уже недостаточно. Вот и пошел дополнительный отсев деток без устойчивых навыков практического программирования.
Сам курс алгоритмизации и программирования в базовом курсе основного общего образования - одна четверть во втором полугодии 9го класса. Подготовить олимпиадника просто на уроках в школе - нереально от слова совсем. Потенциального олимпиадника по информатике надо выявлять как можно ранее, затаскивать на кружок и держать под контролем круглый год. И тогда успех не гарантирован.
Есть еще проблема. В школах преподаватели информатики просто сами не умеют программировать. Даже на простейшем уровне. И решения этой проблемы - не особенно видно. Я получил диплом педагога всего 3 года назад. В моей группе заочников из будущих преподавателей информатики умел программировать только один человек. Можно наверно порадоваться, что в школу работать все равно никто не отправился.
Хорошо, что в наше время талантливым деткам есть возможность раскрыться и реализоваться даже без толкового преподавателя. Самый лучший в программировании школьник который мне встречался, сам освоил Си. Без какой-либо помощи со стороны преподавателя.
Я сам толпу кружкистов своих первым делом отправляю на сайт Информатикс - сайт дистанционной подготовки к олимпиадам по информатике. Кто сможет разобраться и начать продвигаться там, тот реально чего-то стоит и с таким кадром надо работать точно.
Президент наш в последнее время неоднократно и определенно провозглашал курс на развитие информационного общества. Заявлял, что нам нужны хорошие программисты в товарных количествах.
Задача Президентом сформулирована, но вот решение наталкивается на проблемы еще на школьном этапе.
Комментарии
Ну вот... Кругом "платежеспособность"...
А активная жизненная позиция? А помощь ближнему? Путин вобще объявил следующий год Годом Волонтеров! )
Хороший ресурс Informatics. Тоже на нем работаю. И наконец-то появился отличный учебник Полякова и Еремина. На ресурсе есть раздел с задачами к учебнику. До этого вообще без учебника работала, фактически. Еще есть Cats похожий. У нас Олимпиады с его использованием проходят. Но эта тема, программирование, интересует и на должном олимпийском уровне доступна только небольшой части класса. И это нормально для такой области, как программирование. Давно пришла к выводу, что это направление требует определённых свойств мышления. До массивов и задач с их обработкой всё обычно идёт гладко. А этот первый барьер уже не все проходят. Дальше сортировки, записи, рекурсия. И редкая птица преодолеет динамические структуры и ООП. Но всему, что идёт после массивов нет места и времени в обычной школе. Только специализированные классы или дополнительные кружки.
А проблема олимпиады - это проблема ее отсутствия. Плохо то, что Информатику приравняли к Программированию. А вот когда будут олимпиады по ИНФОРМАТИКЕ? Хотя бы что-то в стиле Bebras.
У меня в школе учитель информатики не умела программировать.
Она где-то добыла книгу с готовым кодом для учителей и на доске (!) писала текст программы, чтобы мы потом их сами набрали на компе и видоизменили.
Почему нельзя было дать готовую программу или хотя бы распечатать на листочке я не знаю)
Так вот программирование я боялась как огня - у меня никогда не работала ни одна программа!
После окончания уроков я не могла изучать программирование: времени не было - нас заваливали кучей домашнего задания + надо было умудрить готовиться к ЕГЭ и выпускным экзаменам.
Я считаю главной проблемой нашего образования - это не желание или не понимание ценить время учеников. Зачем делать много уроков + заваливать объемными домашними заданиями?
Сейчас из школьной программы мало что помню.
Но так получилось, что в итоге я попала на факультет с программированием. Там инет поставили безлимитный, времени было вагон и тележка + лекции от умеющих программировать.
Выяснилось: программировать в целом легко и приятно, я была в числе лучших)
Годный срач. Ахтунг - пахнет трольчатиной! Автор, нет ли в обсуждении упырей? Сим повелеваю - внести запись в реестр самых обсуждаемых за день.
Какая прелесть… Было бы очень занятно публично потрясти сочинителей данного протокола по поводу комплекса мер, предпринятых ими для исключения ошибок типа false positives.
P.S. Отдельные товарищи воротят нос от gcc-6.4, староват де…
Так трясите. Не проблема.
Есть популярная площадка - Информатикс. Работает по этому принципу. Они наверняка будут рады позитивному общению с грамотным человеком.
Добавка. Хотя там отправляется текстовый файл с кодом.
Я бы на их месте с таким набором компиляторов побеспокоился о безопасности их системы :)
Для Linux они вообще асилили gcc:5.
Ну а попытки номинирования виндовза в качестве системы, пригодной для разработки попросту удручают.
ЗЫ: Печальнее только то, что педагогия застряла в далёком прошлом.
И авторы олимпиадных заданий досейчас не в курсе, что практически всё собирается (или как минимум *должно( собираться) посредством классической команды make.
Господи, о чём вы... можете не отвечать.
О костылях.
Начиная с MinGW, продолжая цыгвином, дэнвером и прочая.
Для общего развития процитирую новость от разработчиков лучшего процессора электронных таблиц:
Я даж не знаю. Это костыли? Это от сторонних энтузиастов, которые не в Microsoft работают, возможность вам за бесплатно создать и использовать окружение (в случае msys2, cygwin) и, опять же за бесплатно, получить кроссплатформенность ваших программ (в случае clang и MinGW), разрабатываемых под *n*x. Это было бы костылём, если бы эти всё перечисленные поделия выплыли из недр Microsoft.
То, что разработчики какой-то неизвестной, но качественной хрени что-то не осилили, - это их проблемы и к вопросу костыльности перечисленного вами вообще не имеет отношения, даже косвенного.
Это костыли.
«Кроссплатформенность» мягко говоря…. с особенностями.
И не стоит торопиться с натягиванием желаемых объяснений.
О чём это говорит? Только о том, что кто-то, кто работает не за зарплату, больше не хочет поддерживать версию Gtk+ для Windows. Приведите мне пример, когда разработчики Windows, работающие, кстати, за деньги, без проблем поддерживают работу собственноручно сделанных портов своих программ на Linux, например? Мне кажется, что таких портов с Windows на Linux ещё поискать надо. Так что ваше сравнение работает только в одну сторону, а в обратную сторону даже и сравнить не с чем.
Подавляющее большинство Windows ПО, мечты о портировании которого озвучивают некоторые несознательные граждане отличается свойством условной работоспособности.
И тут — практически непроходимый барьер.
В виде того факта, что в мире Unix практиковался немного другой подход к решению задачи.
Отягчённый ещё тем обстоятельством, что в Linux подсистема не только не разрабатывалась, но не только лишь все разработчики в курсе о её существовании.
ЗЫ: В обратную сторону хорошо говорят известные свидетельства того, что с старыми виндовыми бинарниками в современных версиях виндовоза пробле больше, нежели в актуальных дистрибутивах GNU/Linux проблем.
Олимпиадные задачи решаются в пределах одного файла. Если для решения олимпиадной задачи потребуется написать систему модулей, то чтобы использовать make, школьникам ещё нужно будет Makefile написать. Вы правда думаете, что это задача олимпиадника? Всё-таки олимпиада проверяет умение решать задачи, а не обладание прикладными профессиональными навыками. Вы бы ещё предложили в CVS-систему исходники заливать на олимпиаде, а без этого даже не проверять решение.
Здесь я исследую взаимосвязь подхода к решению задач, продвигаемого посредством олимпиад с практикой.
И если не преследовать цели утверждения принципа «забудьте всё, чему вас учили в школе…», то решение *этой* части задачи игнорировать нельзя.
Видели бы Вы, какие… опусы порождают мастера решения таким вот образом сформулированных задач при встрече с необходимостью полного цикла…
Творение одного ляхы мы разобрать (в смысле: заставить работать *правильно*) так и не смогли… ☹ Особенно обидно с учётом того, что титульная задача решена на уровне.
ЗЫ: Командная олимпиада, с проверкой результата из СКВ — *правильный* подход к решению задачи привития *правильной* Культуры разработки.
Более того: каждому начавшему изучение информатики — свой проект на школьном git-сервере! ☺
тогда не make а cmake
что-ж вы на полумерах?
В прошлом году (16-17й учебный год) имел опыт ведения кружка ротоботехники в обычной муниципальной средней школе.
Что наблюдал, учителя "боятся" компьютеров. И соответственно, детей заставляют относиться к ним как к священной корове. Не дай бог ни туда нажмёшь все сломается или вообще взорвётся. А компьютер это всего лишь инструмент, даже если что-то сломается, то решается всё перезагрузкой, ну или, если всё запущено, переустановкой операционки.
Поэтому, дети на уроках технологии вместо того, чтобы осваивать технику, под диктовку пишут тексты, о том как с ними работать.
Ну и из языков, начал со Scratch делали простые игрушки и мультики.
Потом немного processing, как переход к программированию на arduino
ну и далее Arduino ide, макетная плата, светодиоды, провода, пищалка, двигатели ну и сбор колёсных роботов как апофеоз усилий.
Хоть списосочный состав был 3 класса, но по факту, более менее регулярно, ходило 6-7 человек, из них с навыками программирования был всего один ученик.
Хочется надеяться, что данные занятия им чем то помогут в дальнейшей жизни, может быть сформирует интерес к данной области деятельности.
Т.е., заметка сводится к нытью о том, что теперь "не поговорить" и не протащить участника за кривую реализацию, но правильную идею. Беда-беда..
Олимпиада - на то и олимпиада, чтобы из 50 "случайных" осталось 5 "специальных". Остальные - либо пусть учатся, либо не суются.
Нытье о том, что умников вокруг много, а как дело доходит до реальных действий, так и пнуть не в кого)
Кружок для блатных элитариев ?
кружок для замотивированных будущих элитариев
(не путать с будущей элиткой - им не помогут ни кружки, ни гувернеры, это вам не на лендровере по улицам гонять...)
хм, вообще говоря автоматические системы проверки решений олимпиад по информатике появились уже очень давно, я сам такую сделал для школы в 11 классе
странно конечно, что разрешается использовать разные языки, раньше был только паскаль
если вдруг кто хочет попробовать свои силы в олимпиадном программировании рекомендую spoj.com, иногда захожу туда тряхнуть стариной и размять мозг)
Связать школьную программу по информатике и олимпиады в одну упряжку - да Вы, батенька, эстет. )
Ответ, собственно, озвучен (с цитатой я полностью согласен, только полагаю, что олимпиадника по предметам этой ветки надо готовить, не год, а лет 5):
Будущему программисту необходимо тратить на изучение своего предмета время (в т.ч. машинное), не влезающее ни в какие СНиПы. Поэтому подготовка программистов в рамках системы всеобщего образования является задачей не решаемой, её и не надо пытаться решить в этих узких рамках. "Толпа кружкистов" под вдумчивым наблюдением опытного специалиста-наставника - самое то. При том, что опытные и компетентные программисты, способные работать с несовершеннолетними в условиях, предоставляемых системой всеобщего образования - штучный товар. Отсюда и пляшем.
Вынесли же профессиональный спорт за рамки школы ? Вот так и здесь надо.
>> Связать школьную программу по информатике и олимпиады в одну упряжку - да Вы, батенька, эстет. )
Напрасно иронизируете) Нонче система образования позовляет достаточно гибко организовывать учебный процесс.
В курсе информатики на базовом уровне будущему кодеру ловить нечего.
Но ведьь есть - углубленный курс и профильный уровень. Это качественно иной подход и даже другой учебник.
Потом, когда такие вот узко-специализированные (и не обременённые ни системными знаниями, ни хотя бы достаточными навыками) кодеры приходят в производственную деятельность — и начинается самое грустное.
Так Вы не грустите так.
Четко сформулируйте - что Вам необходимо от системы школьного образования в плане подготовки грамотных кодеров? Лучше отдельным постом.
что? можно подумать диплом профильной специальности приличного ВУЗа, избавляет от грусти, у узкоспециализированного, по вашему мнению, олимпиадника по крайней мере есть логическое мышление
Просто отмечу факт дистанции от *декларации* существования «логического мышления» до *практической* достаточности оного.
А гибкость подготовить скрипача современной школе хватит? А в следующем году пианиста?
А очень надо? Востребовано?
Вполне возможно что школы с художественным уклоном этим и занимаются
Ну так школам с уклоном на программирование почему не быть? Мы то о всеобщем обязательном образовании говорим. Где программированию нет места. Ну не заточена классно-урочная система под это.
Кто может и хочет, пробивается. Моя дочка вышла в региональный тур по информатике (Москва), я ей горжусь.
Немотивированные и тупые НЕ НУЖНЫ. Это ОЛИМПИАДА.
Вышла в региональный тур совершенно самостоятельно? Никто с дочкой не занимался вовсе?
ну вот кстати думаю, что современные школьники благодаря интернету могут и без преподавателей обойтись, вот в моё время интернета не было и тут да сильно помогал преподаватель - находил задачи прошлых лет, повалял сидеть в компьютерном классе после уроков, приглашал своих друзей и бывших учеников, чтоб те рассказывали нам про разные аспекты программирования, отмазывал от других уроков перед соревнованиями =)
Чтоб только самостоятельно готовиться - надо удачливым гением быть. Это надо на каждом шагу велосипеды изобретать и тратить на это кучу времени.
Так на изобретении велосипедов мозг как раз и тренируется.
Это да) Доставляет много удовольствия. Вот только время уходит. На подготовку к сложным испытаниям уже может не хватить.
Если заниматься делом серьезно, не "jast for fan" а для результата, то тренер может оказаться критически важен.
Это Вы не копались унутрях некоторых *стандартных* компонентов *системного* уровне.
И не наблюдали их работы на достаточно правильно настроенной системе.
Практически да. На электив ходила и всё, дальше сама.
Круто. Гордитесь.
Удачи на региональном туре.
Нда. Бредятина. Тот кто придумал тестировать ребёнка как сбойного работа тому надо гвоздь в голову вбить - всё равно там пусто.
Хорошего программиста от плохого отличает как раз не умение быстро кодировать, а умение анализировать и синтезировать. Человек - не робот. Он имеет право на ошибку. Ошибка кодирования устраняется легко. Системная логическая ошибка очень трудно.
Проверка таки двухуровневая. Рабочие решения проверяют живые люди.
Алгоритм стучания по голове за ошибки как в алгоритме автоматической проверки (и его реализации), так и в конфигурировании ИС, реализующей функцию проработан и опубликован?
Непременно. Все матюки, которыми система стучит по голове участника, опубликованы в ооткрытых источниках и обязательны к имению перед глазами участника во всем минуты проведения олимпиадного испытания.
Никапли не шучу)
Вообще-то здесь речь идёт о стучании по голове не участника, а совсем наоборот.
Хотите задачку из моего блога? ☺
В моей статье речь идет о стучании по голове именно участника)
С учителями, особенно компетентными, большие проблемы и не только в информатике. Профессия учителя дезавуирована полностью, самые талантливые по совету медведева, ушли зарабатывать деньги, остались те, что работают на пенсии, ибо на 12 тысяч в месяц жить тяжело, либо те, кого нигде больше не берут.
Ну ну ну. Не надо так явно преувеличивать.
Профессиф учителя вполне уважаема в обществе. В школах появляются молодые специалисты, не менее талантливые и энергичные чем учителя старой закалки. ЗП 12 тыс - это уже в прошлом. Можно и грант получить дополнительно к зарплате.
Так что, отставить)
случайно никто не знает сайт с заданиями по html, что бы школьник сам мог прочесть теорию и выполнять задачки, а я бы уже разжевывал только то что не понятно и не получилось ? самый ужас, что нашел такой на латышском языке. на русском никак.
Страницы