Министерство образования республики Бурятия
Бурятский государственный университет
Колледж информационных технологий
(Реферат)
Выполнил: Павлов А.И.
Проверил:Цыбикова Т. С.
Улан-Удэ
2002
Оглавление
Проблемы олимпиад по информатике. 3
Постановка проблем методами наложения ограничений. 3
Ограничения на использование готовых средств. 5
Ограничения на «программирование». 6
Проведение олимпиад по информатике на основе тестов. 8
Тестовые вопросы олимпиады по информатике для старшей возрастной группы (X-XIклассы)9
Проблемы олимпиад по информатике
При проведении олимпиад по информатике различного уровня в течение длительного периода времени выявился целый ряд отрицательных моментов, связанных как с организацией самих олимпиад, так и с преподаванием информатики в школах. Приведем здесь некоторые из них.
1. Нередко отмечается «запущенность» некоторых участников олимпиад: их образование и развитие происходит стихийно, и иногда им даже незнакома часть материала школьного курса информатики. Эта стихийность проявляется в замысловатых приемах типа ELSENEXT или даже ELSEDIM на фоне незнания типовых методов решения задач. При решении простых задач такие школьники демонстрируют особо изощренные и сомнительные «трюки», но перед более трудной задачей становятся в тупик. Их внимание направлено не на алгоритмизацию как особый вид человеческого мышления и деятельности, не на постановку и решение задач, а на язык программирования (часто — доступную версию Бейсика). Но отметим их интуитивную тягу к иным, нестандартным путям решения задач.
2. По мере исчерпания тематики задач, распространения профессиональных ПЭВМ, мощных языков наметилась тенденция к решению на олимпиадах громоздких задач. Тексты к ним тоже громоздки. Проверяющие не успевают взглянуть на решения и «гонят» тесты. А в них, особенно если частные случаи очевидны, «хитрец»можетнаписать:
ЕСЛИ N = I то ОТВЕТ := 1
ЕСЛИ N = 2 то ОТВЕТ := 3
ЕСЛИ N = 9 то ...
(авось угадаю парутестов)
3. Быстродействие различных языковых трансляторов,не говоря уже оразличных типах школьной ВТ, существенно различается. Поэтому единое ограничение по времени на тесты ведет к дискриминации, например, участника, работающего на «Корвете», По сравнению с тем, кто имеет доступ к ППЭВМ.
4. Возможности языков также сильно отличаются. Например, удобства процедур в Паскале и в «старом» Бейсике несопоставимы — и снова неравенство шансов.
Постановка проблем методами наложения ограничений
По отношению к школьникам цели олимпиады две: выявить и способности, и образованность. Сформулируем их более точно:
1. Выявить школьников с развитыми способностями к логико-алгоритмическому мышлению. Неразвитость этого мышления может быть замаскирована использованием мощных готовых программных средств или библиотек мощного языка. Так, команда SORT в среде DBASE позволяет вообще не уметь составлять алгоритмы сортировки. Возможно, этим объясняется такой парадокс: школьники, знающие Турбо Паскаль, нередко хуже решают небольшие «хитрые» задачи, чем те, кто работает на вильнюсском Бейсике. Борьба с этим Бейсиком — хорошая школа выживания.
2. Выявить школьников образованные, с развитым системно-комбинаторным мышлением, что должно проявляться в умении использовать не только по назначению, но и оригинально, нестандартно, творчески разнообразные готовые программные средства и команды и уметь избегать программирования. Отсутствие такого стиля мышления и образованности, кругозора может быть замаскировано высоким уровнем техники «голого» программирования.
В основе предлагаемой нами концепции лежит предположение о том, что в сущности своей умственная деятельность и пользователя готовых ПС, и программиста однотипна и не зависит от мощности ВТ и ПС.
Целью этой деятельности всегда является приведение компьютерной среды в желаемое состояние при ограниченных средствах: конечное число команд и реализованных алгоритмов и функций, имеющиеся в наличии память и время. Новые поколения ЭВМ и языков программирования лишь снимают старые ограничения, но человек неизбежно наталкивается на новые.
Основной идеей предлагаемой концепции является то, что именно при преодолении ограничений не только проявляются творческие способности, но и, более того, происходит развитие человека. Так, ограниченность возможностей когтей и зубов древнего человека привела к появлению кремниевых ножей.
Попытаемся изложить смысл нашей концепции на примере спорта, где ограничения возникли давно и не являются чем-то диковинным, а составляют неотъемлемую часть всех соревнований: прыгуны в высоту не используют стремянку, штангисты — рычаги, марафонцы — велосипеды. Как пример постановки проблемы в спорте методом «искусственных» ограничений представим следующую ситуацию: перед началом велогонок у всех велосипедов удалены передние колеса.
Конечно, участник может сесть в рейсовый автобус (запрещенное средство). Он может и пойти пешком (в информатике — обойтись без ЭВМ). Но нас сейчас интересуют только те, кто сумеет:
1) отремонтировать велосипед, изготовив недостающие части из подручного материала (написать процедуры, расширяющие «зауженный» ограничениями язык);
2) проехать это расстояние на одном колесе, ничего не изобретая и неконструируя (нестандартно использовать имеющиеся средство);
3) вообще изобрести и изготовить новый велосипед (неожиданно для судей). Возвращаясь к информатике, отметим, что самая тривиальная задача может стать необычайно трудной, если условие дополнить рядом ограничений на используемые средства.
Такой прием порождения задач не только сильно упрощает условия, но и облегчает контроль. Но теперь при проверке нужно внимательно просмотреть и листинг. Это вообще поучительно для члена жюри любого уровня, но пока делалось, к сожалению, редко: надо было успеть протестировать задачи.
При введении ограничений важны уровень и полнота их системы: слишком сильные ограничения сделают задачу неразрешимой; слишком слабые — тривиальной, нетворческой; неполная система ограничений дает возможность найти «лазейку» — «законно» воспользоваться «незаконным» приемом (в нашем примере — уцепиться за бампер автобуса).
Ограничения на использование готовых средств
Признаком способностей к алгоритмизации мы полагаем умение обходиться малыми средствами, но комбинировать их свободно, расширяя свой арсенал, в сущности — язык.
Поэтому вместо очередной дискуссии о том, «чей» язык лучше, предлагаются ограничения, которые, во-первых, выравнивают условия для участников, а во-вторых, сами по себе являются источником задач, в том числе и олимпиадных. Так, например, при любом языке реализации можно запретить:
1) GOTO и любые команды циклов (FOR, WHILE, REPEAT, заодно «пострадают» и команды типа REPLACE .. FOR из сред DBASE);
2) все функции и процедуры с параметрами, кроме ввода-вывода;
3) ассемблер, машинные команды (во избежание обхода «снизу»);
4) непосредственное обращение к памяти (PEEK, MEM и др.).
Этим выравниваются возможности процедурных языков. Остаютсярекурсия без параметров и условные команды. Этого достаточно для реализации любой конструкции языка. Кроме того, это сближает возможности обычных языков программирования с «насквозь» рекурсивными средствами алгоритмизации для исполнителей проекта «Пилотные школы». В конкретных случаях эти ограничения могут быть ослаблены или расширены автором задачи. Но вводимые ограничения должны быть тщательно взвешены, совершенно прозрачны для жюри и участника и в совокупности однозначны и непротиворечивы.
Типичный прием построения задачи — запретить операцию, функцию и предложить реализовать ее любыми оставшимися средствами. Тем самым выполняется и внутрипредметное моделирование в стиле методики учебника А. Г. Кушниренко и др.
Пример1.
Составить алгоритм вычисления А´В (для простоты при В>=0. А и В - целые). Кроме указанных выше ограничений запрещается умножение и деление «в лоб».
Решение на «старом» Бейсике может быть таким
10 'Умножение А * В без циклов и goto и * | |||
20 PRINT " Введите множители " | |||
30 INPUT А, В | |||
40 M1= А | ‘передать параметры | ||
50 М2 = В | ‘ | ||
60 R = 0 | ‘накопитель произведения | ||
70 GOSUB 110 | ‘ | ||
80 PR = В | ‘забрать ответ | ||
90 PRINT " произведение = "; PR | |||
100 END | |||
110 IF М2 = 0 THEM RETURN | ‘подпрограмма для R:=R+M1*M2 | ||
120 М2 = М2 – 1 | |||
130 R = R + Ml | ‘умножение сводится сложению | ||
140 GOSUB 110 | ‘цикл через рекурсию | ||
150 RETURN | ‘------ |
Едва ли это олимпиадная задача, скорее — иллюстрация стиля программирования в условиях «искусственных» ограничений.
Если не запретить использование функций, возможен обход «сверху» в таком стиле:
В = INT(ЕХР(LOG(A) + LOG(B) + 0.5))
что тоже неплохо, но не выявит умения алгоритмизации. Это уже противоположный подход — использование готовых алгоритмов. Другой пример – постановка явно рекурсивной задачи при запрете рекурсии. Формально запрещены вызовы из подпрограмм, все остальное — можно, и особенно — желанное для некоторых GOTO...
Ограничения на «программирование»
Признаком другого стиля мышления (назовем его пользовательским, в отличие от логико-алгоритмического «программистского») можно считать избегание программирования, стремление применить к своей задаче готовые средства, а если они не годятся — найти нестандартное, оригинальное применение другим доступным средствам, ведущее к цели, снова проявить способность к творчеству.