Самарский государственный архитектурно-строительный университет
Факультет Информационных систем и технологий
Кафедра Прикладной математики и вычислительной техники
Утверждаю:
Декан_____________( В.В. Козлов)
«___» ________2012 г.
РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ
«Языки программирования»
Индекс дисциплины по учебному плану: ЕН.В.1
Код (ОКСО): 230201
Наименование направления: Информационные системы
Наименование специальности: Информационные системы и технологии
Форма обучения: очная
Всего часов по дисциплине: 149
в том числе:
аудиторные: 85
самостоятельная работа студента: 64
Форма итогового контроля: экзамен
Курс обучения: 1,2
Семестр обучения: 2,3
Самара 2012г.
Рабочая программа дисциплины составлена на основании ГОС ВПО, утвержденного Министерством образования и науки РФ и учебного плана СГАСУ
Рабочая программа разработана кафедрой ПМиВТ
Доцент, к.т.н. В.Козлов
Рассмотрена и одобрена на заседании кафедры ПМиВТ
протокол №___от «__»_________20 __ г.
Зав. кафедрой ПМ и ВТ,
профессор, д.т.н. С.Пиявский
Рассмотрена и одобрена на заседании методической комиссии по направлению 230200 «Информационные системы» специальности 230201.65 «Информационные системы и технологии»
_________ протокол № __ от «___» _________ 20 __ г.
Председатель методической комиссии
зав. кафедрой ПМиВТ,
профессор, д.т.н. С.Пиявский
Цели и задачи дисциплины
Целью дисциплины является формирование, совместно с другими дисциплинами учебного плана и всеми формами образовательного процесса в вузе, у выпускника компетенций, знаний, умений и навыков, определяемых требованиями ГОС, изложенными в п.3 настоящей рабочей программы.
Задачами, решаемыми при преподавании дисциплины для достижения указанной цели, являются:
- освоение студентами теоретического материала, включенного в цикл лекций,
- выполнение студентами предусмотренных рабочей программой лабораторных работ, курсовых работ и проектов,
- активное участие студентов в практических занятиях и семинарах,
- активная самостоятельная работа студентов, включая выполнение домашних заданий, других учебных заданий,
- своевременный контроль текущей и промежуточной успеваемости и принятие необходимых мер по его итогам.
Содержание дисциплины
Виды учебной работы | Семестры, количество часов в семестре | Всего | ||||||||
Общая трудоёмкость | ||||||||||
Аудиторные занятия: | ||||||||||
Лекции | ||||||||||
Практические занятия | ||||||||||
Семинары | ||||||||||
Лабораторные работы | ||||||||||
Самостоятельная работа: | ||||||||||
Курсовой проект (работа) | ||||||||||
Расчетно-графические работы | ||||||||||
Реферат | ||||||||||
Другие виды самостоятельной работы | ||||||||||
Экзамен | ||||||||||
Зачет с оценкой | ||||||||||
Зачет |
Тематика лекционных занятий (с указанием наименования и краткого содержаний лекций, количество часов).
№ раздела курса | № лекции | Тема лекции, содержание лекции | Кол-во часов |
1. Основы C++ | Введение в язык программирования C++ История создания языка и его эволюция. Международный стандарт языка. Сферы применения языка Си++. Пример простой программы. Объясняется процесс ее написания, использования простейших конструкций языка, использования транслятора и запуск программы на выполнение. Правила именования переменных и функций языка, правила записи констант. Понятие ключевого или зарезервированного слова, список ключевых слов Си++. | ||
Операции и выражения. Встроенные типы данных. Правила формирования и вычисления выражений в языке Си++. Все операции языка. Рассматриваются все встроенные типы языка Си++: целые числа разной разрядности, вещественные числа, логические величины, перечисляемые значения, символы и их кодировка. Операция условия:?:. | |||
Ввод-вывод. Потоки. Манипуляторы и форматирование ввода-вывода. Строковые потоки. Ввод-вывод файлов. Ввод и вывод одного символа. Буферы. Чтение одной строки. Чтение файла. Переключение и работа с файлами. | |||
Операторы языка C++. Операторы управления, имеющиеся в языке Си++. | |||
Операторы языка C++. Операторы построения циклов, имеющиеся в языке Си++. | |||
Функции. Функции – это основные единицы построения программ при процедурном программировании на языке Си++. Правила их записи, вызова и передачи параметров. | |||
Распределение памяти. Работа с областями памяти и строками. Проблемы при явном распределении памяти в Си++, способы их решения. Ссылки и указатели. Операции с указателями. Распределение памяти под переменные, управление памятью с помощью переопределения операторов new и delete. Создание и использование массивов, структур, объединений, указателей. Адресная арифметика. Строки и литералы. Строки - дополнительные сведения о связи между указателями и массивами. Инициализация массивов и классы памяти. | |||
Стандартная библиотека C++. Описание стандартных функций. | |||
Пространство имен. Возможности построения больших программ, использование общих данных. Определение контекста, оператор namespace. | |||
2. ООП в C++ | Классы, объекты и структуры. Способы описания классов. Создание объектов. Обращение к атрибутам и методам объектов. Наследование, виды наследования. Виртуальные методы. Абстрактные классы. Множественное наследование. | ||
Дополнительные возможности классов. Конструкторы и деструкторы классов. Возможности инициализации объектов. Копирующий конструктор. Операции new и delete. Дополнительные возможности при определении классов, включая переопределение операций, определение методов inline и задание собственных преобразований типа. | |||
Перегрузка операций. Перегрузка операций в С++. Переопределение арифметических, логических и операций отношения вызова функций (), индексации [], косвенное обращение ->, а также присваивание и инициализации. Определение явных и скрытых преобразований между пользовательскими и основными типами. | |||
Пример реализации библиотеки для работы с комплексными числами. Создание класса для комплексного числа. | |||
3. Библиотеки в C++ | Препроцессор. Общие сведения. Символические константы: #define. Использование аргументов с #define. Макроопределение или функция? Включение файла #include. Условная компиляция. | ||
Обработка ошибок. Попытка классификации ошибок. Сообщение об ошибке с помощью возвращаемого значения. Исключительные ситуации. Обработка исключительных ситуаций, операторы try и catch. | |||
Шаблоны. Понятие шаблона. Функции-шаблоны. Шаблоны классов. | |||
Проектирование библиотек. Понятие интерфейса и структуры области приложения, использование динамической информации о типах и методы управления памятью. Внимание акцентируется на том, какими свойствами должны обладать библиотечные классы, а не на специфике языковых средств, которые используются для реализации таких классов и не на определенных полезных функциях, которые должна предоставлять библиотека. | |||
Понятие о библиотеках STL и BOOST. Описание принципов использования STL и BOOST |