Другие статьи

Цель нашей работы - изучение аминокислотного и минерального состава травы чертополоха поникшего
2010

Слово «этика» произошло от греческого «ethos», что в переводе означает обычай, нрав. Нравы и обычаи наших предков и составляли их нравственность, общепринятые нормы поведения.
2010

Артериальная гипертензия (АГ) является важнейшей медико-социальной проблемой. У 30% взрослого населения развитых стран мира определяется повышенный уровень артериального давления (АД) и у 12-15 % - наблюдается стойкая артериальная гипертензия
2010

Целью нашего исследования явилось определение эффективности применения препарата «Гинолакт» для лечения ВД у беременных.
2010

Целью нашего исследования явилось изучение эффективности и безопасности препарата лазолван 30мг у амбулаторных больных с ХОБЛ.
2010

Деформирующий остеоартроз (ДОА) в настоящее время является наиболее распространенным дегенеративно-дистрофическим заболеванием суставов, которым страдают не менее 20% населения земного шара.
2010

Целью работы явилась оценка анальгетической эффективности препарата Кетанов (кеторолак трометамин), у хирургических больных в послеоперационном периоде и возможности уменьшения использования наркотических анальгетиков.
2010

Для более объективного подтверждения мембранно-стабилизирующего влияния карбамезапина и ламиктала нами оценивались перекисная и механическая стойкости эритроцитов у больных эпилепсией
2010

Нами было проведено клинико-нейропсихологическое обследование 250 больных с ХИСФ (работающих в фосфорном производстве Каратау-Жамбылской биогеохимической провинции)
2010


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

Специфические особенности Каратау-Жамбылской биогеохимической провинции связаны с производством фосфорных минеральных удобрений.
2010

Особенности преподавания процедурно-ориентированных языков

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

Процедурные языки дают возможность программисту разбить программу обработки информа­ции на несколько программ (процедур) более низкого уровня, которые определяют структуру про­граммы в целом. Последовательные обращения к ним управляют выполнением программы, со­стоящей из процедур. Программа прекращает работу тогда, когда исчерпывается список вызовов процедур. Используя эту парадигму, программисты могли писать программы до нескольких тысяч строк длиной. Эта новая парадигма программирования была прогрессивной по сравнению с пара­дигмой программирования на машинном языке, так как в нее было добавлено главное средство структурирования — процедуры, на которые разбивалась первоначальная программа. Более мелкие процедуры (функции) не только проще понять, но также проще отладить. Кроме того, легко пони­маемый в коротких программах язык программирования становится нечитабельным, когда дело касается больших программ. Важную роль в новой парадигме программирования сыграло появле­ние в языках средств поддержки, позволяющих оперировать программами. Идея написания под­программ появилась гораздо раньше, но отсутствие операционных возможностей в первых языках существенно снижало эффективность их применения. Подпрограммы можно было сохранять и ис­пользовать в других программах. В результате были созданы огромные библиотеки расчетных и служебных подпрограмм, которые по мере надобности вызывались из разрабатываемой программы.

Типичная программа того времени состояла из основной программы, области глобальных дан­ных и набора подпрограмм (в основном библиотечных), выполняющих обработку всех данных или их части (рис. 1).

Слабым местом такой архитектуры было то, что при увеличении количества подпрограмм воз­растала вероятность искажения части глобальных данных какой-либо подпрограммой. Например, подпрограмма поиска корней уравнения на заданном интервале по методу деления отрезка пополам меняет величину интервала. Если при выходе из подпрограммы не предусмотреть восстановления первоначального интервала, то в глобальной области окажется неверное значение интервала. Чтобы сократить количество таких ошибок, было предложено в подпрограммах размещать локальные дан­ные (рис. 2).

 

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

Обучение разрешению этих и других вопросов — вот цель настоящего исследования. Конечно, появление их связано со сложностью программного обеспечения. Одним из путей решения постав­ленной проблемы обучения программированию на уровне создания программ для сложных систем является использование в учебном процессе информационных специальностей новых технологий.

Объективно все это было вызвано несовершенством технологии программирования. Прежде все­го стихийно использовалась разработка «снизу-вверх» — подход, при котором вначале проектирова­ли и реализовывали сравнительно простые подпрограммы, из которых затем пытались построить сложную программу. В отсутствие четких моделей описания подпрограмм и методов их проектиро­вания создание каждой подпрограммы превращалось в непростую задачу. Интерфейсы подпрограмм получались сложными. При сборке программного продукта выявлялось большое количество ошибок, как правило, требовавших серьезного изменения уже разработанных подпрограмм. Это еще более осложняло ситуацию, так как в программу часто вносились новые ошибки, которые также необходи­мо было исправлять. В конечном итоге, процесс тестирования и отладки программ занимал более 80 % времени разработки, если вообще когда-нибудь заканчивался.

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

Из процедурно-ориентированных языков широко известны языки: Fortran, Algol, Cobol, Basic, Pascal и т.д. Спектр языков этой группы очень широк, и среди них существует определенная иерар­хия. Считается, что Basic предназначается для начинающих программистов, Pascal — язык студентов (язык «правильного», классического программирования). Первоначально на ЭВМ в основном реша­лись задачи вычислительного характера, где основная часть работы машины сводилась к расчетам по формулам. Для составления программ решения задач такого типа рекомендуются языки фортран (Fortran) или алгол (Algol). Задачи экономического характера имеют уже иную специфику. Например, при расчете на ЭВМ заработной платы важно не только начислить зарплату, но и получить готовую ведомость. Для решения подобного рода проблем языки фортран и алгол не очень удобны. Особен­ности экономических задач были учтены при создании языка кобол (Cobol).

Вообще для каждого класса задач обычно создается один или несколько языков программирования.

Вместе с тем существуют определенные соглашения в использовании языков программирова­ния. Так, при создании программ для собственных работ пользователь может применять любой язык, даже Basic. При разработке программного обеспечения для одного заказчика корректно использовать язык Pascal, для многих потребителей — язык Си (С). Basic популярен среди программистов. Однако для построения сложных программ он, в силу ограниченных возможностей, подходит плохо.

Общепризнано, что Pascal является наилучшим средством для обмена программами между раз­личными типами ПЭВМ. На основе разработки языка Pascal предложен ряд новых языков, например, язык Модула - 2 (Modula - 2), в котором особое внимание уделяется построению программы как на­бора независимых модулей. Также на базе языка Pascal создан язык Ада. Для разработки коммерче­ских программ чаще используется язык Си, который удачно сочетает в себе средства языка высокого уровня и языка Ассемблера, что позволяет разрабатывать компактные, быстродействующие, высоко­эффективные программные продукты. Все описанные выше языки программирования используют так называемые пошаговые описания алгоритмов. Именно в этом и заключается источник большой трудоемкости подготовки задач к решению. К этому этапу также следует отнести и проблемно­ориентированные языки программирования (Simula, GPSS и др.). В этих языках имеется возможность описывать алгоритмы обработки информации более крупными конструкциями. Это делает програм­мы пользователей более наглядными, так как каждая используемая конструкция соответствует впол­не определенной части проблемы, исследуемой пользователем.

Следует отметить появление непроцедурных описательных языков. Несмотря на слово «непроце­дурный», они также являются языками второго этапа. Примером такого языка служит ПРОЛОГ (ПРО —    программирование, ЛОГ — логики), который широко применяется специалистами в области искус­ственного интеллекта. Конструкции языка соответствуют не математическим формулам, а определяют отношения между объектами и величинами. Язык состоит только из описаний и не имеет как таковых команд. Известно, что языков высокого уровня несколько сот, поэтому дальнейший их анализ прово­дить не будем.

Языки, рассмотренные выше, применяются, когда число строк программного кода до 1000, при­чем срок исполнения — до 1 месяца. Их может выполнить 1 программист, причем вероятность успешного завершения таких программ 100 %. Это небольшие приложения и дополнения, вносимые в готовые системы.

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

Педагогические аспекты преподавания языков программирования включают следующие вопросы: класс решаемых задач; классификация языков программирования, в зависимости от класса решаемых задач; типы ЭВМ и систем программирования, на которых реализуются разработанные программы.

Конец 2-го тысячелетия характерен тем, что в мире новых информационных технологий были разработаны новые компьютерные технологии и, соответственно, новое программное обеспечение. Часть из них была реализована в различных языках программирования. В зависимости от класса ре­шаемых задач языки программирования делятся на соответствующие группы: языки процедурного программирования (Algol, Fortran, PL/1, Кобол, Фокал, Ада, Basic, Pascal), языки системного про­граммирования (Ассемблер, С, C++), языки логического программирования (Lisр, Multilisp, CommonLisp, Prolog, Рефал, Planner, FRL, KRL, MicroPlanner, QA4, Qlisp), языки функционального параллельного программирования (Alfl, ML, SML, APL, Fun, ParAlfl, PPL/1, Hope, Miranda) (табл.)

Т а блица

Классификация языков программирования

Языки процедур­ного программиро­вания

Языки системного программирования

Языки логического программирования

Функциональные языки параллельного программирования

Алгол, Фор-PL/i, Кобол, Фокал, Ада, Basic, Pascal

Ассемблер, Си, С++

Lisp, Multilisp, Com­monLisp, Prolog, Рефал, Planner, FRL, KRL, OA4, Olisp, Mi­croPlanner

Alfl, ML, SML, APL, Fun, Hope, ParAlfl, PPL/1, Miranda

 

Кроме того, существуют другие группы: языки параллельного программирования (OCCAM, PFOR, Glypnir, язык граф-схем, Actus, параллельный КОБОЛ, ОВС-ЛЯПАС, ОВС-МНЕМОКОД, ОВС-АЛГОЛ, ОВС-Фортран, язык РА (I), язык PA (GO),...); языки программирования для Интернета (HTML, Perl, Tcl/Tk, VRML); языки программирования баз данных (структурированный язык запро­сов SQL, PL/SQL, INFORMIK 4GL, NATURAL).

В целом алгоритмическая линия в курсе профилирующих дисциплин — это определенным обра­зом ориентированный содержательно-методический компонент обучения, пронизывающий все обу­чение и получающий наибольшее развитие при изучении практических методов алгоритмизации с использованием современных информационных технологий. В процессе обучения студенты приобре­тают навыки эффективного решения профессиональных задач с применением современных систем программирования и средств разработки приложений, таких как Delphi, Visual Basic, Visual C++, C++ Builder и др.

Перед педагогами, ведущими информационные дисциплины, ставятся следующие задачи:

  •  научить студентов классифицировать задачи и выбирать соответствующий язык программиро­вания для представления алгоритмов решения задачи;
  •  изучать современные языки программирования и обучать студентов навыкам программирова­ния в современном мире новых информационных технологий;
  • дать квалифицированное образование студентам в области вычислительной техники (совре­менные ПЭВМ, их архитектура, принципы работы);
  • дать глубокие научные, теоретические и практические знания для овладения принципами ра­боты с современными системами программирования;
  • в связи с появлением новых информационных технологий изучить проблемы обучения студен­тов в области вычислительной техники и сформировать у студентов научное мировоззрение.

Все перечисленные выше проблемы требуют от педагогов высокого профессионализма, квали­фикации, научного подхода к решению проблем образования, постоянного повышения квалифика­ции, обмена опытом работы с коллегами, просмотра периодической печати, овладения навыками ра­боты с современными программными продуктами и компьютерными технологиями [2]. Чтобы перей­ти к общим вопросам процесса разработки программ, отметим некоторые недостатки процедурно­ориентированных языков: они не отличаются гибкостью и не очень откликаются на неожиданные события; взаимодействие с пользователем ограничено, а количество различных выполняемых ветвей заранее фиксировано; контроль остается за программой, а не пользователем; трудности сопровожде­ния приложений; сложность изменения функциональных возможностей системы без внесения суще­ственных изменений в ее структуру; низкая эффективность.

Теперь рассмотрим некоторые общие вопросы алгоритмизации.

Процесс разработки программы и вывод полученных результатов включает следующие этапы:

  •  разработка алгоритма решения задачи;
  •  разработка программы на конкретном языке программирования (например, Object Pascal);
  •  реализация программы в соответствующей среде программирования (например, Delphi);
  •  тестирование и отладка программы.

Разработка алгоритма решения задачи необходима для того, чтобы пользователь ПЭВМ мог за­дать формальное описание способа решения задачи в виде конечной (по времени) последовательно­сти действий. Правильно разработанный алгоритм решения задачи устранит ошибки, которые в даль­нейшем могут возникнуть в процессе разработки программы. Например, если разработчик программ­ного обеспечения решает задачу по обработке сложных массивов данных (сложные циклы), а в алго­ритме решения задачи описаны простые циклы, тогда программа, составленная для этой задачи, бу­дет некорректной.

Для представления алгоритма в виде, понятном компьютеру, служат языки программирования. То есть алгоритм действий решения задачи записывается на одном из языков программирования. Языки программирования отличаются от естественных языков ограниченным числом «слов». Для того чтобы пользователь мог грамотно разработать программу, ему необходимо знать синтаксис и семантику языка программирования. Синтаксис языка программирования — строгие правила записи команд (операторов), семантика — смысл каждой команды и конструкций языка.

Без понимания алгоритмов и структур данных современному специалисту информационного профиля невозможно создать сколько-нибудь серьезный программный продукт. В этой связи вклю­чение в учебный процесс профессиональной подготовки студентов информационных специальностей разработанного спецкурса «Алгоритмы и структуры данных» является вполне обоснованным. Акту­альность разработки и внедрения данного спецкурса объясняется тем, что структуры данных и алго­ритмы служат теми материалами, из которых строятся программы. Более того, сам компьютер состо­ит из структур данных и алгоритмов, при этом его работа с любыми данными выполняется только в соответствии с неизменным набором алгоритмов, которые определяются системой команд цен­трального процессора. Следует отметить, что классической стала формула разработки программ, предложенная Н.Виртом: «Алгоритмы + структуры данных = программы» [3].

Список литературы

1    Жангисина Г.Д. Обучение языкам программирования в высшей школе. — Алматы: НИЦ «Ғылым», 2003. — 364 с.

2    Егоров В.В. Организационно-педагогические основы подготовки инженера-педагога для профессионально-трудового обучения учащихся: Автореф. дис. ... д-ра пед. наук. — Алматы, 1995. — 43 с.

3     ВиртН. Алгоритмы + структуры данных = программы. — М.: Мир, 1985. — 430 с.

Разделы знаний

Архитектура

Научные статьи по Архитектуре

Биология

Научные статьи по биологии 

Военное дело

Научные статьи по военному делу

Востоковедение

Научные статьи по востоковедению

География

Научные статьи по географии

Журналистика

Научные статьи по журналистике

Инженерное дело

Научные статьи по инженерному делу

Информатика

Научные статьи по информатике

История

Научные статьи по истории, историографии, источниковедению, международным отношениям и пр.

Культурология

Научные статьи по культурологии

Литература

Литература. Литературоведение. Анализ произведений русской, казахской и зарубежной литературы. В данном разделе вы можете найти анализ рассказов Мухтара Ауэзова, описание творческой деятельности Уильяма Шекспира, анализ взглядов исследователей детского фольклора.  

Математика

Научные статьи о математике

Медицина

Научные статьи о медицине Казахстана

Международные отношения

Научные статьи посвященные международным отношениям

Педагогика

Научные статьи по педагогике, воспитанию, образованию

Политика

Научные статьи посвященные политике

Политология

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

Психология

В разделе "Психология" вы найдете публикации, статьи и доклады по научной и практической психологии, опубликованные в научных журналах и сборниках статей Казахстана. В своих работах авторы делают обзоры теорий различных психологических направлений и школ, описывают результаты исследований, приводят примеры методик и техник диагностики, а также дают свои рекомендации в различных вопросах психологии человека. Этот раздел подойдет для тех, кто интересуется последними исследованиями в области научной психологии. Здесь вы найдете материалы по психологии личности, психологии разивития, социальной и возрастной психологии и другим отраслям психологии.  

Религиоведение

Научные статьи по дисциплине Религиоведение опубликованные в Казахстанских научных журналах

Сельское хозяйство

Научные статьи по дисциплине Сельское хозяйство опубликованные в Казахстанских научных журналах

Социология

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

Технические науки

Научные статьи по техническим наукам опубликованные в Казахстанских научных журналах

Физика

Научные статьи по дисциплине Физика опубликованные в Казахстанских научных журналах

Физическая культура

Научные статьи по дисциплине Физическая культура опубликованные в Казахстанских научных журналах

Филология

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

Философия

Научные статьи по дисциплине Философия опубликованные в Казахстанских научных журналах

Химия

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

Экология

Данный раздел посвящен экологии человека. Здесь вы найдете статьи и доклады об экологических проблемах в Казахстане, охране природы и защите окружающей среды, опубликованные в научных журналах и сборниках статей Казахстана. Авторы рассматривают такие вопросы экологии, как последствия испытаний на Чернобыльском и Семипалатинском полигонах, "зеленая экономика", экологическая безопасность продуктов питания, питьевая вода и природные ресурсы Казахстана. Раздел будет полезен тем, кто интересуется современным состоянием экологии Казахстана, а также последними разработками ученых в данном направлении науки.  

Экономика

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

Этнология

Научные статьи по Этнологии опубликованные в Казахстане

Юриспруденция

Раздел посвящен государству и праву, юридической науке, современным проблемам международного права, обзору действующих законов Республики Казахстан Здесь опубликованы статьи из научных журналов и сборников по следующим темам: международное право, государственное право, уголовное право, гражданское право, а также основные тенденции развития национальной правовой системы.