Учебно-методический комплекс по курсу "Программирование" составлен в соответствии с требованиями Государственного образовательного стандарта высшего профессионального образования по специальности: 032100.00 "Математика" (050201 по ОКСО), дополнительная специальность 030100 "Информатика" (050202 по ОКСО).
Дисциплина входит в федеральный компонент цикла дисциплин дополнительной специальности и является обязательной для изучения, индекс дисциплины в учебном плане ДС.Ф.03.
I. Рабочая программа дисциплины
В процессе развития информатики как прикладной науки появились разные подходы к программированию. Курс "Программирование" призван содействовать знакомству студентов с различными парадигмами проектирования и разработки программного обеспечения. Он важен с той точки зрения, что, являясь составной частью подготовки учителя информатики, способствует развитию алгоритмического мышления, навыков программирования студентов.
Цель дисциплины: изучение методов программирования для овладения знаниями в области технологии программирования; подготовка к осознанному использованию как языков программирования, так и методов программирования.
Воспитательной целью дисциплины является формирование у студентов научного, творческого подхода к освоению технологий, методов и средств производства программного обеспечения.
Основные задачи курса программирования на основе структурного и объектно-ориентированного подхода:
Отбор материала основывается на необходимости ознакомить студентов со следующей современной научной информацией:
Содержательное наполнение дисциплины обусловлено общими задачами в подготовке учителя математики и информатики.
Изучение дисциплины базируется на знании математических дисциплин и общего курса информатики.
Концепция дисциплины основана на том, что эта дисциплина имеет общеобразовательный и в определенной степени мировоззренческий характер и предназначена для формирования учителя математики и информатики с широким научным кругозором.
Научной основой для построения программы данной дисциплины является теоретико-прагматический подход в обучении.
Выписка из ГОС ВПО специальности 030100 "Информатика" (050202 по ОКСО), содержащая требования к обязательному минимуму содержания дисциплины.
В результате изучения дисциплины студент должен:
иметь представление:
уметь:
приобрести навыки:
владеть, иметь опыт:
Форма обучения очная
Вид учебной работы | Количество часов | ||
---|---|---|---|
Всего по учебному плану | В т.ч. по семестрам | ||
3 | 4 | ||
Аудиторные занятия | 116 | 56 | 60 |
лекции | 40 | 20 | 20 |
практические занятия | 24 | 12 | 12 |
лабораторные работы | 52 | 24 | 28 |
Самостоятельная работа | 116 | 58 | 58 |
ВСЕГО ЧАСОВ НА ДИСЦИПЛИНУ | 232 | 114 | 118 |
Текущий контроль (количество и вид текущего контроля) | контрольная 3 | Тест 1, контрольная 3 | |
Виды промежуточного контроля (экзамен, зачет) | Экзамен 3 | Экзамен 4 |
Форма обучения очная
Названия разделов и тем | Всего часов по учебному плану |
Виды учебных занятий | |||
---|---|---|---|---|---|
Аудиторные занятия, в том числе |
Самостоятельная работа |
||||
лекции | практические занятия | лабораторные работы | |||
Раздел 1. Введение в алгоритмизацию и программирование | |||||
Тема 1. Методологии программирования | 4 | 2 | 2 | ||
Тема 2. Алгоритмические структуры | 24 | 2 | 4 | 6 | 12 |
Тема 3. Синтаксис и семантика формального языка | 4 | 2 | 2 | ||
Раздел 2. Структурный подход к программированию | |||||
Тема 4. Основные конструкции алгоритмических языков | 4 | 2 | 2 | ||
Тема 5. Простые типы данных языка программирования | 4 | 2 | 2 | ||
Тема 6. Основные операторы языка | 26 | 4 | 4 | 6 | 14 |
Тема 7. Структурированные типы языка программирования высокого уровня | 42 | 6 | 4 | 10 | 22 |
Тема 8. Алгоритмы поиска и сортировки | 12 | 2 | 4 | 6 | |
Раздел 3. Модульное программирование. Программирование абстрактных типов данных | |||||
Тема 9. Процедуры и функции. Модули | 32 | 4 | 4 | 8 | 16 |
Тема 10. Организация динамических структур данных
(абстрактных типов данных): стек, очередь, двоичное дерево поиска. | 32 | 4 | 4 | 8 | 16 |
Раздел 4. Объектно-ориентированное программирование | |||||
Тема 11. Введение в объектно-ориентированное программирование | 20 | 4 | 2 | 4 | 10 |
Тема 12. Реализация абстракций данных методами объектно-ориентированного программирования | 16 | 3 | 2 | 3 | 8 |
Тема 13. Объектно-событийное и
объектно-ориентированное программирование | 12 | 3 | 3 | 6 | |
ИТОГО | 232 | 40 | 24 | 52 | 116 |
Раздел 1. Введение в алгоритмизацию и программирование
Тема 1. Методологии программирования. Программирование как раздел информатики. Метафоры (парадигмы) программирования. Методологии программирования. Основные понятия и определения. История и эволюция. Классификация по ядрам методологии: императивное программирование, объектно-ориентированное, функциональное, логическое. Топологическая специфика методологий.
Тема 2. Алгоритмические структуры. Этапы решения задач на ЭВМ. Понятие алгоритма. Исполнитель, система команд исполнителя. Свойства алгоритмов. Способы записи алгоритмов. Принципы структурного программирования. Основные алгоритмические структуры и их суперпозиции.
Тема 3. Синтаксис и семантика формального языка. Естественные и формальные языки. Понятия о синтаксисе и семантике формального языка. Нормальные формы Бэкуса-Наура и синтаксические диаграммы Вирта. Язык программирования. Классификация языков программирования. Система программирования.
Раздел 2. Структурный подход к программированию
Тема 4. Основные конструкции алгоритмических языков. Общие конструкции алгоритмических языков: алфавит, величина (тип, имя и значение). Выражение. Тип выражения. Арифметическое выражение. Символьное выражение. Логическое выражение. Стандартные функции. Структура программы.
Тема 5. Простые типы языка программирования. Общая характеристика языка Object Pascal. Структуры данных: упорядоченность, однородность, способ доступа. Определение констант. Описание переменных. Стандартные типы данных. Целые типы. Символьный и булевский типы данных. Эквивалентность и совместимость типов. Типы, определяемые программистом: перечисляемый, интервальный. Тип дата-время.
Тема 6. Основные операторы языка. Перечень операторов Object Pascal. Оператор присваивания. Операторы (процедуры) ввода-вывода. Управление выводом данных в консольном режиме (простейшее форматирование). Условный оператор. Логические выражения. Оператор множественного ветвления. Операторы цикла: с предусловием, с постусловием, с параметром.
Тема 7. Структурированные типы языка программирования высокого уровня. Массивы. Примеры задач с численными, символьными, булевскими массивами. Строковый тип данных. Записи. Оператор присоединения. Записи с вариантами. Множественный тип. Задание множественного типа и множественной переменной. Операции над множествами. Операции отношения. Примеры задач на множественный тип. Файлы. Понятие логического и физического файлов. Файловые типы. Общие процедуры для работы с файлами. Типизированные файлы. Текстовые файлы. Нетипизированные файлы и процедуры ввода-вывода. Прямой и последовательный доступ к компонентам файлов.
Тема 8. Алгоритмы поиска и сортировки. Простой и бинарный поиск. Сортировки: выбором, обменом, вставкой. Анализ сложности алгоритмов на примере сортировок.
Раздел 3. Модульное программирование. Программирование абстрактных типов данных
Тема 9. Процедуры и функции. Модули. Подпрограммы. Формальные параметры. Параметры-значения, параметры-переменные, параметры-константы. Локальные и глобальные идентификаторы подпрограмм. Процедуры и функции. Рекурсия. Внешние подпрограммы. Модули. Общая структура модуля. Подпрограммы в модулях. Компиляция и использование модулей.
Тема 10. Организация динамических структур данных (абстрактных типов данных): стек, очередь, двоичное дерево поиска. Динамические структуры. Динамическое распределение памяти. Виды списков. Примеры использования списков. Организация динамических структур данных: стек, очередь, двоичное дерево поиска.
Раздел 4. Объектно-ориентированное программирование
Тема 11. Введение в объектно-ориентированное программирование. Введение в объектно-ориентированное программирование (ООП) и проектирование. Инкапсуляция, наследование, полиморфизм. Примеры задач.
Тема 12. Реализация абстракций данных методами объектно-ориентированного программирования. Математические объекты: рациональные и комплексные числа, вектора, матрицы. Библиотеки объектов.
Тема 13. Объектно-событийное и объектно-ориентированное программирование. Идеология программирования под Windows. Событие и сообщение. Виды событий. События от мыши и клавиатуры. Программирование управления событиями. Обработка исключительных событий. Основы визуального программирования. Компонент. Иерархия компонентов.
Теоретический материал к содержанию курса можно найти в данном разделе.
На практических занятиях отрабатываются приемы разработки алгоритмов и программирования.
Примечание. Приведено планирование по тем темам, по которым предусмотрены практические занятия.
Тема 2. Алгоритмические структуры (4 часа)
Тема 6. Основные операторы языка (4 часа)
Тема 7. Структурированные типы языка программирования высокого уровня (4 часа)
Тема 9. Процедуры и функции. Модули (4 часа)
Тема 10. Организация динамических структур данных (абстрактных типов данных): стек, очередь, двоичное дерево поиска (4 часа)
Тема 11. Введение в объектно-ориентированное программирование (2 часа)
Тема 12. Реализация абстракций данных методами объектно-ориентированного программирования (2 часа)
Лабораторные работы в компьютерных классах служат для самостоятельной работы студентов над учебными задачами с целью выработки и закрепления практических навыков программирования. Основной перечень лабораторных работ содержится в сборнике задач: Сборник задач по программированию. / Авт.-сост. А.П. Шестаков; Перм. ун-т. Пермь, 2001. (ч. I). В указанном сборнике имеются задачи по всем приведенным выше разделам и темам. В качестве дополнительного источника информации при выполнении лабораторных работ студенты могут использовать материалы раздела «Дидактические материалы по информатике».
Тематика контрольных работ соответствует содержанию курса. Всего за период обучения предусмотрено 6 контрольных работ.
Примерные варианты контрольных работ, контрольного теста:
Подготовка к контрольным работам предполагается во время самостоятельной работы студентов. Первая контрольная работа является домашней, остальные пять — аудиторные.
Примерные вопросы к коллоквиумам:
Основная
Дополнительная
При освоении дисциплины для выполнения лабораторных работ необходимы персональные компьютеры с набором программного обеспечения: системы программирования (Turbo Pascal, Delphi, Free Pascal).
УМК по дисциплине в электронном виде находится в библиотеке и методическом кабинете кафедры информатики и ВТ ПГПУ, на данном сайте и может быть использован для самостоятельной работы.
Могут быть использованы материалы данного сайта.
Дополнительный набор ссылок на Интернет-ресурсы:
Изучение программы курса. На лекциях преподаватель рассматривает вопросы программы курса, составленной в соответствии с государственным образовательным стандартом. Из-за недостаточного количества аудиторных часов некоторые темы не удается осветить в полном объеме, поэтому преподаватель, по своему усмотрению, некоторые вопросы выносит на самостоятельную работу студентов, рекомендуя ту или иную литературу.
Кроме этого, для лучшего освоения материала и систематизации знаний по дисциплине, необходимо постоянно разбирать материалы лекций по конспектам и учебным пособиям. В случае необходимости обращаться к преподавателю за консультацией. Полный список литературы по дисциплине приведен в пункте 8.1. «Учебно-методическое обеспечение дисциплины».
В целом, на один час аудиторных занятий отводится один час самостоятельной работы.
Контрольные работы. После изучения некоторых разделов практической части курса «Программирование» проводятся контрольные аудиторные работы. Для успешного их написания необходима определенная подготовка. Готовиться к контрольным работам нужно по материалам лекций и рекомендованной литературы. Обычно, контрольная работа имеет 4-6 вариантов.
Лабораторные работы. При изучении курса «Программирование» необходимо выполнять и вовремя сдавать преподавателю индивидуальные лабораторные работы.
Коллоквиум — это устный теоретический опрос. Он проводится в середине семестра с целью проверки понимания и усвоения теоретического и практического материала курса, а также для проверки самостоятельной работы студентов по вопросам программы курса.
При подготовке к коллоквиуму ориентируйтесь на лекции и рекомендованную основную литературу. Дополнительная литература также может помочь при подготовке к теоретическому опросу.
В каждом семестре предполагается проведение трех коллоквиумов.
Вопросы к экзамену
3 семестр
Вопросы к экзамену (3 семестр)4 семестр
Вопросы к экзамену (4 семестр)
© А.П. Шестаков, 2008