Прикладное программирование Рабочая программа дисциплины по направлениям подготовки: 551900 «Оптотехника (бакалавр, маги...
155 downloads
226 Views
199KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Прикладное программирование Рабочая программа дисциплины по направлениям подготовки: 551900 «Оптотехника (бакалавр, магистр)», 654000 «Оптотехника (дипломированный специалист)» специальности: 190700 «Оптико-электронные приборы и системы специализации: 190713 «Компьютерная оптика» факультеты: Оптико-информационных систем и технологий
1. Цели и задачи дисциплины Дисциплина "Прикладное программирование" относится к основным дисциплинам содержания образовательных программ по специализации "Компьютерная оптика" и имеет своей целью подготовку обучающихся к самостоятельной разработке прикладного программного обеспечения для решения таких оптических задач, как синтез, анализ и оптимизация оптических систем, моделирование оптических процессов и явлений, обработка результатов оптических измерений и т. п. Дисциплина базируется на знаниях теоретических основ современной оптики, приобретенных при изучении дисциплин "Физика" и "Основы оптики", основ проектирования оптических систем, полученных при изучении дисциплины "Прикладная оптика" и основ программирования, полученных при изучении дисциплины "Информатика". Задачами дисциплины являются:
• • • • •
ознакомление студентов c основными компьютерными технологиями (языками, библиотеками, инструментами), используемыми для решения прикладных задач; формирование у студентов необходимого объема знаний о прикладном программировании и вычислительных методах; овладение основами постановки прикладных задач, их функционального и объектноориентированного анализа; овладение основами проектирования прикладного программного обеспечения, его разработки, отладки и тестирования; получение студентами практических навыков по разработке прикладных программ на языке программирования C++.
2. Требования к уровню освоения содержания дисциплины Студент считается освоившим содержание дисциплины, если он:
• • • •
знаком c основными компьютерными технологиями (языками, библиотеками и инструментами), используемыми для решения прикладных задач; знает основные принципы функционального и объектно-ориентированного анализа и проектирования; имеет навыки разработки прикладных программ на языке C++, их отладки и тестирования; знает основы организации работы в коллективах программистов и готов к участию в создании прикладного программного обеспечения.
3. Объем дисциплины и виды учебной работы Вид учебной работы Общая трудоемкость дисциплины Аудиторные занятия Лекции Лабораторные работы (ЛР) Самостоятельная работа Вид итогового контроля (зачет, экзамен)
Всего часов
Семестры
111 51 17 34 60
6 111 51 17 34 60
зачет
зачет
4. Содержание дисциплины
4.1. Разделы дисциплин и виды занятий № Раздел дисциплины п/п 1. Введение Технологии разработки прикладного 2. программного обеспечения Основы прикладного программирования с 3. использованием языка С++ Реализация объектно-ориентированного 4. программирования на языке С++ 5. Стандартная библиотека шаблонов языка С++ Пользовательский интерфейс прикладных 6. программ Организация разработки прикладного 7. программного обеспечения
Лекции
ЛР
СРС
1 3
4
3
16
5
10
2
4
2 1
4.2. Содержание разделов дисциплины 1. Введение Цели использования компьютеров при решении прикладных задач. Задачи и особенности прикладного программирования. Основные инструменты прикладного программиста. Язык программирования - главный инструмент прикладного программиста. Выбор языка программирования. 2. Технологии разработки прикладного программного обеспечения Технологии прикладного программирования: цели, задачи и основные принципы и инструменты. Алгоритмическая и объектно-ориентированная декомпозиция. Принципы объектно-ориентированного анализа: абстрагирование, инкапсуляция, наследование, полиморфизм, модульность, сохраняемость, параллелизм. Объекты и типы объектов. Атрибуты и типы атрибутов. Экземпляры и состояния. Жизненный цикл и поведение объектов: сообщения, события, методы, действия. Объектно-ориентированное проектирование. Документирование результатов анализа и проектирования. Основы языка UML (Unified Modeling Language). 3. Основы прикладного программирования с использованием языка С++ Структура программы на языке C++. Проект. Компиляция программы и сборка исполняемого модуля. Размещение программы и данных в памяти. Структура исполняемого модуля. Переменные: объявление, определение, инициализация. Переменные: значение, указатель, ссылка. Время жизни, области видимости и классы памяти переменных. Динамическое размещение данных в памяти. Составные типы данных. Массивы - как пример гомогенной структуры данных: размещение в памяти, доступ к элементам. Одномерные и многомерные массивы. Структуры - как пример гетерогенной структуры данных. Реализация вычислительных операций. Арифметические и логические выражения. Основные языковые конструкции (условные, циклические, селективные инструкции). Функции: объявление и определение. Передача аргументов в функции. Стандартная библиотека функций языка С++. Библиотека стандартного потокового ввода/вывода. Форматированный ввод/вывод. Файловые потоки. 4. Реализация объектно-ориентированного программирования на языке С++ Классы. Инкапсуляция. Сокрытие данных и видимость членов класса. Конструктор. Полный конструктор. Конструктор по умолчанию. Конструктор копирования. Деструктор. Полиморфизм. Перегрузка функций. Перегрузка операторов (унарного, бинарного, особые случаи). Параметрический полиморфизм. Шаблоны функций. Шаблоны классов. Наследование. Виртуальные функции и абстрактные базовые классы. Множественное наследование. 5. Стандартная библиотека шаблонов языка С++ Контейнеры и итераторы в библиотеке STL (Standard Template Library). Вектор. Очереди. Стек. Список. Ассоциативные массивы. Алгоритмы. Объекты-функции и предикаты. 6. Пользовательский интерфейс прикладных программ Интерфейс пользователя. Основные понятия. Стандартизация пользовательского интерфейса. Интерфейс типа "ВОПРОС-ОТВЕТ". Интерфейс командной строки. Текстовый интерфейс. Оконный интерфейс. Графический оконный интерфейс. Webинтерфейс. Социальный интерфейс. Современный графический пользовательский интерфейс. Взаимодействие пользователя с программами. Графический пользовательский интерфейс и его реализация в операционной системе Windows. Основной объект интерфейса: окно и его основные части. Диалоговое окно и стандартные элементы
управления, предназначенные для ввода информации и управления работой программы. Визуализация научных и инженерных данных. 7. Организация разработки прикладного программного обеспечения Уровни абстракции в процессе разработки программного обеспечения: архитектура, структура, реализация). Цикл разработки прикладного программного обеспечения: концептуализация, анализ, проектирование, кодирование, тестирование, эволюция, сопровождение. Критерии оценки качества программы. Средства и инструменты разработки программного обеспечения. Стиль программирования. Организация разработки программного обеспечения группой программистов.
5. Лабораторный практикум, практические занятия и курсовые проекты 5.1. Лабораторный практикум № п/п 1. 2. 3. 4. 5. 6.
№ раздела дисциплины 2. 3. 3. 3. 4. 4.
7.
4.
8.
5.
Наименование лабораторных работ Создание абстрактных типов данных. Диаграмма объекта. Основные языковые конструкции. Массивы. Обработка массивов данных. Строки. Операции потокового ввода/вывода. Реализация абстрактных типов данных. Разработка и использование шаблонов. Перегрузка операторов. Реализация иерархии объектов на основе механизмов наследования. Организация хранения и обработка массивов данных средствами библиотеки STL.
5.2. Практические занятия в дисциплине не предусмотрены
6. Учебно-методическое обеспечение дисциплины 6.1. Рекомендуемая литература а) основная литература 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Бадд Т. Объектно-ориентированное программирование в действии - СПб.: Питер, 1997 Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++ (2-е изд.) - СПб.: "Невский диалект", М.: Издательство "БИНОМ", 1998 Вычислительная оптика. Справочник. Под ред. М. М. Русинова - Л. Машиностроение, 1984 Детейл Х., Детейл Ш. Как программировать на С++ (3-е изд.) - М.: Издательство "БИНОМ", 2001 Карпов С++: специальный справочник - СПб.: Питер, 2000 Керниган Б., Пайк Р. Практика программирования - СПб.: "Невский диалект", 2001 Компьютеры в оптических исследованиях Под ред. Б. Фридена - М.: Мир, 1983 Липпман, Лажойе Язык программирования C++. Вводный курс (3-е изд.) - СПб.: "Невский диалект", М.: Издательство "БИНОМ", 2001 Пол И. Объектно-ориентированное программирование на C++ (2-е изд.) - СПб.: "Невский диалект", М.: Издательство "БИНОМ", 2001 Родионов С. А. Автоматизация проектирования оптических систем - Л. Машиностроение, 1982 Страуструп Б. Язык программирования С++ (специальное издание) - СПб.: "Невский диалект", М.: Издательство "БИНОМ", 2001 Страуструп Б. Язык программирования С++ (3-е изд.) - СПб.: "Невский диалект", М.: Издательство "БИНОМ", 1999 Топп, Форд Структуры данных в C++ - М.: Издательство "БИНОМ", 1999 Шилдт Х. Справочник программиста по C/C++ (2-е изд.) - М.: Издательский дом "Вильямс", 2000
б) дополнительная литература 1. 2. 3. 4. 5. 6.
Мейерс С. Эффективное использование C++. 50 рекомендаций по улучшению ваших программ и проектов - М.: ДМК Пресс, 2000 Мейерс С. Наиболее эффективное использование C++. 35 новых рекомендаций по улучшению ваших программ и проектов - М.: ДМК Пресс, 2000 Страуструп Б. Дизайн и эволюция C++ - М.: ДМК Пресс, 2000 Фридман А., Кландер Л., Михаэлис М., Шильдт Х. C/C++. Архив программ - М.: Издательство "БИНОМ", 2001 Халперн П. Стандартная библиотека С++ на примерах - М.: Издательский дом "Вильямс", 2001 Элджер C++: библиотека программиста - СПб.: Питер, 2000
7.
Eckel B. Thinking in C++ (2nd Edition) Free Electronic Book. http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
6.2. Средства обеспечения освоения дисциплины компилятор языка C++; интегрированная среда разработки приложений.
7. Материально-техническое обеспечение дисциплины Компьютерный класс кафедры ПиКО
Программу составили: к.т.н., доц. Домненко В.М., кафедра Прикладной и компьютерной оптики к.т.н., доц. Иванова Т.В., кафедра Прикладной и компьютерной оптики