- •Введение в программирование и основы алгоритмизации
- •1.2. Понятие "правильной" программы
- •1.3. Надежность программного средства
- •1.4. Технология программирования как разработка надежных пс
- •1.5. Информатизация общества
- •Тема 2 источники ошибок в программных средствах
- •2.1. Интеллектуальные возможности человека
- •2.2. Неправильный перевод как причина ошибок в пс
- •2.3. Модель перевода
- •На каждом из этих шагов человек может совершить ошибку разной природы.
- •2.4. Основные пути борьбы с ошибками
- •Тема 3 общие принципы разработки программных средств
- •3.1. Специфика разработки пс
- •3.2. Жизненный цикл пс
- •3.3. Понятие качества пс
- •3.4. Внешнего описания и его роль в обеспечении качества пс
- •3.5. Обеспечение надежности – основной мотив разработки пс
- •3.5. Борьба со сложностью систем и обеспечение точности перевода
- •Тема 4 разработка структуры программы. Модульное и объектно-ориентированное программирование
- •4.1. Цель модульного программирования
- •4.2. Основные характеристики программного модуля
- •4.3. Методы разработки структуры программы
- •4.4. Объектно-ориентированное программирование
- •4.5. События и событийная модель
- •Тема 5 Алгоритмизация и разработка программного модуля
- •5.1. Определение алгоритма
- •Алгоритмизация - техника составления алгоритмов и программ для решения задач на эвм.
- •5.2. Изобразительные средства описания алгоритмов
- •5.3. Блок-схемы алгоритмов. Графические символы
- •5.4. Порядок разработки программного модуля
- •5.5. Структурное программирование
- •5.6. Пошаговая детализация и понятие о псевдокоде
- •Тема 6 тестирование и отладка программного средства
- •6.1. Основные понятия
- •6.2. Принципы и виды отладки пс
- •6.3. Заповеди отладки пс
- •6.4. Автономная отладка пс
- •Тема 7 Методы разработки алгоритмов
- •7.1. Метод частных целей
- •7.2. Метод подъема
- •7.3. Программирование с отходом назад
- •Тема 8 Алгоритмы сортировки
- •8.1. Сортировка. Основные понятия
- •8.2. Пузырьковая сортировка
- •8.3. Сортировка с помощью дерева
- •8.4. Пирамидальная сортировка
- •8.5. Быстрая сортировка
- •Тема 9 Алгоритмы поиска и перебора
- •9.1. Поиск. Основные понятия
- •9.2. Бинарный поиск
- •9.3. Поиск в сети
- •Тема 10 Событийно-управляемое программирование на языке Visual Basic
- •10.1. Историческая справка
- •10.2. Основы Visual Basic
- •Среда Windows: окна, события, сообщения
- •Интерактивная разработка
- •Интегрированная среда разработки
- •10.3. Формы и элементы управления
- •Разработка и установка свойств формы
- •События и методы формы
- •Кнопки управления как основа выполнения действий
- •10.4. Элементы управления пользователя
- •Флажки и переключатели
- •Другие стандартные элементы управления
- •10.5. Фокус. Последовательность переходов. Меню Фокус
- •Основы меню
- •Контекстные меню
- •Редактор меню
- •Подсказки пользователю с помощью диалога
- •Тема 11 Управление проектами
- •11.1. Работа с проектом и его структура
- •11.2. Работа с несколькими проектами
- •11.4. Установка параметров проекта
- •11.5. Дополнения и мастера
- •Тема 12 Управляющие конструкции
- •12.1. Конструкции принятия решения (ветвление)
- •12.2. Циклы
- •12.3. Работа со структурами управления и досрочный выход из них
- •Тема 13 Структура приложения. Техника написания кода
- •13.1. Структура приложения
- •13.2. Как работает событийное приложение
- •13.3. До начала кодирования
- •13.4. Техника написания кода
- •13.5. Автоматизация написания программы
1.5. Информатизация общества
Технологии программирования играли разную роль на разных этапах развития информатики как науки. По мере повышения мощности компьютеров и развития методологии программирования росла и сложность решаемых на компьютерах задач, что, в свою очередь, потребовало повышенного внимания к технологии программирования. Резкое удешевление стоимости компьютеров и, в особенности, стоимости хранения информации на компьютерных носителях привело к широкому внедрению компьютеров практически во все сферы человеческой деятельности. Это кардинальное обстоятельство и определило направленность технологии программирования. Человеческий фактор стал играть в ней решающую роль. Сформировалось достаточно глубокое понятие качества ПС, причем предпочтение стало отдаваться не столько его эффективности, сколько удобству работы с ним пользователя. Широкое использование компьютерных сетей привело к интенсивному развитию распределенных вычислений, дистанционному доступу к информации и электронному способу обмена сообщениями между людьми. Компьютерная техника из средства решения отдельных задач все более превращается в средство информационного моделирования реального и мыслимого мира, способного отвечать людям на интересующие их вопросы. Начинается этап глубокой информатизации (компьютеризации) человеческого общества. Все это ставит перед ТП новые и достаточно трудные проблемы.
Краткий исторический экскурс.
50-е годы. Маломощные компьютеры. Программирование ведется в машинном коде. Решаются научно-технические задачи (расчеты по формулам), задание на программирование содержит достаточно точную постановку задачи. Используется интуитивная технология программирования: сразу приступают к составлению программы по заданию, при этом задание часто меняется, что увеличивает время ее составления, документация оформлялась после создания программы. В этот период родилась фундаментальная для технологии программирования концепция модульного программирования, преодолевшая трудности программирования в машинном коде. Появились языки программирования высокого уровня, из которых только язык ФОРТРАН пробился в следующие десятилетия.
60-е годы. Бурное развитие и широкое использование языков программирования высокого уровня (АЛГОЛ, ФОРТРАН, КОБОЛ и др.), значение которых явно преувеличивается. Надежда, что эти языки решат проблемы, возникающие в процессе разработки больших программ, не оправдались. Повышение мощности компьютеров и накопление опыта программирования приводило к росту сложности решаемых задач. В процессе решения этих задач обнаружилась ограниченность языков, проигнорировавших модульную организацию программ. И только ФОРТРАН, сохранивший возможность модульного программирования, прошествовал в следующие десятилетия. Его пользователи не могли отказаться от него из-за мощного фонда программных модулей. Четко осознается важность методологии и технологии программирования. Появление в компьютерах системы прерываний приводит к развитию мультипрограммирования и созданию больших программных систем. Широко используется коллективная разработка программ, поставившая ряд технологических проблем.
70-е годы. Широкое распространение информационных систем и баз данных. Стоимость хранения одного бита информации на компьютерных носителях стала меньше, чем на традиционных носителях. Повысился интерес к компьютерным системам хранения данных. Началось интенсивное развитие технологии программирования в следующих направлениях: 1) развитие нисходящей разработки и структурного программирования; 2) развитие абстрактных типов данных и модульного программирования, возникновение идеи разделения спецификации и реализации модулей и использование модулей, скрывающих структуры данных; 3) исследование проблем обеспечения надежности и мобильности ПС; 4) создание методики управления коллективной разработкой ПС; 5) разработка инструментальных ПС поддержки технологии программирования.
80-е годы. Внедрение персональных компьютеров во все сферы человеческой деятельности и создание обширного и разнообразного контингента пользователей ПС. Бурное развитие пользовательских интерфейсов и создание концепции качества ПС. Появление языков программирования, например, Ада, учитывающих требования технологии программирования. Развитие методов и языков спецификации ПС. Бурный процесс стандартизации технологических процессов и документации, создаваемой в них. Выход на передовые позиции объектного подхода к разработке ПС. Развитие инструментальных сред их разработки и сопровождения. Создание концепции компьютерных сетей.
90-е годы. Широкий охват человеческого общества международной компьютерной сетью, с подключением персональных компьютеров как терминалов. Это породило ряд проблем технологического, юридического и этического плана по регулированию доступа к информации. Возникла проблема защиты информации и передаваемых по сети сообщений. Бурно развивается компьютерная технология разработки ПС (CASE-технология) и связанные с ней формальные методы спецификации программ. Наступил решающий этап информатизации и компьютеризации общества.