21. АНАЛИЗ КОНЦЕПЦИЙ СОВРЕМЕННОЙ 2ИНФОРМАТИКИ И НОВЫХ 2ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
В наше время повсеместного распространения электронных вы числительных машин (ЭВМ) человеческие знания о природе информации приобретают общекультурную ценность. Этим объясняется интерес исследователей и практиков всего мира к относительно молодой и быстро развивающейся научной дисциплине - информатике.
На сегодняшний день информатика выделилась в фундаментальную науку об иформационно - логических моделях, и она не может быть сведена к другим наукам, даже к математике, очень близкой по изу чаемым вопросам. Объектом изучения информатики являются структура информации и методы ее обработки. Появились различия между инфор матикой как наукой с собственной предметной областью и информаци онными технологиями.
Технология, в отличии от науки, предполагает созидательную деятельность для получения определенных результатов человеком, который использует данную технологию.
Можно выделить некоторые информационные технологии, базирую щиеся на применении компьютера, без которых человек не может обойтись в современном мире. Это универсальные технологии, осно ванные на работе с текстовыми редакторами, электронными таблица ми, базами данных, графическими редакторами, а также мультимедиа и телекоммуникационные технологии.
По мимо этого, существует множество специализированных компьютерных технологий (например, редактирование, компьютерная верстка, бухгалтерский учет, создание компьютерной анимации, рек ламы, проектирование в архитектуре, моделирование одежды и многое другое). Еще один важный раздел компьютерных технологий - это
компьютерные технологии обучения, представляющие колоссальные возможности для повышения эффективности занятий, придания им ин тереса и динамичности. Очевидно, что знания этих технологий долж на давать школа. По мере распространения компьютерной техники вся совокупность взаимодействующей с ней людей все более четко разде ляются на две большие группы:
1) системные и прикладные программисты, разрабатывающие сис темы математического обеспечения и пакеты прикладных программ для решения больших классов задач из самых различных отраслей; 2) широкий круг пользователей.
Для представителей первой группы написание программ на тех или иных языках или непосредственно в машинных кодах является обязательной составной частью их профессиональной деятельности. Более того, продуктом деятельности системных программистов явля ются средства общения с ЭВМ, предназначенные для широкого круга пользователей. Общение пользователей с ЭВМ протекает в рамках специализированных, заранее разработанных программных систем, ис пользующих привычную для них профессиональную и бытовую термино логию.
Таким образом, для значительного большинства людей, исполь зующих ЭВМ в своей работе или быту, знакомство с конкретными язы ками и системами необходимо не в большей степени, чем телефонному абоненту нужны технические подробности работы телефонного аппара та и АТС.
В тоже время, с точки зрения пользователя, существуют глубо кие и неглубокие уровни применения компьютера. Если человек ис пользует компьютер для печатания какого либо документа, то компь ютеру ничего н известно о содержательной стороне решаемой пробле мы и используется он только как "умная" пишущая машинка с провер кой орфографии. Если же работающий за компьютером специалист со
общает ему сведения о содержании задачи, о ее понятиях и объектах (архитектор, составляющий проект дома, или предприниматель опти мизирующий свой подход), то пир таком глубоком применении компь ютера возможна значительно более высокая эффективность его ис пользования. А для этого необходимо нечто большее, чем "общий язык с компьютером", - нужна общая мысль, понятия, отдельный стиль мышления и навыки умственных действий. В настоящее время такой набор необходим практически каждому специалисту в любой из отраслей науки и техники. Ниже рассмотрены наиболее существенные из них.
Навык планировать структуру действий, необходимых для дости жения заданной цели при помощи фиксированного набора средств час то называют умением алгоритмически мыслить, хотя термин "структу ра действий" несколько шире классического определения алгоритма. Деятельность пользователя по описанию алгоритма решаемой за дачи состоит в том, что видя перед собой конечную цель - резуль тат, он конструирует программу (в широком смысле слова), план действий, представляющий последовательность отдельных более или менее стандартных операций. То, что в обиходе называют иногда программистскими способностями, определяется в первую очередь умением представить сложное действие в виде организованной сово купности простых. При этом, пользователь должен спланировать не только сами действия, но и используемые при этом информационно технические ресурсы.
Человек, использующий накопленные машинными системами инфор мационные фонды, даже будучи освобожденный от описания структуры данных, должен тем не менее отдавать себе отчет о классах исполь зуемых величин и их взаимосвязях. При этом весьма важен навык представить себе структуры информационных объектов в формализо ванном виде.
Значение этого навыка в настоящее время повышается в связи с распространением интегрированных баз данных, информационных сис тем и АСУ, основу которых составляют информационные модели. При работе с такими моделями необходимо отразить в них все существен ные для решения поставленной задачи свойства объектов и их взаи модействия, иначе решение, предложенное машиной может сослужить пользователю плохую службу.
Решение задачи может быть эффективным только в том случае, когда правильно определен объем сведений, необходимых для ее ре шения, и правильно организован их поиск. При этом вырабатываются навыки формирования поисковых механизмов и пользования ими. По мере роста емкости и снижения стоимости запоминающих устройств ЭВМ становится реальна перспектива передачи машинам всего инфор мационного фонда, накопленного человечеством. Это дает возмож ность пользователю оперативно получить практически любые необхо димые ему сведения. Тем более важным оказывается умение правильно определить, какие именно сведения необходимы и по каким признакам организовать их поиск.
Дисциплина и структурированность языковых средств коммуника ции - умение правильно, четко и однозначно сформулировать мысль в понятной собеседнику форме и правильно понять текстовое сообщение. Системный и прикладной программист должен приобрести навык общения с машиной или системой на различных уровнях в зависимости от их "обученности". С системами низшего уровня (имеющие незначи тельное математическое обеспечение) общение возможно только при помощи указаний о "микродействиях" - машинных операциях. В систе мах с высоким уровнем математического обеспечения программист должен строить свою программу из крупных блоков - операторов язы ка высокого уровня и готовых программ, в том числе и разноязыко вых. Пользователь далекий от подобного глобального подхода к ре
шаемым задачам, тем не менее обязан, если он хочет рационально общаться с машиной, уметь превратить в процедуры часто используе мые конструкции для того, чтобы в последствии применять их как элементарные предписания.
Для рационального использования вычислительной техники поль зователь должен иметь привычку своевременно обращаться к ЭВМ при решении задач из любой области. Если такая привычка не сформиро вана, нельзя гарантировать, что даже опытный пользователь, хорошо владеющий перечисленными выше навыками, догадается обратиться в нужный момент к ЭВМ, если такая задача ему прямо не поставлена, В результате может возникнуть такая ситуация, когда пользователь выполняет вычисления карандашом на бумаге сидя рядом с терминалом ЭВМ, позволяющей сделать эти вычисления гораздо быстрее и точнее. Также пользователь должен уметь работать клавиатурой и дру гими переферийными устройствами, такими как принтер, сканнер, мо дем, факс и т. д.
Информатика как образовательная дисциплина быстро развивает ся. Если 3 - 4 года назад базовый курс информатики состоял из изучения основ алгоритмизации и программирования, основ устройс тва и применения вычислительной техники, то сегодня целью курс информатики в школе является повышение эффективности применения человеком компьютера как инструмента. Компьютерная грамотность определяется не только умением программировать, а, в основном, умением использовать готовые программные продукты, рассчитанные на пользовательский уровень. Эта тенденция появилась благодаря широкому рассмотрению "мягких" продуктов, ориентированных на не подготовленных пользователей. Разработка таких программно - ин формационных средств является весьма дорогостоящим делом в силу его высокой наукоемкости и необходимости совместной работы высо коквалифицированных специалистов: психологов, компьютерных дизай
неров, программистов. Однако она окупает себя благодаря тому, что доступ к компьютеру сегодня может получить практически каждый че ловек даже без специальной подготовки. 2ВЫВОДЫ ПО РАЗДЕЛУ
Проведя анализ концепций современной информатики, можно от метить следующее. Индустрия программного обеспечения ориентирует ся в основном на разработку пакетов программ для низкоквалифици рованного пользователя. Такое положение позволяет зачастую отка заться от технологий программирования. Однако наряду с этим для решения конкретных инженерных задач, а также задач расчетного ха рактера часто приходится использовать и языки программирования. 22. ИССЛЕДОВАНИЕ ТЕХНОЛОГИЙ ПРОГРАММИРОВАНИЯ 2И ВЫБОР ТЕХНОЛОГИЙ ДЛЯ УЧЕБНОГО ПРОЦЕССА 22. 1. ИССЛЕДОВАНИЕ ТЕХНОЛОГИЙ ПРОГРАММИРОВАНИЯ
Важное место в программном обеспечении современных ЭВМ зани мают системы программирования. Основное их назначение - освобо дить программиста от необходимости работать на языке машинных ко манд. Язык программирования, с которым работает система програм мирования, называется ее входным языком. Системы программирования именуются по названию своего входного языка. Например: Бейсик система, Паскаль - система, система пролог. Иногда в название систем включаются префиксы, обозначающие, например, фирменное происхождение системы. Очень популярны системы с приставкой "Тур бо": Турбо - Паскаль, Турбо - Си и др. Это системы программирова ния, разработанные фирмой Borland.
Системы программирования - это универсальные средства работы с информацией. С их помощью можно решать вычислительные задачи, обрабатывать тексты, получать графические изображения, осущест влять хранение и поиск данных и т. д. , в общем, делать все, что делают средства прикладного программного обеспечения - специали зированные исполнители. Кроме того, сами эти средства (графичес кие и текстовые редакторы, СУБД и др. ) - это программы, написан ные на языках программирования, созданные с помощью систем прог раммирования.
Языки программирования претерпели большие изменения с тех пор, как в сороковых годах началось их использование. Они все еще продолжают изменяться и теперь даже быстрее, чем когда либо ра нее.
Первые языки программирования были очень примитивными и мало
чем отличались от формализованных упорядочений двоичных чисел (единиц и нулей), понятных компьютеру. Использование таких языков было крайне неудобно с точки зрения программиста, так как он дол жен знать числовые коды всех машинных команд, должен сам распре делять память под команды программы и данные. На языках машинных команд трудно поддерживать структурную методику программирования. Для того, чтобы облегчить общение человека с ЭВМ были созда ны языки программирования типа Ассемблер. Переменные величины стали изображаться символическими именами. Числовые коды операций заменились на мнемонические (словесные) обозначения, которые лег че запомнить. Язык программирования приблизился к человеческому языку, но удалился от языка машинных команд. Чтобы ЭВМ могла ра ботать на языке Ассемблера, необходим транслятор - системная программа, переводящая текст программы на Ассемблере в эквива лентные ей машинные команды. Языки типа Ассемблер - машиноориен тированные, потому что они настроены на структуру машинных команд конкретного компьютера. Разные компьютеры с разными типами про цессоров имеют разный Ассемблер.
В пятидесятых годах, с широким развитием ЭВМ и применением их в различных областях науки и техники, возникла серьезная проб лема: простой пользователь не мог работать с ЭВМ из-за сложности языков программирования, а подготовленный программист был просто не в состоянии обслужить огромное количество пользователей. Раз решением данной проблемы явилось создание языков программирования высокого уровня (ЯПВУ). Форма записи программ на ЯПВУ по сравне нию с Ассемблером и машинными языками ближе к традиционной мате матической форме и разговорному языку. Они легко изучаются, хоро шо поддерживают структурную методику программирования, и еще, что очень важно, ЯПВУ являются машинонезависимыми языками. Одна и та же программа на таком языке может быть выполнена на ЭВМ различных
типов, оснащенных соответствующим транслятором. Однако программы, написанные на языках высокого уровня, занимают больше памяти и медленнее выполняются, чем программы на машинных языках или язы ках Ассемблера.
Первыми популярными языками высокого уровня, появившимися в 50-х годах, были Фортран, Кобол (в США) и Алгол (в Европе). Для первых ЯПВУ была характерна их предметная ориентация. Так языки Фортран и Алгол были ориентированы на научно - технические расче ты математического характера. Кобол - язык для программирования экономических задач. В нем, по сравнению с двумя другими языками программирования, слабее развиты математические средства, зато хорошо развиты средства обработки текстов, организация вывода данных в форме требуемого документа.
Огромное количество новых языков программирования стало по являться в 60-х, 70-х годах. За всю историю ЭВМ их было создано более тысячи. Однако распространились и выдержали испытание вре менем немногие.
В 1965 году появились два новых важных языка. Профессорами университета в городе Дартмуне Т. Куртцем и Д. Кемени был разра ботан язык для обучения программированию, который являлся упро щенной версией Фортрана и получил название Бейсик (Beginner's All-purpose Simbolic Instruction Code, т. е. многоцелевой код сим волических команд для начинающих). Бейсик предоставляет разнооб разные средства для диалога: пользователь имеет возможность "об щаться" с Бейсик-программой во время ее выполнения. Программа мо жет "попросить" пользователя ввести данные, проверить их, осу ществить выбор и т. д. Наибольшее признание Бейсик получил с появ лением микроЭВМ начиная с 1975 года. Сейчас Бейсик со всеми его реализациями вполне можно назвать наиболее известным и широко распространенным языком высокого уровня.
Вторым языком, появившемся в 1965 году, был ПЛ/1 (Program ming Language 1, т. е язык программирования 1). ПЛ/1 был разрабо тан при содействии фирмы IBM. При этом преследовалась цель соз дать язык, сочетающий в себе лучшие свойства Алгола, Кобола и Фортрана. ПЛ/1 действительно подходит для решения широкого круга задач и является более гибким по сравнению с Алголом, Коболом и Фортраном. При появлении языка ПЛ/1 предсказывали, что он станет основным языком и в конечном итоге заменит своих предшественни ков. Однако этого не произошло. Главная причина по-видимому свя зана с тем, что некоторые пользователи Кобола и Фортрана не ощу тили тех преимуществ языка ПЛ/1, которые оправдали бы переход к нему. Другая причина связана с "размерами" языка. Большое коли чество средств и разнообразие операторов ПЛ/1 привели к тому, что он оказался довольно сложным в изучении.
В 1971 году профессор Н. Вирт из Технического университета в Цюрихе разработал новый язык, известный под названием "Паскаль" (в честь хорошо известного математика 17-го века Блеза Паскаля). Язык паскаль основан на Алголе, но содержит ряд усовершенствова ний. Первоначально он создавался как учебный язык, в нем аккурат но соблюдена структурная линия программирования. Наибольший успех и распространение языку Паскаль принесли первые персональные компьютеры. Фирма Borland Internetional Inc (США) разработала систему Турбо - Паскаль для ПК. Турбо - Паскаль - это не только язык и транслятор с него, но еще и операционная оболочка, позво ляющая пользователю удобно работать на Паскале. Турбо - Паскаль вышел за рамки учебного предназначения и стал языком профессио нального программирования с универсальными возможностями. В силу своих достоинств Паскаль послужил источником для создания многих основных современных языков программирования, таких как Ада, Си, Модула-2 и др.
Язык Си первоначально был разработан для мини - ЭВМ исполь зующих операционную систему UNIX. Он является относительно прос тым языком, в нем нет операций над символьными строками и списка ми, но, в отличии от Паскаля, в нем заложены возможности непос редственного обращения к некоторым машинным командам, к опреде ленным участкам памяти компьютера. Си широко используется как инструментальный язык для разработки операционных систем, транс ляторов, баз данных т других системных и прикладных программ. В 1965 году появился язык программирования Лисп (LISt Pro cessing, т. е. обработка списков). Он служит для обработки строк и рекурсивных данных. Лисп располагает также средствами для выпол нения арифметических и логических операций. Он находит широкое применение в исследованиях по созданию искусственного интеллекта. В настоящее время существует большое количество языков высо кого уровня, и каждый год появляются новые языки (хотя немногие из них действительно реализованы и в какой-то степени используют ся).
В современной информатике можно выделить два основных нап равления развития языков программирования: процедурное и непроце дурное (рис. 1. ).
Процедурное программирование возникло на заре вычислительной техники и получило широкое распространение. В процедурных языках программа явно описывает действия, которые необходимо выполнить, а результат задается только способом получения его при помощи не которой процедуры, которая представляет собой определенную после довательность действий. Основные средства, применяемые в этих языках - величины (в том числе и табличные), присваивания, циклы, процедуры. При построении процедурной программы необходимо ясно представлять какие действия и в какой последовательности будут производиться при ее выполнении. Следовательно, процедурное прог
раммирование основано на алгоритмическом мышлении и может служить средством его развития.
Среди процедурных языков можно выделить в свою очередь структурные и операционные языки. В структурных языках одним опе ратором записываются целые алгоритмические структуры: ветвления, циклы. В операционных языках для этого используются несколько операций. Широко распространены структурные языки: Паскаль, Си, Ада, ПЛ/1. Операционные: Фортран, Бейсик, Фокал.
Непроцедрное (декларативное) программирование появилось в начале 70-х годов, но стремительное его развитие началось в 80-е годы, когда был разработан японский проект создания ЭВМ пятого поколения, целью которого явилась подготовка почвы для создания интеллектуальных машин. К непроцедурному программированию отно сятся функциональные и логические языки.
В функциональных языках программа описывает вычисление неко торой функции. Обычно эта функция задается как композиция других, более простых, те в свою очередь разлагаются на еще более простые и т. д. Один из основных элементов в функциональных языках - ре курсия, то есть вычисление значения функции через значение этой же функции от других элементов. Присваивания и циклов в класси ческих функциональных языках нет.
Наиболее распространенными среди функциональных языков явля ются Лисп и Рефал. Лисп - язык обработки списков давно и активно применяется в системах искусственного интелекта. Рефал, построен ный на алгоритмах Маркова, удобен для обработки текстов и единс твенный из распространенных в мире языков программирования, раз работанный в нашей стране.
Промежуточное положение занимает язык Лого, который содержит средства и процедурного и функционального программирования. На начальном уровне, которым всегда начинается и часто заканчивается
его изучение, он похож на классический процедурный язык. Однако при решении сложных задач обработки данных на первый план выходят функциональные методы. Фактически, Лого - это Лисп, адаптирован ный для обучения. Эта адаптация потребовала включения в язык про цедур, переменных, присваивания, т. е. средств, характерных скорее для процедурных, чем для функциональных языков. Функциональная программа, как и процедурная, описывает действия, которые надо совершить для достижения результата (вызов функции - это тоже действие), но ее построение требует скорее математического, чем алгоритмического мышления.
В логической традиции программа вообще не описывает дейс твий. Она задает данные и соотношения между ними. После этого можно задавать вопросы. Машина перебирает известные (заданные в программе) данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком. Класси ческим языком логического программирования считается Пролог, хотя он и содержит некоторые средства управления перебором, т. е. про цедурные элементы. Построение логической программы вообще не тре бует алгоритмического мышления. Здесь нет динамики, нет описания действий, программа описывает статические отношения объектов, а динамика находится в механизме перебора и скрыта от программиста. Можно выделить еще один класс языков программирования - объ ектноориентированные языки сверхвысокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирова ния.
Объектноориентированные языки, благодаря богатому пользова тельскому интерфейсу, предлагают человеку решить задачу в удобной для него форме. Примером такого языка может служить язык програм мирования визуального общения Smalltak. Трудно провести четкую
границу между системами программирования сверхвысокого уровня и прикладным программным обеспечением. Как те, так и другие системы позволяют работать с ними неквалифицированному пользователю, т. е. не программисту. 22. 2. 0 2ВЫБОР ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ 2ДЛЯ УЧЕБНОГО ПРОЦЕССА
Выбирая стратегию преподавания информатики в школе, необхо димо учитывать, что задача общеобразовательного курса - это в большой степени выработка определенного стиля мышления, формиро вание наиболее общих навыков, умений и представлений, нежели ос воение тех или иных конкретных языков и технических средств прог раммирования.
В то же время такой курс должен служить базой для последую щего профессионального изучения программирования в высшей школе или старших классах средней школы (в рамках профессионального обучения).
В настоящее время существуют три наиболее распространенных подхода к преподаванию программирования:
1) преподавание программирования как теоретической дисципли ны вообще, без освоения конкретных языков и систем;
2) преподавание на основе специально разработанного языка, ориентированного на обучение основным навыкам программи рования;
3) изучение одного или нескольких языков программирования, широко используемых при решении научных и хозяйственных задач (такие языки можно назвать стандартными).
Первый подход представляется наиболее логичным. Однако его практическая реализация наталкивается на серьезные трудности, так
как с отказом от языка программирования не только теряется воз можность использовать соответствующий инструментарий, но и зачас тую становится трудно обосновать необходимость его использования. Второй подход часто используется при преподавании основ программирования в младших классах средней школы. Разработаны и специализированные языки для этих целей. В их числе можно назвать Школьник, Рапира (СССР), SMR (Великобритания), LOGO (США). Они предельно упрощены и рассчитаны на возможности младшего школьника в области программирования. Такой подход хорош при углубленном изучении информатики в специализированных классах при начальном этапе обучения.
Противники третьего подхода утверждают, что он непригоден прежде всего потому, что ни один из существующих стандартных язы ков не отражает в достаточно чистом виде современный концептуаль ный запас программирования. Такое положение, вообще говоря, ес тественно, так как все эти языки разрабатывались со своими целями и каждый из них ориентирован на определенную, более или менее уз кую область применения. Кроме того, большинство реализаций стан дартных языков загружено большим количеством технических деталей и сложны в изучении.
Наиболее приемлемым для общеобразовательной школы, где курс информатики преподается в 8-х - 9-х классах, является сочетание первого и третьего подходов - обучение теоретическим основам программирования на базе стандартного языка. При этом не обяза тельно вдаваться в глубины языка. Учащиеся, которых он заинтере сует, могут сделать это и сами. Наибольшее внимание следует уде лить переходу от алгоритмических структур к их программно реали зации на языке программирования.
Здесь стоит отметить, что Бейсик и Паскаль первоначально создавались как учебные языки, но со временем получили широкое
распространение в качестве стандартных языков. Можно взять за ос нову один из них. У каждого языка есть свои сторонники и против ники, и конечный выбор определяется наличием аппаратных средств и личными наклонностями преподавателя. Ориентируясь на ЭВМ БК-0011М, имеющийся в наличии, целесообразно выбрать Бейсик систему, реализованную на этих машинах. 2ВЫВОДЫ ПО РАЗДЕЛУ
Из существующих технологий программирования наиболее попу лярной и широко используемой является технология структурного программирования "сверху - вниз". Ее достоинством является то, что она позволяет сформировать у обучаемых алгоритмичесий стиль мышления, необходимый при изучении практически всего курса инфор матики. Следовательно, выбирая язык программирования для школьно го курса, нужно ориентироваться на один из структурных языков. Желательно, чтобы этим языком был Бейсик или Паскаль, так как они первоначально создавались для учебных целей. 23. ОСОБЕННОСТИ МЕТОДИЧЕСКОГО ОБЕСПЕЧЕНИЯ 2СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ 0 2В ВУЗе И БАЗОВОЙ ШКОЛЕ 23. 1. ПРИНЦИПЫ СТРУКТУРНОЙ АЛГОРИТМИЗАЦИИ
На сегодняшний день самой популярной методикой программиро вания является структурное программирование "сверху - вниз". Эта технология программирования представляет собой процесс пошагово разбиения алгоритма на все более мелкие части с целью получить такие элементы, для которых можно легко написать конкретные пред писания. Структурная алгоритмизация основывается на двух принципах: 1) последовательная детализация "сверху - вниз";
2) ограниченность базового набора структур для построения алгоритмов любой степени сложности.
Из принципов вытекают требования структурного программирования: 1) программа должна составляться мелкими шагами; таким об разом, сложная задача разбивается на достаточно простые, легко воспринимаемые части;
2) логика программы должна опираться на минимальное число достаточно простых базовых управляющих структур.
Базовый набор структурной алгоритмизации содержит линейные, разветвляющиеся и циклические структуры.
Можно перечислить основные свойства и достоинства структур ного программирования: 1) возможность преодоления барьера сложности программ; 2) возможность демонстрации правильности программ на раз личных этапах решения задачи; 3) наглядность программ; 4) простота модификации (внесение изменений) программ; 23. 2. ОСОБЕННОСТИ МЕТОДИЧЕСКОГО ОБЕСПЕЧЕНИЯ 2СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ 2В ВУЗе И БАЗОВОЙ ШКОЛЕ 23. 2. 1 ВЫБОР ПОДХОДА К ПРЕПОДАВАНИЮ 2СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ И 2ОСОБЕННОСТИ ЕГО МЕТОДИЧЕСКОГО 2ОБЕСПЕЧЕНИЯ
При решении задач с использованием структурного программиро вания можно выделить два основных направления:
1) "алгоритмический" подход; его заключается в следующем: схема решения задачи описывается на алгоритмическом языке (языке блок-схем алгоритмов) и затем переводится в програмную реализацию на конкретном языке программирования;
2) "программный" подход - описание решения задачи сразу на конкретном языке программирования.
В соответствии с этими направлениями чаще всего и преподает ся программирование. Уровень развития современных систем програм мированния (например, Visual Basic), благодаря хорошо организо ванным средствам отладки, позволяет создавать программы без ис пользования первого подхода. Однако, программный подход требует от человека наличие определенного стиля мышления и навыков работы с языком програмирования. Очевидно, что специалисты, имеющие пусть даже небольшой опыт в программировании, пользуются прог раммным подходом. Им не обязательно описывать решение задачи на алгоритмическом языке, они разрабатывают ее в "уме". В преподава нии такой подход хорош при изучении второго языка программирова ния, когда ученики уже имеют определенную подготовку. При изучении структурного программирования на начальном эта
пе более подходит "алгоритмический" подход. Он более полно и пос ледовательно позволяет раскрыть переход от математической формы описания задачи к ее программной реализации и помогает формиро вать у обучаемых алгоритмический стиль мышления, необходимый при решении задач с использованием языков программирования и изучении многих технических и общеинженерных дисциплин. Кроме того, на ос нове алгоритмического подхода можно изучать сразу несколько язы ков программирования (естественно, если позволяют время и техни ка).
В силу перечисленных достоинств наиболее верным и методичес ки правильным для преподавания программирования на начальном эта пе обучения является алгоритмический подход.
При изучении программирования с использованием алгоритмичес кого подхода учащиеся сталкиваются с двумя проблемами:
1) описание и детализация решения задачи на алгоритмическом языке;
2) переход от алгоритмических конструкций к конкретному языку программирования.
На разрешение этих трудностей должно быть направлено методи ческое обеспечение.
В первом случае это могут быть схемы основных базовых струк тур с описанием их работы и особенностей использования при пост роении алгоритмов.
Во-втором - таблицы перевода алгоритмических конструкций в конструкции языка программирования. 23. 2. 2. БАЗОВЫЙ НАБОР СТРУКТУР И ПОСТРОЕНИЕ 2АЛГОРИТМОВ НА ИХ ОСНОВЕ Теория структурного программирования доказывает, что алго
ритм любой степени сложности можно построить с помощью основного базового набора структур: 1) последовательная (линейная) структура (рис. 2); 2) ветвящаяся структура (рис. 3, 4); 3) циклическая структура (рис. 5, 6, 7, ).
Наиболее простыми для понимания и использования являются ли нейные структуры. Линейным называется алгоритм (фрагмент алгорит ма), в котором отдельные предписания выполняются в естественном порядке (в порядке записи) независимо от значений исходных данных и промежуточных результатов.
Алгоритм может быть реализован в ЭВМ, если он содержит толь ко элементарные предписания. Такими элементарными, т. е. не требу ющими детализации, можно считать следующие предписания или опера ции: 1) начало, конец; 2) список данных; 3) ввод, вывод; 4) вычислительные операции, реализуемые оператором присваи вания.
Пример простейшего линейного алгоритма представлен на рис. 9. Не всякий алгоритм можно описать только линейными структура ми. Часто для дальнейшей детализации используются ветвящиеся структуры (рис. 3, 4), т. е. такие, в которых в зависимости от ис ходных данных или промежуточных результатов алгоритм реализуется по одному из нескольких, заранее предусмотренных (возможных) нап равлений. Такие направления часто называются ветвями.
Каждая ветвь может быть любой степени сложности, а может во обще не содержать предписаний, т. е. быть вырожденной. Выбор той или иной ветви осуществляется в зависимости от результата провер ки условия с конкретными данными. В каждом случае алгоритм реали
зуется только по одной ветви, а выполнение других исключается. Пример фрагмента алгоритма, содержащего ветвящиеся структуры, представлен на рис. 10.
Реализация на ЭВМ линейных и разветвляющихся программ не да ет большого выигрыша во времени по сравнению, например, с исполь зованием простого калькулятора. Настоящее преимущество вычисли тельной машины становится очевидным лишь при решении тех задач, где возникает необходимость многократного повторения одних и тех же фрагментов алгоритмов.
В циклических алгоритмах выполнение некоторых операторов (групп операторов) осуществляется многократно с одними и теми же или модифицированными данными.
Циклические алгоритмы часто называют циклами. В зависимости от способа организации числа повторений различают три типа циклов: 1) цикл с заданным условием продолжения работы (ЦИКЛ - ПО КА); 2) цикл с заданным условием окончания работы (ЦИКЛ - ДО); 3) цикл с заданным условием повторений работы (ЦИКЛ С ПАРА МЕТРОМ).
Структура цикла с заданным условием продолжения работы (ЦИКЛ - ПОКА) представлена на рис. 5. Тело цикла может включать в себя группу операторов любой степени сложности. При выполнении условия продолжения работы выполняется тело цикла, если же условие не вы полняется, то работа циклической структуры заканчивается и начи нается выполнение следующей структуры.
Структура ЦИКЛ - ПОКА предусматривает вариант, когда тело цикла не выполняется ни разу. Такое возможно, если условие, стоя щее в начале цикла, сразу же не выполняется. Когда на практике возникает необходимость использовать структуру, у которой тело цикла выполняется хотя бы один раз, то в этом случае применяется структура цикла, приведенная на рис. 6.
С помощью такой структуры обычно составляют алгоритмы итера ционных вычислительных процессов, т. е. таких, в которых для опре деления последующего значения переменной используется ее предыду щее значение. Выход из конструкции ЦИКЛ - ДО осуществляется по достижении параметром требуемого значения.
Рассмотренные типы циклических структур имеют один недоста ток: при ошибочном задании исходных данных может произойти зацик ливание, т. е. возникает ситуация, когда происходит бесконечное повторение тело цикла.
В практических инженерных задачах обычно известны начальные значения изменяемых величин, закон изменения и конечное число повторений. Переменная, изменение которой организуется в ходе ре ализации цикла, называется параметром цикла или управляющей пере менной. Алгоритм работы цикла с заданным числом повторений предс тавляет собой соединение линейной структуры (начало цикла), структуры ЦИКЛА - ПОКА (условие в нем заменено на противополож ное) и снова линейной (последовательной) структуры в теле цикла, см. рис. 8.
Прочитать этот алгоритм можно следующим образом: "меняя па раметр от начального значения до конечного с шагом 7 0, повторять тело цикла".
Алгоритм, приведенный на рис. 8, принято называть разверну той схемой цикла с заданным числом повторений. Такая схема явля ется очень удобной для анализа алгоритма и поиска ошибок. Однако при написании алгоритма можно использовать и компактную запись, представленную на рис. 7.
Таким образом, с помощью базового набора структур можно построить алгоритм любой степени сложности. Освоив принципы и средства структурной алгоритмизации, обучаемые должны уметь реа
лизовать их на конкретном языке программирования. Следовательно, основной концепцией в изучении ими любого языка програмирования будет являться методика перевода основных базовых структур в конструкции данного языка. 23. 2. 3. РЕАЛИЗАЦИЯ БАЗОВОГО НАБОРА 2СТРУКТУР НА ЯЗЫКЕ БЕЙСИК
Операторы программы, написанной на языке Бейсик, выполняются в порядке нумерации строк, где они находятся. Пример: 10 INPUT A, X 20 X=A+2 5* 0X 30 PRINT X 40 END
Номера строк могут иметь целые значения от 0 до 65535. Для изменения построчной последовательности выполнения программы име ется оператор безусловного перехода GOTO. Он имеет вид: GOTO 7 0.
При выполнении оператора GOTO программа продолжает выполнят ся с той строки, которая указана в операторе. Пример: ... . 20 INPUT F 30 INPUT A, B, C ... . 80 F=A+2 5* 0(B-C) 90 GOTO 20 100 PRINT F ... .
В данном случае после строки с номером 90 будет выполнятся строка 20 и далее другие, следующие за ней.
Для организации ветвящихся структур в языке Бейсик имеется оператор условного перехода IF. Он имеет следующий вид:
IF 7 0 THEN 7 0 ELSE 7
Оператор IF может содержать только одну ветвь, если же по какому-либо из условий требуется выполнение нескольких операто ров, то вместо оператора в ветви указывается номер строки, с ко торого необходимо продолжить выполнение программы. Частные случаи оператора условного перехода IF: 50 IF 7 0 THEN 7
50 IF 7 0 THEN 7 0 ELSE 7 50 IF 7 0 THEN 7 0 ELSE 7
Оператор IF используется также для организации циклических структур. Структура ЦИКЛА - ПОКА на языке Бейсик записывается следующим образом: 50 IF 7 0 THEN 60 ELSE 102 60 7 ... . 100 7 101 GOTO 50 102 7
В данном случае, пока параметр цикла удовлетворяет заданному условию, осуществляется переход к телу цикла по строке 60 (THEN 60), и затем, после его выполнения и изменения параметра цикла, программа возвращается к сроке 50 ( 101 GOTO 50) для проверки ус ловия и т. д. Как только параметр цикла удовлетворит условию, дальнейшее выполнение программы начинается со строки 102 (ELSE 102).
ЦИКЛ - ДО тоже организуется с помощью оператора IF, только тело цикла предшествует проверке условия: 50 7 ... . 100 7 101 IF 7 0 THEN 50 102 7
В данной конструкции тело цикла выполняется до тех пор, пока параметр цикла удовлетворяет условию (ветвь THEN 50). Для реализации цикла с заданным числом повторений в языке Бейсик имеется специальная конструкция:
50 FOR 7 0= 7 0 ТО 7 0 STEP 7 60 7 ... . 100 7 101 NEXT 7 102 7
В строке 50 задаются начальное и конечное значения парамет ров цикла, а также шаг, с которым осуществляется его изменение каждый раз после выполнения тела цикла (101 NEXT 7 0). Операторы тела цикла выполняются до тех пор, пока текущее значе ние параметра не превысит конечного значения, как только это про изойдет, программа будет выполняться со строки 102.
В качестве основного методического пособия при изучении дан ного вопроса могут быть использованы таблицы перевода алгоритми ческих конструкций в конструкции языка программирования, предс тавленные на плакатах.
Линейные, ветвящиеся и циклические структуры могут содержать в себе операторы или блоки операторов любой степени сложности. Для детализации таких конструкций на языке программирования ис пользуются таблицы операторов и таблицы стандартных функций язы ка, которые имеются в описании системы программирования. . 2ВЫВОДЫ ПО РАЗДЕЛУ
Таким образом, с помощью базового набора структур можно построить алгоритм любой степени сложности. Освоив принципы и средства структурной алгоритмизации, обучаемые должны уметь реа лизовывать их на конкретном языке программирования. Следователь но, основной концепцией в изучении ими любого языка программиро вания будет являться методика перевода основных базовых структур в конструкции изучаемого языка. Основу методического обеспечения в данном случае составляют таблицы перехода от алгоритмических конструкций к конструкциям языка программирования, которые позво ляют работать с языком пользователю, имеющему минимальный уровень подготовки, и значительно облегчают изучение языка. 24. АНАЛИЗ ВОЗМОЖНОСТЕЙ БЕЙСИК - СИСТЕМЫ И ЕЕ 2ПРИМЕНЕНИЕ В УЧЕБНОМ ПРОЦЕССЕ 24. 1. 0 2 АНАЛИЗ ВОЗМОЖНОСТЕЙ БЕЙСИК - СИСТЕМЫ
Язык программирования Бейсик был создан в 1965 году для обу чения программированию студентов гуманитарных вузов. Его прямое назначение - решение математических и инженерных задач в режиме диалога "человек - компьютер".
Благодаря своей простоте и доступности, Бейсик вскоре расп ространился в качестве стандартного языка и получил широкое расп ространение среди пользователей микроЭВМ в математических и науч но - технических расчетах, а также в качестве средства для реали зации различных диалоговых программ. Сегодня Бейсик со всеми его реализациями - один из наиболее популярных языков программирова ния.
Версия Бейсик - системы, реализованная на БК-0011М, включает операторы, которые позволяют создавать программы по обработке текстовой информации, использовать этот язык для программирования систем управления технологическими установками, для создания иг ровых обучающих программ, математических расчетов различного ха рактера. Она позволяет использовать аппарат стандартных функций, которые заранее определены в системе. Это основные 1числовые 0, предназначенные для работы с числовыми величинами, и 1строковые 0, предназначенные для действий над строками символов, функциями. Кроме того, пользователь может сам задавать функции, используя математический аппарат и стандартные функции системы.
Язык Бейсик имеет богатые средства работы с компьютерной графикой, операторы управления экраном и звуком. Среди достоинств рассматриваемой Бейсик - системы следует
отметить встроенный редактор текстов, который организует весь ди алог пользователя с ПЭВМ в Бейсик - системе. Он позволяет: 1) набирать и редактировать строки программы; 2) исправлять ошибки во вводимой строке; 3) редактировать содержимое буфера ввода;
4) вызывать и редактировать строки программы при помощи ко манд.
Бейсик - система осуществляет проверку операторов программы и вводимых данных и о каждой обнаруженной ошибке выводит соот ветствующие сообщение. Причем сообщение выдается сразу после об наружения ошибки и содержит код ошибки и номер строки, в которой она обнаружена, что позволяет значительно облегчить отладку прог рамм.
В силу перечисленных достоинств Бейсик - система может впол не успешно применяться в учебном процессе. 24. 2. ПРИМЕНЕНИЕ БЕЙСИК - СИСТЕМЫ 2В УЧЕБНОМ ПРОЦЕССЕ
В последнее время, с внедрением в школы и учебные заведения достаточно мощных персональных компьютеров, Бейсик перестал быть основным средством программирования в руках преподавателя.
Некоторые преподаватели считают, что в обучении лучше ис пользовать Паскаль. В нем, по сравнению с Бейсиком, лучше соблю дена структурная линия программирования и более полно отражена структура типов данных. Однако Бейсик при всех этих своих недос татках обладает рядом достоинств: богатые средства работы с компьютерной графикой и возможности для реализации диалоговых программ. Благодаря этому, Бейсик - система представляет большой интерес для обучаемого, чем другие языки программирования.
Язык Бейсик позволяет использовать проблемную методику обу чения. В данном случае это означает, что с самого начала перед каждым учеником ставится задача: к концу изучения темы разрабо тать соответствующий программный продукт. Это должны быть ка кие-то практически полезные разработки. Например, кадры обучающей программы или реализации алгоритма выставления оценки контролиру ющей программы. При углубленном изучении программирования в стар ших классах это могут быть более сложные задачи. Например, тесто вые и контролирующие программы, а также обучающее программное обеспечение по различным предметам, которое может быть использо вано в рамках школьной программы.
Проблемная методика стимулирует учащихся к освоению предме та, проясняя его практическую значимость.
Компьютерные классы на базе БК-0011М работают в школах и других учебных заведениях уже несколько лет. За это время для них создан большой объем программного обеспечения, большая часть ко торого реализована в Бейсик - системе. Работая с ним, обучаемые наглядно представляют возможности изучаемого языка программирова ния.
Большим плюсом Бейсик - системы БК-0011М является и то, что при ее изучении и работе с ней можно руководствоваться большим количеством литературы и методическими разработками, что облегча ет задачу как преподавателю, так и обучаемым. 2ВЫВОДЫ ПО РАЗДЕЛУ
Анализ возможностей Бейсик - системы показывает, что она достаточно проста и легко изучается, однако несмотря на свою простоту, предоставляет пользователю разнообразные средства рабо ты с компьютерной графикой и возможности для реализации диалого
вых программ. Это вызывает интерес у обучаемых и позволяет ис пользовать проблемную методику обучения. Кроме того, Бейсик систему можно использовать в качестве инструментального средства для разработки программного обеспечения для нужд школы. Следова тельно Бейсик - система может успешно применяться в учебном про цессе. 25. РАЗРАБОТКА МЕТОДИЧЕСКОГО ОБЕСПЕЧЕНИЯ 2ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
Задание для самостоятельной работы по теме: "Программирова ние линейных, разветвляющихся и циклических процессов в языке Бейсик" преследует целью закрепление и контроль знаний по основам алгоритмизации и программирования.
Оно выполняется каждым учащимся индивидуально во внеурочное время.
В результате собеседования по проделанной работе учащемуся выставляется оценка, которая учитывается при выставлении итоговой оценки по теме. 25. 1. РАЗРАБОТКА ВАРИАНТОВ ЗАДАНИЙ 2НА САМОСТОЯТЕЛЬНУЮ РАБОТУ
Исходя из целей, задание на самостоятельную работу должно содержать задачи, предусматривающие использование для их решения линейных, разветвляющихся и циклических процессов.
На каждый тип базовых структур достаточно одной задачи, сле довательно, можно ограничится тремя задачами: 1) программирование линейных процессов; 2) программирование разветвляющихся процессов; 3) программирование циклических процессов.
В качестве первой задачи может быть предложено вычисление значения функции типа: 4(cos2x)(z+4y) 52 А = --------------- 5. 54 При составлении подобных задач желательно использовать все стандартные функции языка программирования.
Примером второй задачи может служить следующая: "a, b, c, d - стороны четырехугольника, определить, является ли данный че тырехугольник параллелограмом". Решением данной задачи предусматривается проверка условий: а = с; в = d.
В качестве примера третьей задачи может быть вычисление зна чения функции вида: 41 В = --- + 3х + 2, 52х где х 41 0 = 1, х 42 0 = 2, х 43 0 = 3.
Если количество учащихся небольшое (до двадцати человек), то каждый из них получает индивидуальное задание. При большом коли честве обучаемых можно сгруппировать однотипные задачи по вариан там, но при этом не должны встречаться одинаковые задачи. Варианты задач представлены в приложении 1.
В процессе решения задачи с применением ЭВМ можно выделить ряд этапов: 1) вербальное описание задачи; 2) математическая постановка задачи; 3) алгоритмизация; 4) программирование; 5) отладка программы и решение задачи.
Подготовка задачи к вводу в ЭВМ включает в себя первые четы ре этапа. Но в задание на самостоятельную работу в основном выно сятся задачи, уже описанные в математической форме. Следователь но, обучаемые при выполнении задания сталкиваются с третьим и четвертым этапами решения задачи. 25. 2. РАЗРАБОТКА МЕТОДИЧЕСКОГО ПОСОБИЯ 2ПО СТРУКТУРНОЙ АЛГОРИТМИЗАЦИИ
В методическое пособие по данному вопросу должна быть вклю чена таблица базового набора структур и рекомендации по ее ис пользованию.
Также, необходимо включить примеры перехода от математичес ких моделей к алгоритму по каждому типу задач. Разработанные ме тодические рекомендации представлены в приложении 2. 25. 3. РАЗРАБОТКА МЕТОДИЧЕСКОГО ПОСОБИЯ ДЛЯ ПЕРЕХОДА 2ОТ АЛГОРИТМИЧЕСКИХ КОНСТРУКЦИЙ К ЯЗЫКОВЫМ
Основные трудности у учащихся вызывает переход от алгоритми ческих конструкций к конструкциям языка Бейсик.
В методическом пособии для перехода от алгоритмических конс трукций к языковым могут быть включены таблицы перевода базового набора структур в конструкции языка и рекомендации по использова нию стандартных функций языка.
Данные методические рекомендации представлены в приложении 3. 25. 4. РАЗРАБОТКА МЕТОДИКИ ИСПОЛЬЗОВАНИЯ 2ПРЕДЛАГАЕМОГО ОБЕСПЕЧЕНИЯ
Целью выполнения задания на самостоятельную подготовку явля ется получение навыков в самостоятельной разработке алгоритма и составление программы на языке высокого уровня (Бейсик).
Для достижения этой цели были разработаны варианты заданий, методическое пособие по структурной алгоритмизации и методическое
пособие для перехода от алгоритмических конструкций к языковым, которые представлены в приложениях 1, 2, 3 соответственно.
В приложении 4 представлена методика использования этого обеспечения. 2ЗАКЛЮЧЕНИЕ
Уровень развития современной компьютерной техники и ее прог раммного обеспечения занял новую качественную ступень. Анализ концепций современной информатики и новых информационных техноло гий, проведенный в ходе работы, показывает, что по мере распрост ранения компьютерной техники вся совокупность взаимодействующих с ней людей все более четко разделяются на две большие группы: 1) системные и прикладные программисты; 2) широкий круг пользователей.
Таким образом, для значительного большинства людей, исполь зующих ЭВМ в своей работе, знакомство с конкретными системами программирования в принципе не обязательно.
Базовый школьный курс информатики ориентируется в основном на изучение прикладного программного обеспечения и средств КИТ. Однако алгоритмизация и программирование занимают в нем важное место, т. к. приемы работы со средствами КИТ рассматриваются как алгоритмы, строящиеся в рамках соответствующей системы команд. Из рассмотренных в ходе работы подходов к преподаванию прог раммирования наиболее выгодным для такого курса является препода вание структурного программирования как теоретической дисциплины с использованием инструментального средства - языка программиро вания высокого уровня. Этот подход позволяет сформировать у обу чаемых как раз тот необходимый алгоритмический стиль мышления, являющийся основой при изучении не только информатики, но и дру гих технических дисциплин.
В качестве инструментального средства может быть использован один из процедурных языков высокого уровня. Желательно, чтобы это был Паскаль или Бейсик, т. к. эти языки первоначально разрабатыва лись для учебных целей.
Однако во многих случаях выбор языка программирования опре деляется наличием технических средств. В данном случае, ориенти руясь на класс БК-0011М, целесообразно использовать Бейсик - сис тему, реализованную на этих машинах.
Анализ возможностей Бейсик - системы показывает, что она ус пешно может применятся в учебном процессе.
При изучении любого процедурного языка программирования обу чаемые часто сталкиваются с трудностями перехода от алгоритмичес ких конструкций к конструкциям языка. В ходе работы, в качестве методического обеспечения по данному вопросу, были разработаны таблицы перевода алгоритмических конструкций в конструкции языка Бейсик.
Одной из форм контроля знаний и навыков обучаемых по работе с Бейсик - системой является домашнее задание. В ходе работы были разработаны методические рекомендации по его выполнению на раз личных этапах и образец отчета.
Таким образом, можно сделать вывод, что цели, поставленные в задании на дипломную работу достигнуты. Результаты дипломной ра боты можно использовать при обучении программированию как в базо вой, так и в высшей школе, например, в рамках курса "Алгоритмиза ция и программирование", изучаемого в ВВУЗах. курсант А. Беляев 2ПЕРМСКОЕ ВЫСШЕЕ ВОЕННОЕ КОМАНДНО-ИНЖЕНЕРНОЕ 2КРАСНОЗНАМЕННОЕ УЧИЛИЩЕ РАКЕТНЫХ ВОЙСК 2им. МАРШАЛА СОВЕТСКОГО СОЮЗА В. И. ЧУЙКОВА "УТВЕРЖДАЮ" Кафедра № 35 Начальник кафедры полковник А. Дерябин "......"................ 1997 г. 2ЗАДАНИЕ 2НА ДИПЛОМНОЕ ПРОЕКТИРОВАНИЕ Курсанту Беляеву Александру Владимировичу 2ТЕМА ПРОЕКТА: 2Методика преподавания языков программирования 2высокого уровня с детальной разработкой 2учебно-методического обеспечения 2для самостоятельной работы
Утверждена приказом по училищу №.......... от..................................
Начало проектирования........................ ".... "..................... 1997 г. Представление оформленного проекта.... ".... "..................... 1997 г. 2СОДЕРЖАНИЕ
ВВЕДЕНИЕ ..............................................................................
РАЗДЕЛ 1. АНАЛИЗ КОНЦЕПЦИЙ СОВРЕМЕННОЙ 2 0ИНФОРМАТИКИ И НОВЫХ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ..................................... РАЗДЕЛ 2. ИССЛЕДОВАНИЕ ТЕХНОЛОГИЙ ПРОГРАММИРОВАНИЯ И ВЫБОР
ТЕХНОЛОГИИ ДЛЯ УЧЕБНОГО ПРОЦЕССА ........................... 2. 1. ИССЛЕДОВАНИЕ ТЕХНОЛОГИЙ ПРОГРАММИРОВАНИЯ ............ 2. 2. 2 0ВЫБОР ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ ДЛЯ
УЧЕБНОГО ПРОЦЕССА .............................................
РАЗДЕЛ 3. ОСОБЕННОСТИ МЕТОДИЧЕСКОГО ОБЕСПЕЧЕНИЯ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ 2 0В ВУЗе И БАЗОВОЙ ШКОЛЕ ...................
3. 1. ПРИНЦИПЫ СТРУКТУРНОЙ АЛГОРИТМИЗАЦИИ ......................... 3. 2. ОСОБЕННОСТИ МЕТОДИЧЕСКОГО ОБЕСПЕЧЕНИЯ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ В ВУЗе И БАЗОВОЙ ШКОЛЕ ................... 3. 2. 1. ВЫБОР ПОДХОДА К ПРЕПОДАВАНИЮ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ И ОСОБЕННОСТИ ЕГО МЕТОДИЧЕСКОГО
ОБЕСПЕЧЕНИЯ .......................................................... 3. 2. 2. БАЗОВЫЙ НАБОР СТРУКТУР И ПОСТРОЕНИЕ АЛГОРИТМОВ
НА ИХ ОСНОВЕ ......................................................... 3. 2. 3. РЕАЛИЗАЦИЯ БАЗОВОГО НАБОРА СТРУКТУР НА ЯЗЫКЕ
БЕЙСИК .................................................................. РАЗДЕЛ 4. АНАЛИЗ ВОЗМОЖНОСТЕЙ БЕЙСИК - СИСТЕМЫ И ЕЕ
ПРИМЕНЕНИЕ В УЧЕБНОМ ПРОЦЕССЕ .....................................
4. 1. АНАЛИЗ ВОЗМОЖНОСТЕЙ БЕЙСИК - СИСТЕМЫ ........................ 4. 2. ПРИМЕНЕНИЕ БЕЙСИК - СИСТЕМЫ В УЧЕБНОМ
ПРОЦЕССЕ .................................................................. РАЗДЕЛ 5. РАЗРАБОТКА МЕТОДИЧЕСКОГО ОБЕСПЕЧЕНИЯ ДЛЯ
САМОСТОЯТЕЛЬНОЙ РАБОТЫ ................................................ 5. 1. РАЗРАБОТКА ВАРИАНТОВ ЗАДАНИЙ НА САМОСТОЯТЕЛЬНУЮ
РАБОТУ ..................................................................... 5. 2. РАЗРАБОТКА МЕТОДИЧЕСКОГО ПОСОБИЯ ПО СТРУКТУРНОЙ
АЛГОРИТМИЗАЦИИ ......................................................... 5. 3. РАЗРАБОТКА МЕТОДИЧЕСКОГО ПОСОБИЯ ДЛЯ ПЕРЕХОДА ОТ АЛГОРИТМИЧЕСКИХ КОНСТРУКЦИЙ К ЯЗЫКОВЫМ ................ 5. 4. РАЗРАБОТКА МЕТОДИКИ ИСПОЛЬЗОВАНИЯ ПРЕДЛАГАЕМОГО
ОБЕСПЕЧЕНИЯ .............................................................
ЗАКЛЮЧЕНИЕ .................................................................................
СПИСОК ЛИТЕРАТУРЫ ......................................................................
ПРИЛОЖЕНИЕ 1 ..............................................................................
ПРИЛОЖЕНИЕ 2 ..............................................................................
ПРИЛОЖЕНИЕ 3 ..............................................................................
ПРИЛОЖЕНИЕ 4 .............................................................................. 2ВВЕДЕНИЕ
В последние годы школьный курс "Основы информатики и вычис лительной техники" (ОИВТ) вышел на качественно новый этап своего развития. Во-первых, более-менее унифицировался набор школьной вычислительной техники. Это комплекты ЭВМ: Электроника-УКНЦ, Кор вет, КУВТ-86, IBM PC. Во-вторых, создано ориентированное на учеб ные цели программное обеспечение для этих КУВТ. В-третьих, Бейсик перестал быть основным средством в руках преподавателя информати ки. Но, может быть, самое главное то, что изменился взгляд на то, что понималось под компьютерной грамотностью. Десять лет назад, в начале внедрения ОИВТ в школы, под компьютерной грамотностью по нималось умение программировать. Сейчас уже практически всеми осознано, что школьная информатика не должна быть курсом програм мирования. Большая часть пользователей современных персональных компьютеров (ПК) не программирует и не нуждается в этом. Сегодня созданы обширные программные средства компьютерных информационных технологий (КИТ), позволяющих работать с ЭВМ непрограммирующему пользователю. Поэтому минимальным уровнем компьютерной грамотнос ти является овладение средствами компьютерных информационных тех нологий.
Однако ошибочно было бы ориентировать курс ОИВТ только на практическое освоение работы с текстовыми редакторами, электрон ными таблицами, базами данных и пр. Тогда информатика быстро бы потеряла значение как самостоятельная учебная дисциплина.
Изучение ОИВТ в школе должно преследовать две цели: общеоб разовательную и прагматическую. Общеобразовательная цель заключа ется в освоении учащимся фундаментальных понятий современной ин форматики. Прагматическая - в получении практических навыков с аппаратными и программными средствами современных ЭВМ. Курс
школьной информатики содержательно и методически должен быть построен так, чтобы обе задачи - общеобразовательная и прагмати ческая - решались параллельно.
Области применения ЭВМ можно классифицировать следующим об разом. Во-первых следует различать две линии: 1) инструментальная; 2) кибернетическая.
Инструментальная линия, в вою очередь делится на два направ ления:
1. 1. Инструментальные средства для непосредственной работы пользователя с информацией. Сюда относятся популярные средства компьютерных информационных технологий: редакторы (текстовые, графические, музыкальные), базы данных, электронные таблицы. 1. 2. Инструментальные средства для разработки программ. Это системы программирования на базе универсальных языков программи рования. Кроме того, сюда следует отнести инструментальные систе мы для разработки специализированных программ, например, обучаю щих программ, программных средств САПР, программ управления в ре альном времени и пр.
В кибернетической линии также можно различить два направле ния:
2. 1. Применение ЭВМ для управления различными объектами и процессами.
2. 2. Применение ЭВМ для моделирования различных процессов и явлений.
В курсе информатики ученики в большей или меньшей степени должны получить представление о каждом из названных приложений ЭВМ.
Важное место в общеобразовательной части курса информатики занимают алгоритмизация и программирование. Программирование нап
рямую связано с направлением 1. 2. , а при решении задач кибернети ческой линии широко применяется алгоритмический подход.
Наиболее популярным у пользователей ЭВМ является направление 1. 1. Освоение учениками средств КИТ должно быть первой практичес кой задачей в курсе ОИВТ. Умение программировать не является ре шающей составляющей компьютерной грамотности, но через весь курс проходит понятие алгоритма, которое практикуется следующим обра зом: алгоритм - последовательность команд управления исполните лем. Поэтому приемы работы со средствами КИТ рассматриваются как алгоритмы, строящиеся в рамках соответствующей системы команд. В настоящее время существует несколько подходов к преподава нию основ программированию в школе. Один из них - преподавание языков программирования высокого уровня на базе конкретной систе мы программирования, рассмотрен в данной дипломной работе. ПРИЛОЖЕНИЕ 1 2ВАРИАНТЫ ЗАДАНИЙ НА 0 2САМОСТОЯТЕЛЬНУЮ ПОДГОТОВКУ 21. ЛИНЕЙНЫЕ ПРОЦЕССЫ Задача 1.
Разработать алгоритм и составить программу для вычисления функции вида: A = x 52 0 + 3x + cos x. Задача 2. Вычислить значение функции вида: B = x * d - (x/y + sin x). Задача 3. Определить радиус круга с площадью S. Задача 4. Определить объем куба, площадь грани которого S. Задача 5. Вычислить значение функции вида: A = 2 7p 0 * x * (x + b). . 22. РАЗВЕТВЛЯЮЩИЕСЯ ПРОЦЕССЫ Задача 1.
Стороны треугольника: a, b, c. Является ли он равнобедренным. Задача 2.
Стороны четырехугольника a, b, c, d. Является ли он паралле лограммом. Задача 3.
Разработать алгоритм и составить программу для определения функции Y, заданной формулами: ax 52 0 + bx + c при a 7- 0 0 Y = bx 52 0 - (1 + x)/c при a = 0 Задача 4.
Разработать алгоритм и составить программу для определения функции Y, заданной формулами: a sin x + b cos x при a > 3 Y = a cos x - b sin x при a Задача 5.
Стороны треугольника: a, b, c. Определить его тип: равнобед ренный, равносторонний или не относящийся к данным группам... 23. ЦИКЛИЧЕСКИЕ ПРОЦЕССЫ Задача 1
Составить алгоритм и программу для вычисления и вывода на печать таблицы значений функции Y, если переменная Х меняет свое значение от Х 4н 0 до Х 4к 0 с шагом 7D 0Х: Y = ax 52 0 + bx + c. Задача 2
Составить алгоритм и программу для вычисления и вывода на печать таблицы значений функции Y, если переменная Х меняет свое значение от Х 4н 0 до Х 4к 0 с шагом 7D 0Х: ax 52 0 + bx + c при a > 0 Y = ax 52 0 + bx + c при a 7, 0 0 Задача 3 Составить программу для вычисления значения функции А: А 5 0= cos 5 0x 5 0+ 5 0sin 5 0x 5 0+ 5 0x 52 0, где х 41 0=20, х 42 0=25, х 43 0=30. Задача 4
Составить алгоритм и программу для вычисления и ввода на пе чать значений площади круга, если радиус R изменяет свое значение от R 4н 0 до R 4K 0 с шагом 7М 0R. Задача 5
Составить алгоритм и программу для подсчета количества зна чений 7М 0Х на промежутке от Х 4Н 0 до Х 4К 0. ПРИЛОЖЕНИЕ 2 2СТРУКТУРНАЯ АЛГОРИТМИЗАЦИЯ 21. ЛИНЕЙНЫЕ СТРУКТУРЫ
Линейным называется алгоритм, в котором отдельные операторы выполняются в естественном порядке независимо от значений исход ных данных и промежуточных результатов. 7 7 Пример: A = X 52 0 + Y - Z Ввод X, Y, Z A : = X 52 0 + Y - Z Вывод А . 22. РАЗВЕТВЛЯЮЩИЕСЯ СТРУКТУРЫ
Разветвляющимся называется алгоритм, в котором в зависимости от результата проверки некоторого условия выполняется один из нескольких заранее предусмотренных операторов. 7 7 0 7 Пример: Вычислить значение функции вида: ax + bx при a > b Y = ax - by при a 7 , 0 b да a > b нет Y : = ax + bx Y : = ax - by . 23. ЦИКЛИЧЕСКИЕ СТРУКТУРЫ ЦИКЛ-ПОКА ЦИКЛ-ДО 7б 0 нет 7 да 7 0 7 0 да нет ЦИКЛ С ПАРАМЕТРОМ цикл по i от i 4нач. до i 4кон. 0 шаг 7 . Пример: Вычислить значение функции: Y = (sin x)/x X изменяется от X 4н 0 до X 4к 0 с шагом 7М 0Х цикл по X от X 4н до X 4к 0 шаг 7М 0Х Y : = (sin x)/x ПРИЛОЖЕНИЕ 3 2МЕТОДИЧЕСКОЕ ПОСОБИЕ ДЛЯ ПЕРЕХОДА 2ОТ АЛГОРИТМИЧЕСКИХ ПОСОБИЙ К ЯЗЫКОВЫМ 21. ЛИНЕЙНЫЕ СТРУКТУРЫ
Линейным называется алгоритм, в котором отдельные операторы выполняются в естественном порядке независимо от значений исход ных данных и промежуточных результатов. 7 7 Структура Бейсик - программы: 10 REM 20 DIM 30 INPUT 40 ... . 100 101 END . 22. РАЗВЕТВЛЯЮЩИЕСЯ СТРУКТУРЫ
Разветвляющимся называется алгоритм, в котором в зависимости от результата проверки некоторого условия выполняется один из нескольких заранее предусмотренных операторов. 7 0 ЕСЛИ ТО ИНАЧЕ КОНЕЦ - ЕСЛИ 7 0 7 Пример оператора условного перехода языка Бейсик: 50 IF THEN ELSE 50 IF THEN 50 IF THEN ELSE . 23. ЦИКЛИЧЕКИЕ СТРУКТУРЫ ЦИКЛ-ПОКА Бейсик-программа: 50 IF THEN 60 ELSE 102 60 7б 0 нет ... . да 100 101 GOTO 50 7 0 ЦИКЛ-ДО Бейсик-программа: 50 7 0 ... . 100 101 IF NOT GOTO 50 7 0 да нет . ЦИКЛ С ПАРАМЕТРОМ Бейсик-программа: 50 FOR = TO STEP цикл по i от i 4нач. 0 60 до i 4кон. 0 шаг ... . 100 7 0 101 NEXT
Линейные, разветвляющиеся и циклические структуры могут со держать в себе операторы любой степени сложности. Описать такие операторы можно используя стандартные функции и операторы языка Бейсик. Для этого можно воспользоваться учебно-методическим посо бием "Программное обеспечение персональной ЭВМ Электроника МС 0513 (Электроника БК-0011М), стр. 27, 36. ПРИЛОЖЕНИЕ 4 2МЕТОДИКА ИСПОЛЬЗОВАНИЯ ПРЕДЛАГАЕМОГО 2ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
В общем случае подготовка к решению задачи с применением ЭВМ включает в себя следующие этапы:
_1. Анализ задачи на содержательном уровне. . На этом этапе пользователь должен уяснить физическую сущность решаемой задачи и проверить, нет ли уже готовой программы для решения этой задачи в библиотеке научных программ. Если такой программы нет, приступить к разработке программы.
_2. Разработка математической модели ... На этом этапе определя ется следующее:
- какие исходные данные и в каком виде необходимо ввести в машину;
- какие конечные результаты и в каком виде предполагается получить;
- какие математические закономерности позволяют преобразо вать исходные данные в промежуточные и конечные результаты; - каковы границы изменения значений рассматриваемых перемен ных;
- какие качественные зависимости и зависимости, отображаемые графиками или таблицами, выражаются количественными соотношениями. _3. Разработка алгоритмов решения задачи ... Здесь разрабатыва ется подробный план решения задачи с помощью ЭВМ, т. е. план пре образования исходных данных в промежуточные и конечные результа ты. Рассматриваются различные варианты алгоритмов, и осуществля ется выбор наилучшего в том или ином смысле.
Обычно алгоритм решения задачи представляется в виде блок-схемы (граф-схемы) либо в виде псевдокодов (в виде словесно го описания).
_4. Разработка программы решения задачи. . На этом этапе разра ботанный алгоритм представляется операторами того или иного языка программирования. В явном виде задаются значения исходных данных, подлежащих вводу в ЭВМ в процессе решения задачи. Разрабатывается задание, определяющее последовательность ввода и обработки прог раммы и исходных данных. На первом этапе необходимо использовать варианты задач. На третьем этапе используется методическое пособие по
структурной алгоритмизации. На четвертом - методическое пособие для перехода от алгоритмических конструкций к языковым. 2ОСНОВНАЯ РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА
1. Концепции системной интеграции информационных технологий в высшей школе. М. : РосНИИСИ, 1993.
2. Герасименко В. А. Новый взгляд на информатику и информати зацию: необходимость, проблемы становления и развития // Зарубеж ная радиоэлектроника, 1995, № 2, 3.
3. Основы информатики и вычислительной техники в базовой школе. Пособие для учителей. Под редакцией Семакина И. Г. , Пермь, 1995.
4. Аляев Ю. А. , Березинцев М. П. Программное обеспечение мик ро-ЭВМ "Электроника БК-0010"(Пакет программ), ч. 1, 2, Пермь, 1994. 5. Программное обеспечение ПЭВМ "Электроника БК-0011М". Учебно-методическое пособие, Пермь, 1992.
6. Аляев Ю. А. , Кушев В. О. , Лебедев В. В. Прикладное програм мирование, ч. 1. Алгоритмизация и программирование. Учебно-мето дическое пособие для самостоятельной работы.
7. Прикладное программирование. Сборник задач. Под редакцией Лебедева В. В. , Пермь, 1997.
2Руководитель 0........................................................................ ш1
................................................................................................. (ученая степень и звание, воинское звание)
................................................................................................. (подпись) (фамилия и инициалы)
Задание принял к исполнению "....... ".............................. 199.... г.
Курсант ..................................................................................... (воинское звание и подпись) ш0 2ЦЕЛЕВАЯ УСТАНОВКА И ИСХОДНЫЕ ДАННЫЕ
Исследовать особенности современных технологий программиро вания и разработать рекомендации по их использованию в учебном процессе. Провести анализ возможностей Бейсик-системы в учебном процессе базовой школы. Разработать учебно-методическое обеспече ние для самостоятельной работы. За основу взять Бейсик-систему, реализованную на БК-0011М. ш1 L+
----T-------------------------------------------T----------------¬ ¦ № ¦ Содержание расчетно-пояснительной записки ¦ Консультанты ¦ ¦П/П¦ (перечень подлежащих разработке вопросов) ¦ ¦ +---+-------------------------------------------+----------------+ ¦ ¦Введение ¦ ¦ ¦ 1. ¦Анализ концепций современной информатики и ¦ ¦ ¦ ¦новых информационных технологий. ¦ ¦ ¦ 2. ¦Исследование технологий программирования. ¦ ¦ ¦ ¦Выбор технологии для учебного процесса. ¦ ¦ ¦ 3. ¦Особенности методического обеспечения ¦ ¦ ¦ ¦структурного программирования в ВУЗе и ¦ ¦ ¦ ¦базовой школе. ¦ ¦ ¦ 4. ¦Анализ возможностей Бейсик-системы и ее ¦ ¦ ¦ ¦применение в учебном процессе. ¦ ¦ ¦ 5. ¦Разработка методического обеспечения для ¦ ¦ ¦ ¦самостоятельной работы. ¦ ¦ ¦ ¦ 5. 1. Разработка вариантов заданий на ¦ ¦ ¦ ¦самостоятельную работу. ¦ ¦ ¦ ¦ 5. 2. Разработка методического пособия по ¦ ¦ ¦ ¦структурной алгоритмизации. ¦ ¦ L---+-------------------------------------------+---------------- ш0 ш1 L+
----T-------------------------------------------T----------------¬ ¦ ¦ 5. 3. Разработка методического пособия для ¦ ¦ ¦ ¦перехода от алгоритмических конструкций ¦ ¦ ¦ ¦к языковым. ¦ ¦ ¦ ¦ 5. 4. Разработка методики использования ¦ ¦ ¦ ¦предлагаемого обеспечения. ¦ ¦ ¦ ¦Заключение. ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ L---+-------------------------------------------+---------------- ш0 ш1 L+
----T-------------------------------------------T----------------¬ ¦ № ¦ Перечень графического материала ¦ Примечание ¦ ¦П/П¦ (с точным указанием обязательных чертежей)¦ ¦ +---+-------------------------------------------+----------------+ ¦ 1. ¦Классификация технологий и языков ¦ ¦ ¦ ¦программирования высокого уровня. ¦ 1 л. Ф 1. ¦ ¦ 2. ¦Структура программы на языке Бейсик. ¦ 1 л. Ф 1. ¦ ¦ 3. ¦Этапы подготовки задачи пользователя к ¦ ¦ ¦ ¦решению. ¦ 1 л. Ф 1. ¦ ¦ 4. ¦Таблицы перехода от алгоритмических ¦ ¦ ¦ ¦конструкций к конструкциям на языке. ¦ 2 л. Ф 1. ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ L---+-------------------------------------------+---------------- ш0 2СПИСОК ЛИТЕРАТУРЫ
1. Концепции системной интеграции информационных технологий в высшей школе. М. : РосНИИСИ, 1993.
2. Герасименко В. А. Новый взгляд на информатику и информати зацию: необходимость, проблемы становления и развития // Зарубеж ная радиоэлектроника, 1995, № 2, 3.
3. Основы информатики и вычислительной техники в базовой школе. Пособие для учителей. Под редакцией Семакина И. Г. , Пермь, 1995.
4. Аляев Ю. А. , Березинцев М. П. Программное обеспечение мик ро-ЭВМ "Электроника БК-0010" (Пакет программ), ч. 1, 2, Пермь, 1994.
5. Программное обеспечение ПЭВМ "Электроника БК-0011М". Учебно-методическое пособие, Пермь, 1992.
6. Аляев Ю. А. , Кушев В. О. , Лебедев В. В. Прикладное програм мирование, ч. 1. Алгоритмизация и программирование. Учебно-мето дическое пособие для самостоятельной работы.
7. Прикладное программирование. Сборник задач. Под редакцией Лебедева В. В. , Пермь, 1997.