Программа курса «Информационные технологии и языки программирования»




Скачать 71.87 Kb.
НазваниеПрограмма курса «Информационные технологии и языки программирования»
Дата публикации15.06.2013
Размер71.87 Kb.
ТипПрограмма курса
www.lit-yaz.ru > Информатика > Программа курса
ПРОГРАММА

курса «Информационные технологии и языки программирования»
Цели и задачи курса.

Дисциплина «Основы программирования на языке C++» предназначена для студентов-биологов 4-го курса, специализирующихся по биоинформатике.

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

Для достижения поставленной цели выделяются задачи курса:

  • дать обзор истории развития программирования

  • ознакомить с основными концепциями современного программирования

  • ознакомить с синтаксисом и семантикой языка C++

  • ознакомить с базовыми концепциями объектно-ориентированной методологии



По окончании изучения указанной дисциплины студент должен

  • иметь представление о современных методах программирования и некоторых методах проектирования программных продуктов

  • знать синтаксис и семантику языка C++

  • уметь проектировать и реализовывать несложные программы на языке C++



^

Формы контроля.


Итоговый контроль. Зачет

Текущий контроль. Сдача промежуточных заданий (программ).
Содержание дисциплины.

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


Наименование разделов и тем

К о л и ч е с т в о ч а с о в

Лекции

Семинары

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

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

Всего часов

^ Базовый синтаксис языка С++. Массивы и указатели. Ссылки. Константные переменные.

3

2







5

^ Процедурное программирование

1

2







3

Структурное программирование

2

4







6

^ Модель памяти программ. Области видимости и существования.

1










1

^ Препроцессор языка C++. Трансляции программ на С++. Стандартные библиотеки в стиле языка C.

1










1

^ Основные концепции объектно-ориентированного программирования. Классы в языке С++ (2 часа)

2

4







6

^ Наследование. Динамический полиморфизм

2

4







6

^ Шаблонный полиморфизм

1










1

Стандартная библиотека ввода-вывода в стиле C++. Стандартная библиотека шаблонов. Обзор других средств языка C++

3










3

Итого по курсу:

16

16







32



^ Содержание отдельных разделов и тем.

  1. Введение. История создания и развития языков C/C++. Пример простейшей программы на языке C++.

  2. Базовый синтаксис языка С++. Запись констант и имен. Комментарии. Стандартные типы данных. Основные операторы. Циклы, ветвления и другие управляющие структуры.

  3. ^ Массивы и указатели. Одномерные массивы. Указатели. Операции с указателями. Связь массивов и указателей. Динамическое управление памятью (операторы new, delete). Строки в стиле языка C. Способы представления многомерных массивов в языке C++.

  4. Ссылки.

  5. Константные переменные.

  6. Процедурное программирование. Основные концепции процедурного программирования. Понятие функции. Формальные и фактические параметры. Способы передачи параметров функции. Константные параметры. Прототипы функции. Заголовочные файлы. Понятие раздельной компиляции. Указатели на функции.

  7. ^ Структурное программирование. Основные концепции структурного программирования. Понятие производных типов данных. Структуры. Обращение к полям структур. Передача структур в качестве параметров функций.

  8. ^ Модель памяти программ. Основные области памяти (стэк, куча, область статических данных), их структура и назначение.

  9. Области видимости и существования. Локальные и глобальные имена. Динамические и статические переменные.

  10. Препроцессор языка C++. Основные директивы препроцессора. Подключение и оформление заголовочных файлов.

  11. Трансляции программ на С++. Основные стадии трансляции программ (обработка препроцессором, компиляция компоновка). Библиотеки. Реализация собственных библиотек. Понятие динамической библиотеки.

  12. ^ Стандартные библиотеки в стиле языка C. Библиотека ввода-вывода. Понятие потока. Библиотека работы со строками.

  13. Основные концепции объектно-ориентированного программирования. Понятие объекта и класса. Понятие абстракции. Отношения между классами и объектами.

  14. ^ Классы в языке С++. Методы и атрибуты классов. Инкапсуляция, модификаторы доступа. Конструкторы и деструкторы. Перегрузка основных операторов. Конструкторы копии, операторы присваивания. Статические атрибуты и методы классов.

  15. Наследование. Иерархии классов, отношение генерализации. Наследование, как метод реализации иерархий классов. Особенности инстанциирования иерархий классов.

  16. ^ Динамический полиморфизм. Понятие полиморфизма. Принцип подстановки Лисковой. Виртуальные методы классов. Таблицы виртуальных функций. Виртуальные деструкторы. Абстрактные классы и методы. Понятие интерфейса и его реализация в C++. Принцип разделения интерфейов.

  17. ^ Шаблонный полиморфизм. Параметризация классов и функций типами. Шаблоны функций. Понятие метакласса. Шаблоны классов. Специализация шаблонов. Особенности Компиляции шаблонов.

  18. Стандартная библиотека ввода-вывода в стиле C++. Иерархия стандартных классов потоков. Перегрузка операторов вывода в поток. Манипуляторы потоков.

  19. Стандартная библиотека шаблонов. Списки и массивы. Понятие итератора. Операции со списками и массивами. Строки, операции со строками. Строковые потоки. Ассоциативные массивы и множества.

  20. Обзор других средств языка C++. Механизм RTTI, приведение типов. Пространства имен. Исключения.


Перечень примерных заданий.

  1. Реализовать классы векторов и матриц. Для простоты можно ограничиться трехмерными векторами и матрицами 3x3. Должны быть реализованы конструкторы, конструкторы копии, деструкторы, cравнения, присваивания (+, +=, -=, *= для матриц), основные арифметические операции в виде операторов (сложение, вычитание, произведение). Также для обоих классов необходимо перегрузить operator []. Для каждого класса должен быть свой заголовочный файл и объектный модуль.

  2. Реализовать иерархию классов, представленную на диаграмме. Класс Base2 является абстрактным, остальные - нет. (необходимые поля и методы добавить самомтоятельно) Продемонстрировать порядок вызова конструкторов и деструкторов. Конструкторы виртуальных или невиртуальных базовых классов вызываются в первую очередь? Продемонстрировать различие между невиртуальными и виртуальными методами. Продемонстрировать различие между невиртуальными и виртуальными базовыми классами. Добиться вызова абстрактного метода.



Образцы вопросов для подготовки к зачету.

  1. Условные переходы: конструкции if и switch.

  2. Циклы for, while, do-while. Управление циклами.

  3. Строки. Работа со строками.

  4. Массивы и указатели. Операции с указателями.

  5. Управление памятью. Динамические массивы.

  6. Многомерные массивы. Способы представления многомерных массивов.

  7. Функция main: точка входа в программу. Аргументы командной строки.

  8. Операции ввода-вывода.

  9. Работа с файлами.

  10. Процедурное программирование. Функции. Прототипы.

  11. Способы передачи параметров в функции.

  12. Области видимости и существования имен.

  13. Модель памяти.

  14. Структурное программирование. Структуры. Операции над структурами.

  15. Контейнеры данных. Способы реализации.

  16. Ссылки. Применение.

  17. Модификатор const. const в параметрах функции.

  18. Использование модификатора const со ссылками и указателями.

  19. Деревья. Способы реализации.

  20. Рекурсия. Примеры рекурсивных алгоритмов.

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

  22. Трансляция программ. Заголовочные файлы.

  23. Понятие объекта и класса. Реализация в C++.

  24. Конструкторы и деструкторы. Перегрузка операторов.

  25. Наследование. Принцип подстановки Лисковой.

  26. Динамический полиморфизм. Виртуальные методы.

  27. Абстрактные классы. Интерфейсы. Принцип разделения интерфейсов.

  28. Множественное наследование. Ромбовидные иерархии классов.

  29. Шаблонный полиморфизм. Параметризованные функции и классы.


Список основной и дополнительной литературы.

  1. Б. Страуструп. «Язык программирования C++». 3-е издание.

  2. Г. Буч. «Объектно-ориентированный анализ и проектирование». 2-е издание.


Программу составил сотрудник лаборатории теоретической генетики Института цитологии и генетики СО РАН Подколодный Николай Леонтьевич

Добавить документ в свой блог или на сайт

Похожие:

Программа курса «Информационные технологии и языки программирования» iconУчебная программа курса или дисциплины «Основы программирования»
В частности, в курсе рассматриваются основные конструкции языков программирования, анализируются основные типы и структуры данных,...

Программа курса «Информационные технологии и языки программирования» iconРабочая программа по курсу «основы программирования на с++»
Программа предназначена для обучения программирования на языке С++ учреждений начального профессионального образования для овладения...

Программа курса «Информационные технологии и языки программирования» iconМосковский государственный университет технологий и управления
«Информационные технологии в экономике» (0608), «Информационные технологии управления» (0611, 3511, 0604, 0605), «Теоретические основы...

Программа курса «Информационные технологии и языки программирования» iconУчебно-методический комплекс по дисциплине Б2 «Информационные технологии» Направление подготовки
«Информационные технологии» разработан в соответствии с требованиями фгос впо (федеральный компонент) к обязательному минимуму содержания...

Программа курса «Информационные технологии и языки программирования» icon«Информационные технологии в образовании» Центр новых педагогических...
Интернет, новых методик преподавания и др., основой которых являются компьютерные технологии. Книга будет полезна педагогам, преподавателям...

Программа курса «Информационные технологии и языки программирования» icon«Информационные технологии в образовании» Центр новых педагогических...
Интернет, новых методик преподавания и др., основой которых являются компьютерные технологии. Книга будет полезна педагогам, преподавателям...

Программа курса «Информационные технологии и языки программирования» iconУчебно-методический комплекс по дисциплине б. 1 «Современные информационные...
«Современные информационные технологии» разработан в соответствии с требованиями фгос впо (федеральный компонент) к обязательному...

Программа курса «Информационные технологии и языки программирования» iconО. В. Шатунова информационные технологии учебное пособие для студентов...
Шатунова, О. В. Информационные технологии: Учебное пособие / О. В. Шатунова. – Елабуга: Изд-во егпу, 2007. – 77 с

Программа курса «Информационные технологии и языки программирования» iconИгра в планирование 5 Беседа с
В соответствии идеологии экстремального программирования разработать имитационную модель железной дороги. В процессе разработки необходимо...

Программа курса «Информационные технологии и языки программирования» iconГруппа «Медуницы» Реализация проекта. Определение задания. Рекомендации учителя. Самостоятельная
Образовательные технологии: проектная технология, индивидуальная работа, информационные и коммуникативные технологии, игровые, интерактивные,...



Образовательный материал



При копировании материала укажите ссылку © 2013
контакты
www.lit-yaz.ru
главная страница