УТВЕРЖДАЮ Проректор по учебной работе Ю.А. Самарский 8 декабря 2010 г.
ПРОГРАММА по дисциплине: ИНФОРМАТИКА И ПРИМЕНЕНИЕ КОМПЬЮТЕРОВ В НАУЧНЫХ ИССЛЕДОВАНИЯХ (Прикладное программное обеспечение). Продвинутый курс по направлению подготовки: 010900 «Прикладные математика и физика» факультет ФФКЭ кафедра ИНФОРМАТИКИ курс II семестр 4 лекции – нет Экзамен – нет семинарские занятия – нет Зачет – дифференцированный практические занятия – 32 (час) Задания – нет Самостоятельная работа – 64 часа Контрольные работы – нет Курсовая работа – 1
ВСЕГО АУДИТОРНЫХ ЧАСОВ – 32
Программу составил доцент, к.ф.-м.н. Б.Г. Кухаренко
Программа обсуждена на заседании кафедры информатики 5 декабря 2010 года
Заведующий кафедрой И.Б. Петров Компетенции обучающегося, формируемые в результате освоения дисциплины: а) общекультурные (ОК): стремление к саморазвитию, повышению квалификации, готовность устранять пробелы в знаниях и осуществлять самостоятельное обучение в контексте непрерывного образования, способность осваивать новую проблематику, язык, методологию и научные знания в избранной предметной области (ОК-6); владение основными методами, способами и средствами получения, хранения, переработки информации и навыками работы с компьютером как средством управления информацией (ОК-11); б) профессиональные (ПК), в том числе: общепрофессиональные: способность самостоятельно работать на компьютере, на уровне высококвалифицированного пользователя, применять информационно-коммуникационные технологии для обработки, хранения, представления и передачи информации с использованием универсальных пакетов прикладных программ, знание общих подходов и методов по совершенствованию информационно-коммуникационных технологий (ПК-6); способность планировать и проводить простые эксперименты и исследования, выполнять проекты и задания (ПК-9); в области научно-исследовательской и аналитической деятельности: способность эксплуатировать современную аппаратуру и оборудование для выполнения прикладных математических и физических исследований, направленных на решение физико-технических, естественнонаучных, экономических и иных задач (ПК-14); в области инновационной, конструкторско-технологической и производственно-технологической (в сфере высоких и наукоёмких технологий) деятельности: способность применять на практике базовые профессиональные знания теории и методов математических и физических исследований, направленных на решение инженерных, технических, экономических, экологических, информационных и технологических инновационных задач (ПК-16); способность понимать, излагать и критически анализировать получаемую информацию и представлять результаты прикладных математических, физических исследований, направленных на решение инженерных, технических, социально-экономических, информационных технологических инновационных задач (ПК-17); в области проектной и организационно-управленческой деятельности: умение участвовать в разработке и реализации проектов исследовательской и инновационной направленности в команде исполнителей (ПК-19). В результате освоения дисциплины ИНФОРМАТИКА И ПРИМЕНЕНИЕ КОМПЬЮТЕРОВ В НАУЧНЫХ ИССЛЕДОВАНИЯХ (Прикладное программное обеспечение) обучающийся должен: знать: идеологию объектно-ориентированного подхода, принципы программирования структур данных для современных программ, типовые решения, применяемые для создания программ; уметь: применять объектно-ориентированный подход для написания программ; создавать безопасные программы, использовать современные средства для написания и отладки программ; владеть: объектно-ориентированным языком программирования (С++, Java, C#) и средствами использования стандартных библиотек; Структура преподавания дисциплины. Принципы объектно-ориентированного программирования на примере С++ Сравнение синтаксиса языка Cи и С++. Перегрузка имен (полиморфизм) функций. Константы времени компиляции и статическая типизация в объектно-ориентированных языках программирования (по Барбаре Лисков). Структуры в С++. Синтаксис классов изолированных (невзаимодействующих) объектов в языке С++. Классы, представляющие нормативное знание. Конструкторы и деструкторы. Интерфейс и его реализация. Трансформирование базовых типов языка С++ в классы – основной источник формирования классов в языке С++. Классы-оболочки (Wrappers) с минимальным интерфейсом для базовых типов данных (примитивов). Полиморфизм конструкторов. Методы доступа. Ключевое слово this. Постоянные и модифицируемые члены класса. Массивы объектов. Классы-оболочки с полным интерфейсом инкапсулированного базового типа. Перегрузка операторов в С++. Инкапсуляция массивов базовых типов: абстрактные типы данных. Методы доступа. Перегрузка оператора индекса. Дружественные функции: функции, дружественные классам, – функции за пределами классов (нарушение концепции объектно-ориентированного программирования). Инкапсуляция дружественных функций в класс Visitor. Объектно-ориентированное программирование без использования дружественных функций: классы данных и классы функций. Потоки ввода-вывода данных в С++. Форматируемый ввод/вывод и манипуляторы ввода/вывода. Перегрузка пользовательских операторов ввода/вывода как дружественных функций. Файловый ввод/вывод. Неформатируемый двоичный ввод/вывод (байтовые потоки). Инкапсуляция объектов и вертикальное делегирование функций. Адресное пространство приложения. Динамические члены класса. Динамическая память (куча) и статическая память (стек). Операции с динамической памятью (кучей). Конструкторы и деструкторы объектов в динамической памяти. Проблема утечки памяти в С++. Статические переменные – члены класса. Инициализация статических членов класса. Копирование объектов. Присваивание объектов. Передача и возвращение функциями объектов по значению. Конструкторы копий. Клонирование объектов в С++. Передача и возвращение ссылок на объекты. Инкапсуляция массивов объектов. Классы-оболочки контейнеров с расширенным интерфейсом. Специальные методы создания объектов. Создание объектов посредством статических методов. Класс Singleton. Косвенное создание объектов и горизонтальное делегирование функций. Класс-заместитель Proxy. Классы-оболочки для указателей базовых типов. Перегрузка операций указывания и разыменования. Интеллектуальные указатели. Повторное использование классов. Открытое наследование классов. Распространение и перегрузка наследуемых методов. Вызов конструкторов базового класса (суперкласса). Наследование функций и операций (Inheriting operations and functions). Перегрузка оператора присвоения. Множественное и виртуальное наследование. Закрытое наследование классов. Классы-адаптеры. Классы – композиты, в объекты которых вложены объекты других классов. Делегирование функций. Шаблоны. Полиморфизм функций и параметризованные функции (шаблоны). Параметризованные классы (шаблоны). Статический полиморфизм. Шаблоны интеллектуальных указателей. Шаблоны классов-контейнеров. Вектор (массив). Строка. Связанный список. Обработка исключительных ситуаций. Внутренние и дружественные классы. Реализация двумерного вектора. Перегрузка оператора двойного индекса. Шаблоны итераторов для классов-контейнеров. Стандартная библиотека шаблонов STL (Standard Template Library). Классы-контейнеры и итераторы. Обобщенные алгоритмы. Функторы. Классы с виртуальными функциями. Подстановочный критерий Барбары Лисков. Структура объектов и таблицы виртуальных функций. Динамический полиморфизм. Чистые виртуальные функции и абстрактные классы. Полиморфное наследование абстрактных классов в С++. Производящие функции и фабрики объектов. Динамическое приведение типов и идентификация (RTTI) в Visual C++. Наследование классов с расширением интерфейса. Шаблоны оболочек-адаптеров и внешний полиморфизм. Одновременное (конкурентное) выполнение потоков вычислений. Материально-техническое обеспечение дисциплины Компьютерные классы для проведения лабораторных работ. Необходимое лабораторное оснащение Компьютеры, объединенные в локальную сеть с выходом в Интернет. Необходимое оборудование для лекций и практических занятий Ноутбуки и проекторы. Необходимое программное обеспечение Системы программирования на языках С++, Java, C#. Обеспечение самостоятельной работы Доступ студентов в локальную сеть института и в Интернет. Учебно-методическое и информационное обеспечение дисциплины Основная литература Буч Г. Объектно-ориентированный анализ и проектирование. – 2-е изд. – М.: БИНОМ, 1998. Майерс С. Эффективное использование STL. – СПб.: ПИТЕР, 2002. Майерс С. Наиболее эффективное использование С++. – М.: ДМК, 2000. Элджер Д. С++. – СПб.: ПИТЕР, 2001. Влиссидес Дж. Применение паттернов проектирования. Дополнительные штрихи. – М.: Изд. дом «Вильямс», 2003. Топп У., Форд У. Структуры данных в С++. – М.: Изд. дом «Вильямс», 2000. Дополнительная литература Секунов Н. Visual C++.NET. – СПб.: БХВ-Петербург, 2002. Холлингвэрт Д., Баттерфилд Д., Сворт Б., Олсон Д. C++ Builder. – СПб.: БХВ-Петербург, 2001. Шилдт Г. Теория и практика С++. – СПб.: БХВ-Петербург, 1999. Шилдт Г. С++. – СПб.: БХВ-Петербург, 2002. Александреску А. Современное проектирование на С++. Обобщенное программирование и прикладные шаблоны проектирования. – М.: Изд. дом «Вильямс», 2002. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. – СПб.: ПИТЕР, 2003. Preiss B.R. Data structures and algoritms with object-oriented design patterns in C++. – John Wiley and Sons, 1997.
Усл. печ. л. 0,5. Тираж 90 экз.
|