В процессе развития информатики как прикладной науки появились разные подходы к программированию.
Курс "Программирование" призван содействовать знакомству студентов с различными парадигмами проектирования и разработки программного обеспечения. Он важен с той точки зрения, что, являясь составной частью подготовки учителя информатики, способствует развитию алгоритмического мышления, навыков программирования студентов.
Цель дисциплины: изучение методов программирования для овладения знаниями в области технологии программирования; подготовка к осознанному использованию как языков программирования, так и методов программирования.
Воспитательной целью дисциплины является формирование у студентов научного, творческого подхода к освоению технологий, методов и средств производства программного обеспечения.
Основные задачи курса программирования на основе структурного и объектно-ориентированного подхода:
- знакомство с методами структурного и объектно-ориентированного программирования как наиболее распространенными и эффективными методами разработки программных продуктов;
- обучение разработке алгоритмов на основе структурного и объектно-ориентированного подхода;
- закрепление навыков алгоритмизации и программирования на основе изучения языка программирования Object Pascal;
- знакомство с основными структурами данных и типовыми методами обработки этих структур;
- создание практической базы для изучения других учебных дисциплин, таких, как "Численные методы", "Компьютерное моделирование" и др.
Отбор материала основывается на необходимости ознакомить студентов со следующей современной научной информацией:
- о парадигмах программирования (императивной, функциональной, логической);
- о технологиях программирования (структурной, модульной, объектно-ориентированной);
- об аспектах формализации синтаксиса и семантики языков программирования.
Содержательное наполнение дисциплины обусловлено общими задачами в подготовке учителя математики и информатики.
Изучение дисциплины базируется на знании математических дисциплин и общего курса информатики.
Концепция дисциплины основана на том, что эта дисциплина имеет общеобразовательный и в определенной степени мировоззренческий характер и предназначена для формирования учителя математики и информатики с широким научным кругозором.
Научной основой для построения программы данной дисциплины является теоретико-прагматический подход в обучении.
Требования к уровню освоения дисциплины
Выписка из ФГОС СПО специальности 030100 "Прикладная информатика" ( ОКСО), содержащая требования к обязательному минимуму содержания дисциплины:
Программирование. Объектно-ориентированная парадигма программирования. Объекты, полиморфизм и наследование. Объектно-ориентированное проектирование. Конструирование объектов: строки, стеки, списки, очереди, деревья. Математические объекты: рациональные и комплексные числа, вектора, матрицы. Библиотеки объектов. Интерфейсные объекты: управляющие элементы, окна, диалоги. События и сообщения. Механизмы передачи и обработки сообщений в объектно-ориентированных средах. Конструирование программ на основе иерархии объектов.
|
Вид учебной работы |
|||
|
Всего по учебному плану |
В т.ч. по семестрам |
||
|
3 |
4 |
||
|
Аудиторные занятия |
116 |
56 |
60 |
|
лекции |
40 |
20 |
20 |
|
практические занятия |
24 |
12 |
12 |
|
лабораторные работы |
52 |
24 |
28 |
|
Самостоятельная работа |
116 |
58 |
58 |
|
ВСЕГО ЧАСОВ НА ДИСЦИПЛИНУ |
232 |
114 |
118 |
|
Текущий контроль |
контрольная — 3 |
Тест — 1, |
|
|
Виды промежуточного контроля |
Экзамен — 3 |
Экзамен — 4 |
|
Распределение часов по темам и видам учебной работы

Содержание курса
Введение в алгоритмизацию и программирование
Тема 1. Методологии программирования. Программирование как раздел информатики. Метафоры (парадигмы) программирования. Методологии программирования. Основные понятия и определения. История и эволюция. Классификация по ядрам методологии: императивное программирование, объектно-ориентированное, функциональное, логическое. Топологическая специфика методологий.
Тема 2. Алгоритмические структуры. Этапы решения задач на ЭВМ. Понятие алгоритма. Исполнитель, система команд исполнителя. Свойства алгоритмов. Способы записи алгоритмов. Принципы структурного программирования. Основные алгоритмические структуры и их суперпозиции.
Тема 3. Синтаксис и семантика формального языка. Естественные и формальные языки. Понятия о синтаксисе и семантике формального языка. Нормальные формы Бэкуса-Наура и синтаксические диаграммы Вирта. Язык программирования. Классификация языков программирования. Система программирования.
Раздел 2. Структурный подход к программированию
Тема 4. Основные конструкции алгоритмических языков. Общие конструкции алгоритмических языков: алфавит, величина (тип, имя и значение). Выражение. Тип выражения. Арифметическое выражение. Символьное выражение. Логическое выражение. Стандартные функции. Структура программы.
Тема 5. Простые типы языка программирования. Общая характеристика языка Object Pascal. Структуры данных: упорядоченность, однородность, способ доступа. Определение констант. Описание переменных. Стандартные типы данных. Целые типы. Символьный и булевский типы данных. Эквивалентность и совместимость типов. Типы, определяемые программистом: перечисляемый, интервальный. Тип дата-время.
Тема 6. Основные операторы языка. Перечень операторов Object Pascal. Оператор присваивания. Операторы (процедуры) ввода-вывода. Управление выводом данных в консольном режиме (простейшее форматирование). Условный оператор. Логические выражения. Оператор множественного ветвления. Операторы цикла: с предусловием, с постусловием, с параметром.
Тема 7. Структурированные типы языка программирования высокого уровня. Массивы. Примеры задач с численными, символьными, булевскими массивами. Строковый тип данных. Записи. Оператор присоединения. Записи с вариантами. Множественный тип. Задание множественного типа и множественной переменной. Операции над множествами. Операции отношения. Примеры задач на множественный тип. Файлы. Понятие логического и физического файлов. Файловые типы. Общие процедуры для работы с файлами. Типизированные файлы. Текстовые файлы. Нетипизированные файлы и процедуры ввода-вывода. Прямой и последовательный доступ к компонентам файлов.
Тема 8. Алгоритмы поиска и сортировки. Простой и бинарный поиск. Сортировки: выбором, обменом, вставкой. Анализ сложности алгоритмов на примере сортировок.
Раздел 3. Модульное программирование. Программирование абстрактных типов данных
Тема 9. Процедуры и функции. Модули. Подпрограммы. Формальные параметры. Параметры-значения, параметры-переменные, параметры-константы. Локальные и глобальные идентификаторы подпрограмм. Процедуры и функции. Рекурсия. Внешние подпрограммы. Модули. Общая структура модуля. Подпрограммы в модулях. Компиляция и использование модулей.
Тема 10. Организация динамических структур данных (абстрактных типов данных): стек, очередь, двоичное дерево поиска. Динамические структуры. Динамическое распределение памяти. Виды списков. Примеры использования списков. Организация динамических структур данных: стек, очередь, двоичное дерево поиска.
Раздел 4. Объектно-ориентированное программирование.
Тема 11. Введение в объектно-ориентированное программирование. Введение в объектно-ориентированное программирование (ООП) и проектирование. Инкапсуляция, наследование, полиморфизм. Примеры задач.
Тема 12. Реализация абстракций данных методами объектно-ориентированного программирования. Математические объекты: рациональные и комплексные числа, вектора, матрицы. Библиотеки объектов.
Тема 13. Объектно-событийное и объектно-ориентированное программирование. Идеология программирования под Windows. Событие и сообщение. Виды событий. События от мыши и клавиатуры. Программирование управления событиями. Обработка исключительных событий. Основы визуального программирования. Компонент. Иерархия компонентов.
