Олимпиада по информатике. Муниципальный этап

Аватар пользователя prepod

Как обычно проходит олимпиада по информатике на нашем районе)

Заявляется допустим 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 года назад. В моей группе заочников из будущих преподавателей информатики умел программировать только один человек. Можно наверно порадоваться, что в школу работать все равно никто не отправился.

Хорошо, что в наше время талантливым деткам есть возможность раскрыться и реализоваться даже без толкового преподавателя. Самый лучший в программировании школьник который мне встречался, сам освоил Си. Без какой-либо помощи со стороны преподавателя.

Я сам толпу кружкистов своих первым делом отправляю на сайт Информатикс - сайт дистанционной подготовки к олимпиадам по информатике. Кто сможет разобраться и начать продвигаться там, тот реально чего-то стоит и с таким кадром надо работать точно.

Президент наш в последнее время неоднократно и определенно провозглашал курс на развитие информационного общества. Заявлял, что нам нужны хорошие программисты в товарных количествах.

Задача Президентом сформулирована, но вот решение наталкивается на проблемы еще на школьном этапе.

Авторство: 
Авторская работа / переводика
Комментарий автора: 

Вобщем, умных талантливых деток в школах наших много. Те, у которых есть талант именно в программировании - такие тоже не редкость. Вот только есть пара проблем, которые мешают талантливым детям раскрыться.

Первое и главное - у детей просто нет мотивации трудиться и осваивать сложные концепции вне школьной программы.

Второе - фактически полное отсутствие в школах компетентных хотя бы в основах программирования преподавателей информатики.

Для организации дискуссии предлагаю добавлять в список значимые проблемы и предлагать способы их решения.

Комментарии

Аватар пользователя prepod
prepod(8 лет 10 месяцев)

На сайте Информатикс показывают время решения одной и той же задачи кодом на разных языках. Паскаль - самый быстрый обычно.

Аватар пользователя AnGeL_Knight
AnGeL_Knight(8 лет 6 месяцев)

Девять лет назад на общероссийской (или северо-запад... не помню уже...) в Питере Делфи был одним из вариантов.

Аватар пользователя prepod
prepod(8 лет 10 месяцев)

>> паскаль - это типа legacy

Паскаль - идеально подходит для преподавания основ программирования обычным школьникам в возрасте 15 лет. А таких обычных - основное число. Думается мне, классический Паскаль всегда будет актуален в школе. Да и в конторах поделки для сотрудников будут лепить не Делфи а не на Си++ ваять) Так что Паскаль и во взрослой жизни вполне может пригодиться.

Аватар пользователя mk2
mk2(8 лет 6 месяцев)

Ну, legacy в смысле для олимпиадников и тех, кто серьезно в программирование уходит. Набросать по-быстрому легче на питоне, например.

Аватар пользователя prepod
prepod(8 лет 10 месяцев)

Щас движуха сильная за продвижение питона в школы идет.

Поляков (один из авторитетных авторов учебников) новый учебник выпустил. Там в 10-11 классах - питон.

Аватар пользователя И-23
И-23(8 лет 8 месяцев)

Стесняюсь спросить: *какой* питон?

Аватар пользователя morbo
morbo(8 лет 3 месяца)

Для школьников разница между Python 2.7 и Python 3.x незначительна. В школьном учебнике эту разницу можно свести к минимуму и стараться давать только те вещи, которые одинаковы в обоих вариантах языка.

Или вы думаете, что школьникам рассказывают про метаклассы и функциональное программирование с лямбдами и замыканями?

Аватар пользователя И-23
И-23(8 лет 8 месяцев)

Я утверждаю, что без рассмотрения проблемы кодировок школьные учебники будут плодить ереси.

Столь же порочно требование нивеллирования различий.
Учебник должен отталкиваться от живой практики.

Аватар пользователя prepod
prepod(8 лет 10 месяцев)

Живая практика ваша - как-то уж очень живая. Оттолкнешься от такой, а она уже сдохла или мутировала хрен знает во что.

 

Аватар пользователя И-23
И-23(8 лет 8 месяцев)

Это представление основывается на недостаточно высоком уровне абстракции.

Ну и хрестоматийное: знание некоторых принципов освобождает от необходимости заучивания многих фактов.

Аватар пользователя prepod
prepod(8 лет 10 месяцев)

В школе совершенно естественно делают упор на хрестоматийное освоение некоторых базовых принципов - ввод-вывод/условие/цикл/массивы. Какие еще базовые принципы необходимы школьнику в рамках курса основ алгоритмизации и программирования?

Аватар пользователя mk2
mk2(8 лет 6 месяцев)

Посмотрел - на самом деле например codeforces разрешает сдавать на javascript. Не знаю правда, как это устроено.

Аватар пользователя ku
ku(10 лет 1 месяц)

Мне более странным кажется, что фортрана нет.

В научной среде он вполне жив.

Аватар пользователя roman.kuvaldin
roman.kuvaldin(12 лет 5 месяцев)

Только там он пожалуй и жив, среди людей, которые его в восьмидесятые в институте изучали.

А на практике - в этом тысячелетии на нем новые системы не пишут. Сейчас в моде функциональное программирование

Аватар пользователя ku
ku(10 лет 1 месяц)

К нему много расчетных библиотек. И новые пишутся. Хотя питон, пожалуй, догоняет.

Производительность, как это ни странно, у фортрана хорошая.

Аватар пользователя hardknap
hardknap(11 лет 7 месяцев)

Есть биндинги этих библиотек для других языков. Поэтому нет смысла совсем уж ограниченный и устаревший язык использовать.

Аватар пользователя morbo
morbo(8 лет 3 месяца)

Современные варианты фортрана алголоподобны. Проще говоря, современный фортран - это паскаль с немного другим синтаксисом.

Аватар пользователя Aijy01
Aijy01(11 лет 7 месяцев)

А можно тупой вопрос: что такого может фортран, что не может "школьный" PascalABC ?

Аватар пользователя hardknap
hardknap(11 лет 7 месяцев)

И тот и другой эквивалентны в плане выразительной силы.

Аватар пользователя mk2
mk2(8 лет 6 месяцев)

Brainfuck так-то тоже Тьюринг-полный.

Аватар пользователя mamomot
mamomot(11 лет 4 месяца)

А где, в каком районе, была Олимпиада...

Мой младший сын был в воскресенье на одной из них...

Комментарий администрации:  
*** Уличен в том, что обзывает людей ("обиженками", "хохло-нечистью" и т.п.), а потом пишет администрации жалобы вида "в ответ на мое крайне корректное обращение..." ***
Аватар пользователя prepod
prepod(8 лет 10 месяцев)

Я живу Татарстане.

Как успехи и впечатления у сына?

Аватар пользователя mamomot
mamomot(11 лет 4 месяца)

Он заказывал Пайтон-2 и Си++, а ему на Олимпиаде поставили (рассадили за случайные компьютеры) Пайтон-3, Паскаль и Кумир... Это - Москва, СВАО...

Комментарий администрации:  
*** Уличен в том, что обзывает людей ("обиженками", "хохло-нечистью" и т.п.), а потом пишет администрации жалобы вида "в ответ на мое крайне корректное обращение..." ***
Аватар пользователя prepod
prepod(8 лет 10 месяцев)

С на за неделю потребовали предоставить заявку на компилятор и IDE.

У меня один заказал java и eclipse.

Обеспечили.

Аватар пользователя Weard
Weard(6 лет 6 месяцев)

Паскаль не самый худший вариант, имхо )

Комментарий администрации:  
*** Отключен (лидер бан-рейтинга, провокатор) ***
Аватар пользователя prepod
prepod(8 лет 10 месяцев)

Паскаль - вобще идеальный вариант для школьника.

Просто если ученик все время готовился и программировал на питоне или Си, а ему вдруг рандомно выдали Паскаль, то это сразу провал.

Так быть не должно. Участника должны обеспечить тем, что ему удобно.

Аватар пользователя roman.kuvaldin
roman.kuvaldin(12 лет 5 месяцев)

А потом школьник заканчивает учебу и с удивлением выясняет, что вакансии все на яве, скале, питоне и яваскрипте. А про паскать в продакшене последний раз в начале двухтысячных слышали, да и тот Дельфи назывался

Аватар пользователя Weard
Weard(6 лет 6 месяцев)

А чего, мой первый коммерческий проект на дельфе написан, до сих пор работает и деньги приносит )

Небольшие, конечно, проекту 10 лет уже, но не в убыток.

 

Комментарий администрации:  
*** Отключен (лидер бан-рейтинга, провокатор) ***
Аватар пользователя roman.kuvaldin
roman.kuvaldin(12 лет 5 месяцев)

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

P.S. У Вернора Винджа в серии "Глубина в небе" у главного героя была специальность "археолог ПО". Весьма нужная, с учетом того что переходы между звездами были релятивистскими, и большую часть времени экипаж спал в гибернаторах.

Аватар пользователя prepod
prepod(8 лет 10 месяцев)

какая проблема освоить синтаксис любого из этих языков? Если человек разобрался в школе с понял хотя бы как реализовывается и работает сортировка в числовом массиве - то освоит и плюсы и питон и пхп. Что потребуется

Аватар пользователя Dreka
Dreka(8 лет 3 месяца)

это не проблема , это Большая проблема если работаешь на одном языке , перепрыгивать на другой синтаксис

всё что делается на автомате в одном , вызывает раздражение в другом

то цикл for отменят ( kotlin ) , то изменят порядок следования тип-переменная в заголовек функции, то отменят трай-кэтч на паник (go)..вроде как бы по

мелочам , а целом получается другая картина.

 

Аватар пользователя Weard
Weard(6 лет 6 месяцев)

это есть.. я много писал на джаве, перешел на сишарп, и вот знаете, что-то меня в джаве стало раздражать. Не то, чтобы отвращать, но раздражать. Хотя синтаксис похож.

Комментарий администрации:  
*** Отключен (лидер бан-рейтинга, провокатор) ***
Аватар пользователя Dreka
Dreka(8 лет 3 месяца)

а новичёк котлин, он вроде как подзамена жавы?

я в бою не пробовал , так каляки маляки.

Аватар пользователя roman.kuvaldin
roman.kuvaldin(12 лет 5 месяцев)

С процедурного паскаля - и в функциональную скалу? Весь мозг отобьешь, они совершенно не похожи.

Ну и опять же - придется тратить дополнительно несколько месяцев на изучение. Хотя можно было бы изучить их во время, бессмысленно потраченное на изучение паскаля.

 

Аватар пользователя prepod
prepod(8 лет 10 месяцев)

Не катит аргумент.

Надо понимать цель школьного курса основ алгоритмизации и программирования.  Тут цель - именно дать возможность ВСЕМ ученикам в классе сами принципу построения алгоритмов и сами принципы работы базовых конструкций - условие и цикл.

В паскале - строгая типизация, понятный ввод-вывод, отдельный блок определения переменных. Все для того, чтоб не стреляли себе в ногу и не теряли темп при освоении процесса программирования.

Кто разберется - легко перейдет на другой язык.

А на функциональный с любого императивного переходить весело. Это ведь другое мышление, иная философия. Ты же не предложишь всей массе школьников начинать со скалы?

Аватар пользователя roman.kuvaldin
roman.kuvaldin(12 лет 5 месяцев)

Только в функциональных языках не модно писать процедурные циклы. Там поток данных, map, filter, reduce, рекурсия...

Аватар пользователя mamomot
mamomot(11 лет 4 месяца)

Сын говорит, что Татарстан - один из самых сильных регионов по информатике...

Комментарий администрации:  
*** Уличен в том, что обзывает людей ("обиженками", "хохло-нечистью" и т.п.), а потом пишет администрации жалобы вида "в ответ на мое крайне корректное обращение..." ***
Аватар пользователя prepod
prepod(8 лет 10 месяцев)

В Набережных Челнах информатика почти во всех школах с 5го класса. И уже давно. Знаю просто.

В Казани и Набережных Челнах - инновационные площадки.

Преподавателей информатики поддерживают, бывают гранты хорошие. Но в сельских районах - не спасает.

Аватар пользователя mk2
mk2(8 лет 6 месяцев)

О! Я тоже оттуда. Что думаете про Иннополис? У них тоже в последнее время сборы появились.

Аватар пользователя prepod
prepod(8 лет 10 месяцев)

А чего про него думать) Попасть туда не просто как бы) Сборы конкурсы всякие - дело хорошее но таки не бесплатное.

"Байтик" еще есть. Хороший лагерь в Казани. Тоже не бесплатный) У меня пару раз ученики получали путевки за участие в конкурсах республиканских. Хвалили очень.

Аватар пользователя Boba
Boba(10 лет 1 месяц)

Мда. В моё время информатики не было. Но на олимпиады по математике и физике конкурс от школы был. А уж, учась в физмате, смог пробиться на республиканскую олимпиаду, только выиграв конкурс в "Кванте".

Аватар пользователя Weard
Weard(6 лет 6 месяцев)

у меня уже в 82м была (Минск). Правда, компьютеров не было ) Под конец появился один, то-ли "вектор", то-ли "корвет", уж не помню, очереди до ночи на него были. Но были программируемые калькуляторы, Б3-34

Комментарий администрации:  
*** Отключен (лидер бан-рейтинга, провокатор) ***
Аватар пользователя Muller
Muller(12 лет 4 месяца)

Когда учился я, главной задачей 5-летнего курса информатики официально считалось освоение Microsoft Office. Кто хотел программировать - осваивал сам, в школе только учили по минимуму Паскаль. Хотя школа (московская) считалась очень сильной и шикарно оснащенной, у нее было аж 20 учебных компьютеров, из них 10 с Windows. А про олимпиаду вообще никто не слышал.

Хорошо, что учат.

Аватар пользователя prepod
prepod(8 лет 10 месяцев)

Ну вот, если уж в московских школах возможны проблемы с преподаванием основ программирования, то что говорить о провинции.

А вобще, основы программирования - обязательная часть курса информатики. Должна преподаваться в соответствии с государственным стандартом.

Аватар пользователя AquariusStar
AquariusStar(6 лет 6 месяцев)

По информатике у нас в школе была некоторая дыра. Дело потихоньку залатывалось со средней школы. И более-менее сносным информатика стала уже на старших классах. Правда, в это время я уже самостоятельно изучал языки программирования Visual Basic.NET и Java.

Мне кажется, что это у нас так уже с советских времён. Возможно, это так повлиял Хрущёв, назвав кибернетику и информатику лженаукой. Да и вычислительную технику с программированием серьёзно изучали только в ВУЗах. Здесь надо базовую часть знаний скинуть с ВУЗов в школы, а в ВУЗе переходить к более сложному уровню программирования. Поскольку теперь программирование является необходимым минимумом каждого инженера или конструктора.

Аватар пользователя Weard
Weard(6 лет 6 месяцев)

Вы не правы, после хруща был мощный задел и по элементарной базе, и по своим разработкам. И языки свои были и операционки. А вот убили отечественную компьютерную отрасль при Горби. И при нем же принято решение о поставке в СССР MS Dos, Windows и американских компьютеров суммой аж на 20 млрд догдашних долларов. Вот это нашу отрасль и доканало.

Комментарий администрации:  
*** Отключен (лидер бан-рейтинга, провокатор) ***
Аватар пользователя Muller
Muller(12 лет 4 месяца)

Брежневу нужно сказать спасибо. "Обезьяний закон" о прекращении самостоятельных разработок компьютеров был принят в 1965 году, Его реальная цель - унификация советской и американской элементной базы и стандартов в цифровой электронике. Лично я считаю, что это решение было увязано с участием СССР в лунной афере, и американцы в порядке оплаты через третьи руки передавали до конца 70-х советской стороне оснастку, технологии и программное обеспечение (а возможно и химическое сырье и полуфабрикаты) для развертывания производства электроники. Заодно накрепко привязали электронную отрасль СССР к себе. Даже вся советская рассыпуха скопирована с американской, не говоря уже о микросхемах.

Аватар пользователя AquariusStar
AquariusStar(6 лет 6 месяцев)

Нет, отечественные ЭВМ умирали уже с 60/70-х годов. Уникальный компьютер Сетунь вам напомнить? Или клоны IBM System/360, который производился в США аж 1964 года? Я уже не говорю про поздние ZX Spectrum и персоналки PC x86. Советские операционные системы тоже были клонами зарубежных.

Аватар пользователя morbo
morbo(8 лет 3 месяца)

БЭСМ-6 на транзисторах в 60-е, Эльбрус-1 на логических микросхемах в 70-е, М-13 на больших интергральных схемах в 80-е, компьютер БК-0010, который некоторыми экспертами считается одним из первых в мире полностью 16-битных персональных компьютеров. В СССР была техника мирового уровня, но её было мало. Ставка была сделана на клонирование западной техники.

ZX Spectrum и в сравнение с БК-0010 не шёл по возможностям, но это был дешёвый игровой компьютер с цветной графикой, множеством готовых игр и поэтому на него был спрос.

Советские операционные системы - это какие? Если западные компьютеры клонировались с целью запускать на них западное программное обеспечение, то операционные системы были не клонами, а цельнотянутыми западными. На отечественных компьютерах использовались самописные операционные системы. Беда была в том, что их было много и они были несовместимы между собой. Именно с целью унификации, чтобы никого из своих не обидеть, и были приглашены "варяги". В результате получилось ровно наоборот - своих же и обидели.

Аватар пользователя AquariusStar
AquariusStar(6 лет 6 месяцев)

Эльбрус был исключением, который чудом выжил благодаря военным. Современный Эльбрус и есть потомок Эльбрус 3. А остальные уникальные наработки так просто и спустили в утиль. Было мало потому, что наше правительство не было заинтересовано в нём.

Пусть и дешёвый, но был массовым продуктом, который можно не только поиграть в игры, но и учиться программированию на Фортране (или Бейсик?). А этого было и достаточно для школ. Можно было бы реализовать для советских школьников свои советские персональные компьютеры. Отсюда могли бы в разы подтянуть качество роботехники.

Были разные операционные системы, решающие часть проблем организации рабочего места. Но самым удачным признан Multics - дедушка семейства Unix.

Хотя на западе тоже было множество различных несовместимых между собой компьютеров. Выигрывал только тот, кто преуспел на продажах и сервисах к ним. Но переносимость по-прежнему была плохой, пока в мир не пришёл язык программирования Си. Наши тоже могли бы решить эту проблему, договорившись между институтами об универсальном языке программирования для различных компьютеров. А получилось как всегда.

Страницы