МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Ярославский государственный университет им. П.Г. Демидова
Физический факультет
УТВЕРЖДАЮ
Проректор по развитию образования
_Е.В.Сапир
"_"2012 г.
Рабочая программа дисциплины послевузовского профессионального образования (аспирантура) Методы разработки кроссплатформенных приложений для инфокоммуникационных систем по специальности научных работников 05.12.13 Системы, сети и устройства телекоммуникаций Ярославль 1. Цели освоения дисциплины Целями освоения дисциплины «Методы разработки кроссплатформенных приложений для инфокоммуникационных систем» в соответствии с общими целями основной профессиональной образовательной программы послевузовского профессионального образования (аспирантура) (далее - образовательная программа послевузовского профессионального образования) являются:
- сформировать системное базовое представление, первичные знания, умения и навыки по основам кроссплатформенного программирования для платформ Java,.Net, Qt, python, wxWidgets;
- изучить этапы создания приложений в интегрированных средах разработки;
- показать основные характеристики исполняемого кода на различных платформах.
2. Место дисциплины в структуре образовательной программы послевузовского профессионального образования Данная дисциплина относится к разделу обязательные дисциплины (подраздел дисциплины по выбору аспиранта) образовательной составляющей образовательной программы послевузовского профессионального образования по специальности научных работников 05.12. Системы, сети и устройства телекоммуникаций.
Приложения обычно показывают пользователю окна со стандартными элементами управления, изображениями и графиками; реагируют на события от мыши, клавиатуры и других источников; общаются с другими приложениями, запускают другие программы — подобные стандартные блоки отходят на второй план при использовании кроссплатформенных систем (фреймвоки) разработки, позволяя программисту сосредоточить свои усилия на функционале приложения.
Такие системы не ограничиваются только графическим интерфейсом пользователя — они реализует многие аспекты программирования. И это не является избыточностью, так как от фреймвока требуется, чтобы приложения целиком были переносимыми на разные платформы, а не только их графическая часть. Системы кроссплатформенной разработки предоставляют классы для файлов, потоков, многопоточности, конфигурирования приложений, межпроцессного взаимодействия, доступа к базам данных и многое другое.
Для изучения данной дисциплины необходимы «входные» знания по основам процедурного и объектно-ориентированного программирования, структуре и функциональных модулях операционных систем, архитектуре микропроцессорных систем.
Освоение данной дисциплины необходимо для успешного выполнения широкого спектра научных работ, связанных с разработкой кроссплатформенного программного обеспечения.
3. Требования к результатам освоения содержания дисциплины В результате освоения дисциплины «Использование сигнальных процессоров при выполнении научных исследований» обучающийся должен:
знать:
- современное состояние и принципиальные возможности языков программирования Java, C#, C++, python;
- концепции кроссплатформенного программного обеспечения;
- характеристики существующих платформ разработки и области их применения;
уметь:
- использовать полученные знания для создания прикладных программ;
- анализировать производительность получаемых решений;
владеть:
- навыками работы в интегрированных средах разработки;
- методами отладки и профилирования создаваемых приложений.
4. Структура и содержание дисциплины Общая трудоемкость дисциплины составляет 2 зачетные единицы, 72 часа.
Курс № Раздел Виды учебной работы, включая Формы текущего Неделя п/ Дисциплины самостоятельную работу обучаю- контроля успеваемости п щихся, и трудоемкость (в часах) (по неделям) Форма обуч.:очная/заочная Форма промежуточной аттестации Лекций кроссплатформенного программирования.
платформ Java и.Net тек Qt и wxWidgets для кроссплатформенной компиляции программ Возможности платформенного интерпретатора языка python ности и профилирование кроссплатформенных приложений Содержание дисциплины Раздел 1.
Предмет, цели и задачи курса. Основная терминология. Объектно-ориентированное программирование как доминирующая парадигма программирования. Проблема инициализации и освобождения памяти. Концепция «сборщика мусора». Пример работы сборщика мусора.
Недостатки концепции.
Раздел 2.
Введение в язык Java. История. Основные свойства. Создание простой программы. Основы GUI. События в Java. Обзор библиотеки Swing. Апплет. Сервлет. Особенности архитектуры.NET. Методы и средства разработки приложений с использованием Visual Studio.NET. Сборки, потоки и домены приложений.
Раздел 3.
Установка Qt SDK. Модули библиотеки Qt. QtCore — классы ядра библиотеки, используемые другими модулями. QtGui — компоненты графического интерфейса. Технология widgets on canvas. Инструментальные средства wxWidgets. wxWidgets и родные графические элементы пользовательского интерфейса. Недостатки wxWidgets и Qt.
Раздел 4.
Портируемость Python. Ссылочные и атомарные объекты. Объектно-ориентированное и функциональное программирование в Python. Модули в языке Python. Модули, написанные на «чистом» Python, и модули расширения (extension modules), написанные на других языках программирования. Стандартная библиотека Python. Модули расширения и программные интерфейсы.
Раздел 5.
Поиск узких мест в приложениях. Правило «20-80». Сбор характеристик работы программы:
время выполнения отдельных фрагментов, число верно предсказанных условных переходов, число кэш-промахов и т.п. Простейшее профилирование. Отдельные утилиты анализа и средства интегрированных сред разработки.
5. Образовательные технологии В преподавании используются мультимедийные презентации, иллюстрации, таблицы, методические пособия.
В преподавании курса используются активные и интерактивные технологии проведения занятий в сочетании с внеаудиторной работой.
6. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины и учебно-методическое обеспечение самостоятельной работы обучающихся В качестве средств текущего контроля используется – написание в течение семестра 1 реферата на выбранную тему (в соответствии с тематикой дисциплины). Итоговая форма контроля (зачет) дает возможность выявить уровень профессиональной подготовки аспиранта по данной дисциплине.
История создания кроссплатформенных систем программирования.
2. Основные направления Java.
3. Среды разработки для Net.
4. Типы данных в Java, C#, C++, Python.
5. Абстракции и объекты.
6. Абстрактные классы.
7. Интерфейсы.
8. Управление доступом.
9. Инкапуляция.
10. Наследование и полиморфизм.
11. Коллекции объектов.
12. Обработка ошибок и исключения.
13. Система ввода-вывода.
14. События и их обработка 15. Библиотека Swing.
16. Концепция Model-View-Controller.
17. Диспетчеры компоновки.
18. Библиотека Qt.
19. Библиотека wxWidgets.
20. Работа с сетевыми протоколами.
21. Интернационализация.
22. Работа с базами данных.
23. Работа со звуком и графикой.
24. Удаленный вызов методов.
История создания кроссплатформенных систем программирования.
2. Основные направления Java.
3. JDK и JRE.
4. Среды разработки для Net.
5. Синтаксис языка C#.
6. Типы данных в Java, C#, C++, Python.
7. Абстракции и объекты.
8. Абстрактные классы.
9. Интерфейсы.
10. Управление доступом.
11. Инкапуляция.
12. Наследование и полиморфизм.
13. Коллекции объектов.
14. Обработка ошибок и исключения.
15. Внутренние и анонимные (безымянные) внутренние классы.
16. Система ввода-вывода.
17. События и их обработка 18. Библиотека Swing.
19. Концепция Model-View-Controller.
20. Диспетчеры компоновки.
21. Библиотека Qt.
22. Библиотека wxWidgets.
23. Работа с сетевыми протоколами.
24. Интернационализация.
25. Работа с базами данных.
26. Работа со звуком и графикой.
27. Удаленный вызов методов.
7. Учебно-методическое и информационное обеспечение дисциплины а) основная литература:
1. Эккель Б. Философия Java. Библиотека программиста. 4-е изд. — СПб.: Питер, 2009.
2. Нортроп Т., Уилдермьюс Ш., Райан Б. Основы разработки приложений на платформе Microsoft.NET Framework. М.: Русская редакция, 2007.
б) дополнительная литература:
1. Саммерфилд М. Программирование на Python 3. Подробное руководство. М.: СимволПлюс, 2009. 608 с.
2. Павловская Т.А. С/С++ программирование на языке высокого уровня. – СПб. Питер.
в) программное обеспечение и Интернет-ресурсы:
- для демонстрации презентаций используются программы Windows и MS Office.
- в качестве вспомогательных интернет-ресурсов по дисциплине используются официальные сайты производителей соответствующих кроссплатформенных средств разработки.
8. Материально-техническое обеспечение дисциплины - компьютер и мультимедийный проектор.
Программа составлена в соответствии с федеральными государственными требованиями к структуре основной профессиональной образовательной программы послевузовского профессионального образования (аспирантура) (приказ Минобрнауки от 16.03.2011 г. № 1365) с учетом рекомендаций, изложенных в письме Минобрнауки от 22.06.2011 г. № ИБ – 733/12.
Программа одобрена на заседании кафедры динамики электронных систем _15._10.20_12 (протокол № _2_)