Утверждаю

Вид материалаРабочая программа

Содержание


2. Место дисциплины в структуре ООП бакалавриата
3. Компетенции обучающегося, формируемые в результате освоения дисциплины
4. Структура и содержание дисциплины
4.1. Распределение часов курса по темам и видам работ
4.2. Перечень разделов курса
4.3. Лабораторный практикум
4.4. Практические занятия
4.5. Курсовой проект (курсовая работа)
6.1. Примерный перечень вопросов к экзамену
7. Учебно-методическое и информационное обеспечение дисциплины
8. Материально-техническое обеспечение дисциплины
8.2. Требования к специализированному оборудованию
8.3. Требования к специализированному программному обеспечению
Подобный материал:
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ


Томский государственный университет


Факультет прикладной математики и кибернетики


УТВЕРЖДАЮ

Декан факультета прикладной математики и кибернетики, профессор

_________А.М. Горцев


" " 201_ г.


Рабочая программа дисциплины

«Языки и методы программирования»


Направление подготовки: 010400 – Прикладная математика и информатика


Квалификация выпускника: Бакалавр


Форма обучения: очная


Томск

2011 г.

1. Цели освоения дисциплины:


Целью дисциплины является ознакомление студентов с основными принципами и методами решения задач программирования с использованием объектно-ориентированной технологии.

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


^ 2. Место дисциплины в структуре ООП бакалавриата


Дисциплина для студентов 2 года обучения, читается в 3 семестре (базовая часть профессионального цикла Б.3.).

Для успешного освоения дисциплины студент должен иметь предварительную подготовку по дисциплинам: основы информатики, практикум на ЭВМ.

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


^ 3. Компетенции обучающегося, формируемые в результате освоения дисциплины


Способность владения навыками работы с компьютером как средством управления информацией (ОК-11); способность работать с информацией в глобальных компьютерных сетях (ОК-12); способность использовать в научной и познавательной деятельности, а также в социальной сфере профессиональные навыки работы с информационными и компьютерными технологиями (ОК-14); способность работы с информацией из различных источников, включая сетевые ресурсы сети Интернет, для решения профессиональных и социальных задач (ОК-15).

Способность демонстрации общенаучных базовых знаний естественных наук, математики и информатики, понимание основных фактов, концепций, принципов теорий, связанных с прикладной математикой и информатикой (ПК-1), способность приобретать новые научные и профессиональные знания, используя современные образовательные и информационные технологии (ПК-2), способность в составе научно-исследовательского и производственного коллектива решать задачи профессиональной деятельности (ПК-4), способность критически переосмысливать накопленный опыт, изменять при необходимости вид и характер своей профессиональной деятельности (ПК-5), способность осуществлять целенаправленный поиск информации о новейших научных и технологических достижениях в сети Интернет и из других источников (ПК-6); способность решать задачи производственной и технологической деятельности на профессиональном уровне, включая: разработку алгоритмических и программных решений в области системного и прикладного программирования (ПК-9); способность применять в профессиональной деятельности современные языки программирования и языки баз данных, операционные системы, электронные библиотеки и пакеты программ, сетевые технологии (ПК-10), способностью составлять и контролировать план выполняемой работы, планировать необходимые для выполнения работы ресурсы, оценивать результаты собственной работы (ПК-12), способность реализации решений, направленных на поддержку социально-значимых проектов, на повышение электронной грамотности населения, обеспечения общедоступности информационных услуг (ПК-14).

В результате освоения дисциплины обучающийся должен:

• Знать: принципы и методы разработки программ на основе технологии объектно-ориентированного программирования, существующие библиотеки стандартных классов основных структур данных.

• Уметь: определять свойства и методы объектов при решении задач разного типа, устанавливать иерархические связи между различными объектами в программах, использовать визуальные объекты для разработки приложений разного назначения.

• Владеть: практическими навыками решения задач программирования с использованием современных технологий.


^ 4. Структура и содержание дисциплины


Общая трудоемкость дисциплины составляет 4,2 зачетные единицы (152 часа).


^ 4.1. Распределение часов курса по темам и видам работ



№№

п/п

Раздел дисциплины

Семестр

Неделя семестра

Виды учебной работы(в часах)

Формы текущего контроля успеваемости

Форма промежуточной аттестации

Лекции

Практические занятия

Лабораторные работы

Самостоятельная работа

1.

Классы и объекты

3

1-3

6

6

6

6

Контрольная работа

2.

Перегрузка операций в классе. Массивы объектов. Класс-шаблон. Агрегированные классы

3

4-7

8

8

8

6

Контрольная работа

3.

Наследование

3

8-9

4

4

4

6

Контрольная работа

4.

Полиморфизм. Раннее и позднее связывание. Виртуальные функции

3

10-12

6

6

6

3




5.

Библиотека стандартных классов шаблонов STL

3

13-14

4

4

4

2

Контрольная работа

6.

Учебный класс Факультет




15-16

4

4

4

2

Зачёт

Экзамен




Итого







32

32

32

25

31



^ 4.2. Перечень разделов курса


Тема 1.Классы и объекты. Основные принципы ООП: инкапсуляция, наследование, полиморфизм. Определение член-данных (свойств) и член-функций (методов) класса. Конструкторы и деструкторы: конструкторы по умолчанию, с аргументами и конструктор копирования, их назначение, разработка и компиляция. Объект и работа с ними. Неявный указатель this.

Тема 2. Перегрузка операций в классе. Массивы объектов. Класс-шаблон. Агрегированные классы. Правила перегрузки. Примеры перегрузки операций для классов Complex и String. Дружественные функции и классы. Перегрузка операций потокового ввода и вывода. Массивы объектов: статические и динамические, их представление в оперативной памяти, компиляция. Классы-шаблоны. Понятие функции-шаблона и класса-шаблона, их разработка пользователем, использование и компиляция. Агрегированные классы: член-данные – объекты других классов или указатели на объекты других классов, особенности определения конструкторов агрегированного класса. Графический пример.

Тема 3. Наследование. Базовый и порожденный классы. Типы наследования, способы порождения. Конструктор порожденного класса. Стандартные преобразования при наследовании, их реализация компилятором. Множественное наследование. Виртуальный базовый класс, особенности представления при компиляции. Пример множественного наследования. Обработка исключительных ситуаций.

Тема 4. Полиморфизм. Раннее и позднее связывание вызова функции с конкретным экземпляром функции. Виртуальные функции и их свойства: виртуальные операторы, виртуальные вызовы по указателю и по ссылке, приватные виртуальные функции, чистые виртуальные функции и абстрактный класс. Механизм позднего связывания, таблицы виртуальных функций, организация виртуального вызова компилятором.

Тема 5. Библиотека стандартных классов шаблонов STL: ее компоненты – контейнеры, итераторы, алгоритмы, распределители. Основные контейнеры. Примеры использования классов-шаблонов vector, list, set, stack, алгоритмов-шаблонов.

Тема 6. Учебный класс Факультет.


^ 4.3. Лабораторный практикум

  1. Разработка простого класса (Drob, Complex, Krug, Kvadrat).
  2. Разработка класса Array.
  3. Разработка класса булев вектор произвольной размерности, как массива байтов.
  4. Представление булевой матрицы как массива булевых векторов и как агрегированного класса.
  5. Представление класса ‘множество символов’ на основе булева вектора. Наследование.
  6. Представление графа в виде списочной структуры.
  7. Разработка класса-шаблона Stack для решения задач с целыми числами, символами, комплексными числами, строками и др.


^ 4.4. Практические занятия

  1. Определение структуры и работа с ней.
  2. Разработка простого класса (Drob, Complex, Krug, Kvadrat).
  3. Разработка класса Array.
  4. Разработка класса булев вектор произвольной размерности, как массива байтов.
  5. Представление булевой матрицы как массива булевых векторов и как агрегированного класса.
  6. Представление класса ‘множество символов’ на основе булева вектора. Наследование.
  7. Представление графа в виде списочной структуры.
  8. Разработка класса-шаблона Stack для решения задач с целыми числами, символами, комплексными числами, строками и др.
  9. Решение задач с использованием шаблонов из STL.


^ 4.5. Курсовой проект (курсовая работа)


Курсовой проект не предусмотрен.


5. Образовательные технологии


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


6. Учебно-методическое обеспечение самостоятельной работы студентов. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины


Все необходимое учебно-методическое обеспечение по дисциплине представлено в печатном или электронном виде в библиотеке ТГУ, а также в электронном виде в сети Интернет на сайте кафедры программирования или ИДО ТГУ.

Текущий контроль успеваемости обеспечивается индивидуальными работами.

В конце 3 семестра сдается экзамен.


^ 6.1. Примерный перечень вопросов к экзамену:

  1. 3 принципа ООП.
  2. Определение класса, свойств и методов, объекта.
  3. Назначение конструкторов, деструкторов, их определение.
  4. Неявный указатель this, примеры его использования.
  5. Перегрузка операций в классах, правила перегрузки. Примеры.
  6. Дружественность.
  7. Перегрузка потокового ввода-вывода, особенности перегрузки этих операций.
  8. Определение и инициализация статических и динамических массивов объектов.
  9. Агрегированные классы. Особенности определения конструкторов для разных способов агрегации.
  10. Определение функций и классов-шаблонов, их использование в программах и компиляция.
  11. Базовый и порожденный классы. Типы наследования.
  12. Особенности определения конструкторов порожденных классов. Преобразования при наследовании.
  13. Множественное наследование. Виртуальный базовый класс и его конструктор.
  14. Полиморфизм: раннее и позднее связывание.
  15. Определение виртуальной функции.
  16. Правила определения виртуальных функций, виртуальные вызовы, виртуальные операторы.
  17. Реализация позднего связывания на этапе компиляции.
  18. Структура библиотеки стандартных шаблонов.
  19. Основные контейнеры. Примеры работы с ними.


^ 7. Учебно-методическое и информационное обеспечение дисциплины


а) Основная литература:

  1. Тэд Фейсон. ООП на Borland C++. Киев, 1986
  2. Страуструп Б. Язык программирования С++. 1991 и последующие издания Шилдт Г. Самоучитель С++. 1998.
  3. Козелл Е.И. и др. От С к С++. 1993.
  4. Павловская Т.А. С/C++ Программирование на языке высокого уровня. СПб.: Питер, 2005. – 461 с.

б) Дополнительная литература:

        1. Павловская Т.А. C++ Объектно-ориентированное программирование. Практикум. СПб.: Питер, 2004. – 265 с.
        2. Болски М.И. Язык программирования Си. Справочник. М.: Радио и связь, 1988. – 96 с.
        3. Касаткин А.И. Профессиональное программирование на языке Си. Системное программирование. Мн.: Выш. шк., 1993. – 301 с.



в) Перечень иных информационных источников:

  1. Сибирякова В.А., Буторина Н.Б. Основы технологии объектно-ориентированного программирования на языке Си ++. Учебное пособие. Томск.: ТГУ, 2007. – 112 с.


^ 8. Материально-техническое обеспечение дисциплины


8.1. Требования к аудиториям (помещениям, местам) для проведения занятий

Компьютерные классы. А также аудитории для проведения интерактивных лекций: видеопроектор, экран настенный, др. оборудование.


^ 8.2. Требования к специализированному оборудованию

Рабочие места преподавателя и студентов должны быть оснащены оборудованием не ниже: Pentium |||-800/ОЗУ-256 Мб / Video-32 Мб / HDD 80 Гб / СD-ROM – 48x / Network adapter – 10/100/ Мбс / SVGA – 15”.


^ 8.3. Требования к специализированному программному обеспечению

При использовании электронных учебных пособий каждый обучающийся во время занятий и самостоятельной подготовки должен быть обеспечен рабочим местом в компьютерном классе с выходом в Интернет и корпоративную сеть факультета. Лаборатории (компьютерные классы) должны быть обеспечены необходимым комплектом лицензионного программного обеспечения.


Программа составлена в соответствии с требованиями ФГОС ВПО с учетом рекомендаций и ПрООП ВПО по направлению подготовки 010400 – Прикладная математика и информатика


Автор: ст. преподаватель Н.Б. Буторина.

Рецензент: д.т.н., профессор А.Ю. Матросова.


Программа одобрена на заседании Учёного Совета ФПМК

от « »_________ 2011 г., протокол № ____.