Теоретический курс включает следующие разделы и темы:
Раздел 1 Основы алгоритмов обработки информации
Тема 1.1 Этапы решения задач на ЭВМ
Постановка задачи и спецификация программы. Формализация задачи. Алгоритмизация. Программирование. Тестирование и отладка. Документирование. Сопровождение программы.
Тема 1.2 Основы алгоритмизации
Алгоритмы. Свойства и способы записи алгоритма: естественные языки, схемы, структурограммы, псевдоязыки, языки программирования. Основные правила разработки алгоритмов. Базовые алгоритмические структуры: следование, развилка, повторение. Способы их изображения. Типы алгоритмов. Пошаговая детализация как метод проектирования алгоритмов.
Тема 1.3 Современные методы программирования
Технология нисходящего проектирования программ. Метод структурного программирования. Метод процедурного программирования. Метод модульного программирования.
Технология восходящего проектирования программ. Метод объектно-ориентированного программирования.
Сущность структурного программирования: разбиение на подзадачи, нисходящее проектирование, стандартные структуры управления. Достоинства и недостатки. Правила проектирования и оформления структурных программ.
Понятие языка программирования. Этапы развития языков программирования. Современные тенденции в области языков программирования. Сравнение развития языков в представлении данных и способах реализации алгоритмов. Сравнительная характеристика языков программирования высокого уровня. Синтаксис и семантика. Способы описания синтаксиса: лингвистические формулы и синтаксические диаграммы. Структура языка программирования. Базовые элементы языка: алфавит, лексемы, выражения. Предложения языка: описания и операторы. Программа на языке высокого уровня: состав и структура. Критерии качества программы. Жизненный цикл программы.
Тема 1.4 Инструментальные средства разработки программ
Современные интегрированные среды проектирования программ. Состав и назначение элементов интегрированной среды программирования: текстовый редактор, транслятор, редактор связей, компоновщик, загрузчик, отладчик, инструктор, библиотекарь, профайлер. Схема обработки программы на языке программирования. Трансляция, виды трансляторов. Основные этапы трансляции. Набор, редактирование, отладка и выполнение программ в интегрированной среде программирования. Интерфейс пользователя среды.
Выбор среды программирования. Среда программирования Borland Pascal 7.0. Среда программирования PascalABC.NET. Среда программирования Delphi. Среда программирования Free Pascal. Этапы разработки программ.
Раздел 2 Применение структурного программирования для обработки информации
Тема 2.1 Разработка линейных программ
Описательные предложения языка программирования высокого уровня. Описание используемых библиотек, модулей, меток, констант, типов, переменных. Области действия описаний. Исполнительные предложения языка высокого уровня. Представление основных управляющих структур программирования.
Переменные и их типы. Порядковые и непорядковые типы данных. Дерево типов. Простые типы данных: целые, вещественные, символьный, логический, перечисляемые и ограниченные типы. Встроенные языковые средства для работы с данными простых и порядковых типов. Преобразование типов данных. Средства реализации линейных алгоритмов: арифметические операторы, операторы присваивания, вызова функции, составной, пустой. Стандартные функции. Ввод/вывод в текстовом режиме.
Тема 2.2 Разработка разветвляющихся программ
Логический тип. Переменные логического типа. Операторы сравнения. Логические операторы. Представление основных управляющих структур. Средства реализации разветвляющихся алгоритмов: условный оператор, оператор выбора, оператор перехода. Обход. Выбор. Вложенные условные операторы. Примеры задач на составление логические выражений. Примеры задач на выбор варианта.
Тема 2.3 Разработка циклических программ
Представление основных управляющих структур. Средства реализации циклических алгоритмов: операторы цикла с предусловием, с постусловием, с параметром. Условие выхода из цикла. Вложенные циклы. Перебор вариантов. Зацикливание. Реализация арифметических, итерационных и вложенных циклов. Вычисление номера шага. Вычисления с заданной точностью. Циклы с переспросом. Примеры решения задач.
Тема 2.4 Реализация алгоритмов обработки массивов
Структурированные типы данных: одномерные и многомерные массивы. Статическое распределение памяти. Реализация алгоритмов сортировки структур данных и поиска в этих структурах. Вычислимость индекса. Переменные - флаги. Переменная – счётчик событий. Примеры решения задач на поиск экстремальных элементов в векторе и матрице.
Тема 2.5 Реализация рекуррентных вычислений
Понятие итерации. Алгоритмические приёмы накопления суммы и произведения. Вычисления с помощью рекуррентных соотношений. Одномерные и многомерные рекуррентные соотношения. Примеры решения задач.
Раздел 3 Применение процедурного программирования для обработки информации
Тема 3.1 Подпрограммы
Процедуры и функции. Основные понятия. Принципы использования процедур и функций в программах. Параметры процедур и функций. Виды параметров: параметры-значения, параметры-переменные, параметры-константы. Вызов процедур и функций на исполнение. Формальные и фактические параметры. Механизм передачи параметров. Процедурные типы. Параметры процедурного типа. Примеры использования. Области действия описаний процедур и функций. Внутренние и внешние блоки. Локальность и глобальность. Организация интерфейса диалоговых программ. Примеры решения задач: методы сортировки вектора, перемножение матриц, сортировка фрагментов матрицы.
Тема 3.2 Рекурсия
Понятие рекурсии. Рекурсивные определения и алгоритмы. Программирование рекурсивных алгоритмов: рекурсивные процедуры и функции. Механизм рекурсивных вызовов. Бинарное дерево как рекурсивная структура данных. Рекурсивные процедуры обхода дерева: инфиксная форма, префиксная форма, постфиксная форма. Особенности использования рекурсии при построении дерева. Примеры решения задач.
Тема 3.3 Реализация алгоритмов обработки строк, множеств и записей
Структурированные типы данных: строки постоянной и переменной длины, множества, записи с постоянной и вариантной частью. Встроенные языковые средства для работы со строками и множествами. Примеры решения задач.
Тема 3.4 Реализация алгоритмов обработки файловых структур данных
Файлы. Структурная организация. Виды файлов. Файлы прямого и последовательного доступа к элементам. Файл как основное понятие баз данных и знаний. Файлы типизированные, не типизированные, текстовые. Стандартные файлы ввода и вывода. Встроенные языковые средства для работы с файлами разных видов. Примеры решения задач.
Раздел 4 Применение модульного программирования для обработки информации
Тема 4.1 Модули
Модули: назначение, структура, трансляция, тестирование. Особенности использования модулей. Модульные программы. Стандартные модули в системах программирования: назначение и правила использования. Организация взаимодействия программных модулей. Построение многомодульных программ средствами языка программирования высокого уровня. Запуск внешних программ. Командная строка. Многопрограммные комплексы.
Тема 4.2 Реализация алгоритмов работы с динамическими структурами данных
Динамические структуры данных. Указатели и ссылки. Встроенные языковые средства для работы с динамической памятью. Динамические массивы. Списки. Виды списков: односвязные и двусвязные списки, линейные и циклические списки. Линейные списки: основные виды и способы реализации. Линейный список как абстрактный тип данных. Деревья. Виды деревьев и способы их реализации. Другие виды динамических структур: стек, очередь, дек. Правила использования памяти при работе с динамическими структурами данных. Примеры решения задач.
Раздел 5 Объектно-ориентированное программирование
Тема 5.1 Объекты
Понятие объекта. Объект как тип данных, определяемый пользователем. Основные свойства объектно-ориентированного программирования: инкапсуляция, наследование и полиморфизм. Взаимосвязи между объектами. Статические и виртуальные методы. Ранее связывание полей и методов. Позднее связывание. Таблица виртуальных методов. Конструкторы и деструкторы. Событийно-управляемая модель.
Тема 5.2 Статические и динамические объекты
Объектные переменные. Статическое и динамическое выделение памяти. Стандартные процедуры по работе с динамическими объектами. Технология восходящего программирования. Примеры решения задач.
Распределение времени по разделам программы и видам занятий
Наименование темы
Число учебных часов
Лекции
Лабораторные работы
Самостоятельная работа
1.1 Этапы решения задач на ЭВМ
-
1.2 Основы алгоритмизации
-
1.3 Современные методы программирования
-
1.4 Инструментальные средства разработки программ
-
2.1 Разработка линейных программ
2.2 Разработка разветвляющихся программ
2.3 Разработка циклических программ
2.4 Реализация алгоритмов обработки массивов
2.5 Реализация рекуррентных вычислений
3.1 Подпрограммы
-
3.2 Рекурсия
-
3.3 Реализация алгоритмов обработки строк, множеств и записей
-
3.4 Реализация алгоритмов обработки файловых структур данных
-
4.1 Модули
-
4.2 Реализация алгоритмов работы с динамическими структурами данных