Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП Технология программирования.doc
Скачиваний:
20
Добавлен:
11.06.2015
Размер:
1.69 Mб
Скачать

Введение

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

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

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

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

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

Как и в любой инженерной области, в программировании процесс решения задачи состоит из таких этапов, как постановка задачи, поиск метода решения, проектирование решающего устройства (системы, технологии), его конструирование, внедрение, эксплуатация и модернизация. Спецификой программирования является то, что постановка задачи имеет целью создание информационной модели этой задачи, методом решения должен быть алгоритм обработки или реализации модели задачи, а устройством, решающим задачу, должна быть программа для компьютера. По образному выражению Никлауса Вирта, автора многих популярных языков программирования, «Программы = алгоритмы + структуры данных». Структура данных в программе как раз и является реализацией информационной модели задачи. Хотя любому человеку присуще алгоритмическое и модельное мышление, но огромное различие между представлением информации и алгоритмов в компьютере и в человеческом сознании создаёт и трудности в программировании.

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

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

Однако, здесь невозможно ограничиться формальным заучиванием правил языка и готовых программ. Главное в программировании – это понимание логики алгоритма и программы, т.е. понимание того, почему запрограммированная последовательность действий над используемыми в программе структурами данных приводит к решению задачи (или не приводит, если программа неправильная). Такое понимание развивается вместе с изучением языка программирования, в процессе разбора готовых примеров программ (с целью понять их логику), и закрепляется в попытках самостоятельного создания всё более усложняющихся программ. Важнейшую роль играют анализ и отладка составленной программы – поиск и устранение ошибок в программе, постепенно приводящие к обоснованному пониманию правильности логики алгоритма и её реализации в программе. Программирование – это не только (и не столько) кодирование и запуск программы на компьютере, но и размышление с карандашом и бумагой.

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

Для начального обучения очень важным является выбор языка и системы программирования. Обычно используются Pascal или более современные языки Delphi и Visual Basic. Использование в данном пособии языка JavaScript в качестве первого языка оправдано следующими обстоятельствами:

  1. Язык прост в изучении и использовании (проще перечисленных выше языков).

  2. Он содержит все основные средства и приёмы современного программирования и близок по структуре к таким профессиональным языкам, как С++ и Java.

  3. Любой Web-браузер и простейший текстовый редактор уже является достаточно удобной системой программирования на этом языке. Т.е. система программирования на JavaScript является бесплатным приложением к любым операционным системам. А входящая в состав пакета MS Office 2003 программа FrontPage является очень удобной системой программирования на языках HTML и JavaScript для платформы Windows.

  4. С помощью простых средств HTML и сценариев JavaScript легко создавать интерактивные приложения без использования какой-либо сложной среды создания интерфейса пользователя, как в системах программирования Visual Basic, Delphi, C++ или Java.

  5. Язык фактически и формально является международным и межплатформенным стандартом для разработки Web-приложений, что делает его изучение весьма практичным занятием. Это же обеспечивает и огромный выбор справочной и учебной литературы по JavaScript.

Данное учебное пособие, однако, не следует рассматривать как учебник по языку JavaScript или Web-дизайну, хотя и в этом качестве его можно использовать. Его цель – обучение студента основным понятиям алгоритмизации и программирования, базовым задачам, алгоритмам и структурам данных, часто встречающимся в практике программирования, основам технологии программирования и практике их применения. Таким образом, пособие соответствует программе курса «Технология программирования» по специализации «ИТТ».

В соответствии с целями курса пособие построено по логическому, а не по рецептурному принципу, что обеспечивает уверенность обучающегося в полноте получаемых знаний. Хотя пособие содержит большое количество примеров, иллюстрирующих все вопросы теории, но оно не предназначено для самостоятельного обучения умению программировать. Для приобретения такого умения необходима активная и систематическая работа студента на практических занятиях под руководством опытного преподавателя и не менее активное самостоятельное выполнение домашних заданий с использованием других методических разработок. Данное пособие здесь может помочь лишь как справочник. Основная задача пособия видится в систематизации изучаемого материала, важность чего может осознаваться, возможно, на более поздних этапах обучения и, особенно, в период подготовки к экзамену. Тематическая разбивка материала также соответствует, в основном, вопросам, предлагаемым для подготовки к экзамену. Ориентации на систематизацию знаний отвечает и сравнительная краткость пособия, и наличие в нём ещё более краткого конспекта-глос­сария, т.е. конспекта лекций, построенного по принципу словаря терминов – глоссария.