Рефераты. Коллекция рефератов


  Пример: Управление бизнесом
Я ищу:


Реферат: Анализ концепций современной информатики и новых информационных технологий

Анализ концепций современной информатики и новых информационных технологий

В наше время повсеместного распространения электронных вычислительных машин (ЭВМ) человеческие знания о природе информации приобретают общекультурную ценность. Этим объясняется интерес исследователей и практиков всего мира к относительно молодой и быстро развивающейся научной дисциплине - информатике. На сегодняшний день информатика выделилась в фундаментальную науку об иформационно - логических моделях, и она не может быть сведена к другим наукам, даже к математике, очень близкой по изучаемым вопросам. Объектом изучения информатики являются структура информации и методы ее обработки. Появились различия между информатикой как наукой с собственной предметной областью и информационными технологиями. Технология, в отличии от науки, предполагает созидательную деятельность для получения определенных результатов человеком, который использует данную технологию. Можно выделить некоторые информационные технологии, базирующиеся на применении компьютера, без которых человек не может обойтись в современном мире. Это универсальные технологии, основанные на работе с текстовыми редакторами, электронными таблицами, базами данных, графическими редакторами, а также мультимедиа и телекоммуникационные технологии. По мимо этого, существует множество специализированных компьютерных технологий (например, редактирование, компьютерная верстка, бухгалтерский учет, создание компьютерной анимации, рекламы, проектирование в архитектуре, моделирование одежды и многое другое). Еще один важный раздел компьютерных технологий - это компьютерные технологии обучения, представляющие колоссальные возможности для повышения эффективности занятий, придания им интереса и динамичности. Очевидно, что знания этих технологий должна давать школа. По мере распространения компьютерной техники вся совокупность взаимодействующей с ней людей все более четко разделяются на две большие группы: 1) системные и прикладные программисты, разрабатывающие системы математического обеспечения и пакеты прикладных программ для решения больших классов задач из самых различных отраслей; 2) широкий круг пользователей. Для представителей первой группы написание программ на тех или иных языках или непосредственно в машинных кодах является обязательной составной частью их профессиональной деятельности. Более того, продуктом деятельности системных программистов являются средства общения с ЭВМ, предназначенные для широкого круга пользователей. Общение пользователей с ЭВМ протекает в рамках специализированных, заранее разработанных программных систем, использующих привычную для них профессиональную и бытовую терминологию. Таким образом, для значительного большинства людей, использующих ЭВМ в своей работе или быту, знакомство с конкретными языками и системами необходимо не в большей степени, чем телефонному абоненту нужны технические подробности работы телефонного аппарата и АТС. В тоже время, с точки зрения пользователя, существуют глубокие и неглубокие уровни применения компьютера. Если человек использует компьютер для печатания какого либо документа, то компьютеру ничего н известно о содержательной стороне решаемой проблемы и используется он только как «умная» пишущая машинка с проверкой орфографии. Если же работающий за компьютером специалист сообщает ему сведения о содержании задачи, о ее понятиях и объектах (архитектор, составляющий проект дома, или предприниматель оптимизирующий свой подход), то пир таком глубоком применении компьютера возможна значительно более высокая эффективность его использования. А для этого необходимо нечто большее, чем «общий язык с компьютером», - нужна общая мысль, понятия, отдельный стиль мышления и навыки умственных действий. В настоящее время такой набор необходим практически каждому специалисту в любой из отраслей науки и техники. Ниже рассмотрены наиболее существенные из них. Навык планировать структуру действий, необходимых для достижения заданной цели при помощи фиксированного набора средств часто называют умением алгоритмически мыслить, хотя термин «структура действий» несколько шире классического определения алгоритма. Деятельность пользователя по описанию алгоритма решаемой задачи состоит в том, что видя перед собой конечную цель - результат, он конструирует программу (в широком смысле слова), план действий, представляющий последовательность отдельных более или менее стандартных операций. То, что в обиходе называют иногда программистскими способностями, определяется в первую очередь умением представить сложное действие в виде организованной совокупности простых. При этом, пользователь должен спланировать не только сами действия, но и используемые при этом информационно технические ресурсы. Человек, использующий накопленные машинными системами информационные фонды, даже будучи освобожденный от описания структуры данных, должен тем не менее отдавать себе отчет о классах используемых величин и их взаимосвязях. При этом весьма важен навык представить себе структуры информационных объектов в формализованном виде. Значение этого навыка в настоящее время повышается в связи с распространением интегрированных баз данных, информационных систем и АСУ, основу которых составляют информационные модели. При работе с такими моделями необходимо отразить в них все существенные для решения поставленной задачи свойства объектов и их взаимодействия, иначе решение, предложенное машиной может сослужить пользователю плохую службу. Решение задачи может быть эффективным только в том случае, когда правильно определен объем сведений, необходимых для ее решения, и правильно организован их поиск. При этом вырабатываются навыки формирования поисковых механизмов и пользования ими. По мере роста емкости и снижения стоимости запоминающих устройств ЭВМ становится реальна перспектива передачи машинам всего информационного фонда, накопленного человечеством. Это дает возможность пользователю оперативно получить практически любые необходимые ему сведения. Тем более важным оказывается умение правильно определить, какие именно сведения необходимы и по каким признакам организовать их поиск. Дисциплина и структурированность языковых средств коммуникации - умение правильно, четко и однозначно сформулировать мысль в понятной собеседнику форме и правильно понять текстовое сообщение. Системный и прикладной программист должен приобрести навык общения с машиной или системой на различных уровнях в зависимости от их «обученности». С системами низшего уровня (имеющие незначительное математическое обеспечение) общение возможно только при помощи указаний о «микродействиях» - машинных операциях. В системах с высоким уровнем математического обеспечения программист должен строить свою программу из крупных блоков - операторов языка высокого уровня и готовых программ, в том числе и разноязыковых. Пользователь далекий от подобного глобального подхода к решаемым задачам, тем не менее обязан, если он хочет рационально общаться с машиной, уметь превратить в процедуры часто используемые конструкции для того, чтобы в последствии применять их как элементарные предписания. Для рационального использования вычислительной техники пользователь должен иметь привычку своевременно обращаться к ЭВМ при решении задач из любой области. Если такая привычка не сформирована, нельзя гарантировать, что даже опытный пользователь, хорошо владеющий перечисленными выше навыками, догадается обратиться в нужный момент к ЭВМ, если такая задача ему прямо не поставлена, В результате может возникнуть такая ситуация, когда пользователь выполняет вычисления карандашом на бумаге сидя рядом с терминалом ЭВМ, позволяющей сделать эти вычисления гораздо быстрее и точнее. Также пользователь должен уметь работать клавиатурой и другими переферийными устройствами, такими как принтер, сканнер, модем, факс и т.д. Информатика как образовательная дисциплина быстро развивается. Если 3 - 4 года назад базовый курс информатики состоял из изучения основ алгоритмизации и программирования, основ устройства и применения вычислительной техники, то сегодня целью курс информатики в школе является повышение эффективности применения человеком компьютера как инструмента. Компьютерная грамотность определяется не только умением программировать, а, в основном, умением использовать готовые программные продукты, рассчитанные на пользовательский уровень. Эта тенденция появилась благодаря широкому рассмотрению «мягких» продуктов, ориентированных на неподготовленных пользователей. Разработка таких программно - информационных средств является весьма дорогостоящим делом в силу его высокой наукоемкости и необходимости совместной работы высококвалифицированных специалистов: психологов, компьютерных дизайнеров, программистов. Однако она окупает себя благодаря тому, что доступ к компьютеру сегодня может получить практически каждый человек даже без специальной подготовки. 2ВЫВОДЫ ПО РАЗДЕЛУ Проведя анализ концепций современной информатики, можно отметить следующее. Индустрия программного обеспечения ориентируется в основном на разработку пакетов программ для низкоквалифицированного пользователя. Такое положение позволяет зачастую отказаться от технологий программирования. Однако наряду с этим для решения конкретных инженерных задач, а также задач расчетного характера часто приходится использовать и языки программирования.

ИССЛЕДОВАНИЕ ТЕХНОЛОГИЙ ПРОГРАММИРОВАНИЯ И ВЫБОР ТЕХНОЛОГИЙ ДЛЯ УЧЕБНОГО ПРОЦЕССА

1. ИССЛЕДОВАНИЕ ТЕХНОЛОГИЙ ПРОГРАММИРОВАНИЯ

Важное место в программном обеспечении современных ЭВМ занимают системы программирования. Основное их назначение - освободить программиста от необходимости работать на языке машинных команд. Язык программирования, с которым работает система программирования, называется ее входным языком. Системы программирования именуются по названию своего входного языка. Например: Бейсик система, Паскаль - система, система пролог. Иногда в название систем включаются префиксы, обозначающие, например, фирменное происхождение системы. Очень популярны системы с приставкой «Турбо»: Турбо - Паскаль, Турбо - Си и др. Это системы программирования, разработанные фирмой Borland. Системы программирования - это универсальные средства работы с информацией. С их помощью можно решать вычислительные задачи, обрабатывать тексты, получать графические изображения, осуществлять хранение и поиск данных и т.д., в общем, делать все, что делают средства прикладного программного обеспечения - специализированные исполнители. Кроме того, сами эти средства (графические и текстовые редакторы, СУБД и др.) - это программы, написанные на языках программирования, созданные с помощью систем программирования. Языки программирования претерпели большие изменения с тех пор, как в сороковых годах началось их использование. Они все еще продолжают изменяться и теперь даже быстрее, чем когда либо ранее. Первые языки программирования были очень примитивными и мало чем отличались от формализованных упорядочений двоичных чисел (единиц и нулей), понятных компьютеру. Использование таких языков было крайне неудобно с точки зрения программиста, так как он должен знать числовые коды всех машинных команд, должен сам распределять память под команды программы и данные. На языках машинных команд трудно поддерживать структурную методику программирования. Для того, чтобы облегчить общение человека с ЭВМ были созданы языки программирования типа Ассемблер. Переменные величины стали изображаться символическими именами. Числовые коды операций заменились на мнемонические (словесные) обозначения, которые легче запомнить. Язык программирования приблизился к человеческому языку, но удалился от языка машинных команд. Чтобы ЭВМ могла работать на языке Ассемблера, необходим транслятор - системная программа, переводящая текст программы на Ассемблере в эквивалентные ей машинные команды. Языки типа Ассемблер - машиноориентированные, потому что они настроены на структуру машинных команд конкретного компьютера. Разные компьютеры с разными типами процессоров имеют разный Ассемблер. В пятидесятых годах, с широким развитием ЭВМ и применением их в различных областях науки и техники, возникла серьезная проблема: простой пользователь не мог работать с ЭВМ из-за сложности языков программирования, а подготовленный программист был просто не в состоянии обслужить огромное количество пользователей. Разрешением данной проблемы явилось создание языков программирования высокого уровня (ЯПВУ). Форма записи программ на ЯПВУ по сравнению с Ассемблером и машинными языками ближе к традиционной математической форме и разговорному языку. Они легко изучаются, хорошо поддерживают структурную методику программирования, и еще, что очень важно, ЯПВУ являются машинонезависимыми языками. Одна и та же программа на таком языке может быть выполнена на ЭВМ различных типов, оснащенных соответствующим транслятором. Однако программы, написанные на языках высокого уровня, занимают больше памяти и медленнее выполняются, чем программы на машинных языках или языках Ассемблера. Первыми популярными языками высокого уровня, появившимися в 50-х годах, были Фортран, Кобол (в США) и Алгол (в Европе). Для первых ЯПВУ была характерна их предметная ориентация. Так языки Фортран и Алгол были ориентированы на научно - технические расчеты математического характера. Кобол - язык для программирования экономических задач. В нем, по сравнению с двумя другими языками программирования, слабее развиты математические средства, зато хорошо развиты средства обработки текстов, организация вывода данных в форме требуемого документа. Огромное количество новых языков программирования стало появляться в 60-х, 70-х годах. За всю историю ЭВМ их было создано более тысячи. Однако распространились и выдержали испытание временем немногие. В 1965 году появились два новых важных языка. Профессорами университета в городе Дартмуне Т. Куртцем и Д. Кемени был разработан язык для обучения программированию, который являлся упрощенной версией Фортрана и получил название Бейсик (Beginner's All-purpose Simbolic Instruction Code, т. е. многоцелевой код символических команд для начинающих). Бейсик предоставляет разнообразные средства для диалога: пользователь имеет возможность «общаться» с Бейсик-программой во время ее выполнения. Программа может «попросить» пользователя ввести данные, проверить их, осуществить выбор и т.д. Наибольшее признание Бейсик получил с появлением микроЭВМ начиная с 1975 года. Сейчас Бейсик со всеми его реализациями вполне можно назвать наиболее известным и широко распространенным языком высокого уровня. Вторым языком, появившемся в 1965 году, был ПЛ/1 (Programming Language 1, т. е язык программирования 1). ПЛ/1 был разработан при содействии фирмы IBM. При этом преследовалась цель создать язык, сочетающий в себе лучшие свойства Алгола, Кобола и Фортрана. ПЛ/1 действительно подходит для решения широкого круга задач и является более гибким по сравнению с Алголом, Коболом и Фортраном. При появлении языка ПЛ/1 предсказывали, что он станет основным языком и в конечном итоге заменит своих предшественников. Однако этого не произошло. Главная причина по-видимому связана с тем, что некоторые пользователи Кобола и Фортрана не ощутили тех преимуществ языка ПЛ/1, которые оправдали бы переход к нему. Другая причина связана с «размерами» языка. Большое количество средств и разнообразие операторов ПЛ/1 привели к тому, что он оказался довольно сложным в изучении. В 1971 году профессор Н. Вирт из Технического университета в Цюрихе разработал новый язык, известный под названием «Паскаль» (в честь хорошо известного математика 17-го века Блеза Паскаля). Язык паскаль основан на Алголе, но содержит ряд усовершенствований. Первоначально он создавался как учебный язык, в нем аккуратно соблюдена структурная линия программирования. Наибольший успех и распространение языку Паскаль принесли первые персональные компьютеры. Фирма Borland Internetional Inc (США) разработала систему Турбо - Паскаль для ПК. Турбо - Паскаль - это не только язык и транслятор с него, но еще и операционная оболочка, позволяющая пользователю удобно работать на Паскале. Турбо - Паскаль вышел за рамки учебного предназначения и стал языком профессионального программирования с универсальными возможностями. В силу своих достоинств Паскаль послужил источником для создания многих основных современных языков программирования, таких как Ада, Си, Модула-2 и др. Язык Си первоначально был разработан для мини - ЭВМ использующих операционную систему UNIX. Он является относительно простым языком, в нем нет операций над символьными строками и списками, но, в отличии от Паскаля, в нем заложены возможности непосредственного обращения к некоторым машинным командам, к определенным участкам памяти компьютера. Си широко используется как инструментальный язык для разработки операционных систем, трансляторов, баз данных т других системных и прикладных программ. В 1965 году появился язык программирования Лисп (LISt Processing, т. е. обработка списков). Он служит для обработки строк и рекурсивных данных. Лисп располагает также средствами для выполнения арифметических и логических операций. Он находит широкое применение в исследованиях по созданию искусственного интеллекта. В настоящее время существует большое количество языков высокого уровня, и каждый год появляются новые языки (хотя немногие из них действительно реализованы и в какой-то степени используются). В современной информатике можно выделить два основных направления развития языков программирования: процедурное и непроцедурное (рис. 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 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номер строки 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условие 7> 0 THEN 7< 0оператор 1 7> 0 ELSE 7< 0оператор 2 7> Оператор IF может содержать только одну ветвь, если же по какому-либо из условий требуется выполнение нескольких операторов, то вместо оператора в ветви указывается номер строки, с которого необходимо продолжить выполнение программы. Частные случаи оператора условного перехода IF: 50 IF 7< 0усл. 7> 0 THEN 7< 0оп. 1 7> 50 IF 7< 0усл. 7> 0 THEN 7< 0ном. строки k 7> 0 ELSE 7< 0оп. 2 7> 50 IF 7< 0усл. 7> 0 THEN 7< 0ном. строки i 7> 0 ELSE 7< 0ном. строки j 7> Оператор IF используется также для организации циклических структур. Структура ЦИКЛА - ПОКА на языке Бейсик записывается следующим образом: 50 IF 7< 0усл. 7> 0 THEN 60 ELSE 102 60 7< 0оператор тела цикла 1 7>. 100 7< 0оператор тела цикла N 7> 101 GOTO 50 102 7< 0продолжение программы 7> В данном случае, пока параметр цикла удовлетворяет заданному условию, осуществляется переход к телу цикла по строке 60 (THEN 60), и затем, после его выполнения и изменения параметра цикла, программа возвращается к сроке 50 (101 GOTO 50) для проверки условия и т.д. Как только параметр цикла удовлетворит условию, дальнейшее выполнение программы начинается со строки 102 (ELSE 102). ЦИКЛ - ДО тоже организуется с помощью оператора IF, только тело цикла предшествует проверке условия: 50 7< 0оператор тела цикла 1 7>. 100 7< 0оператор тела цикла N 7> 101 IF 7< 0усл. 7> 0 THEN 50 102 7< 0продолжение программы 7> В данной конструкции тело цикла выполняется до тех пор, пока параметр цикла удовлетворяет условию (ветвь THEN 50). Для реализации цикла с заданным числом повторений в языке Бейсик имеется специальная конструкция: 50 FOR 7< 0параметр 7> 0= 7< 0нач. знач. 7> 0 ТО 7< 0кон. знач. 7> 0 STEP 7< 0шаг. 7> 60 7< 0оператор тела цикла 1 7>. 100 7< 0оператор тела цикла N 7> 101 NEXT 7< 0параметр 7> 102 7< 0продолжение программы 7> В строке 50 задаются начальное и конечное значения параметров цикла, а также шаг, с которым осуществляется его изменение каждый раз после выполнения тела цикла (101 NEXT 7< 0параметр 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 представлена методика использования этого обеспечения.