Программа курса лекций
Вид материала | Программа курса |
- Программа предусматривает проведение лекций, проведение семинарских занятий, подготовку, 17.19kb.
- Программа курса лекций для студентов специальности «История», 109.25kb.
- Программа курса Конспект лекций > Тесты Задачи > Вопросы к экзамену Методические рекомендации, 1693.2kb.
- Программа курса лекций "Языки программирования Internet", 61.91kb.
- М. Н. Общая риторика программа курса лекций общая риторика программа курса, 236.54kb.
- Программа регионоведческого курса, 292.18kb.
- Программа регионоведческого курса, 292.24kb.
- Программа курса лекций, 27.96kb.
- М. В. Кричевцев Программа курса лекций Предлагаемый курс лекций, 215.31kb.
- Название курса, 106.28kb.
Обьектно Ориентированное программирование
(2 курс, 4 сем., 64 ч., диф.зачёт)
Программа курса лекций (32 часа)
Ассистент Всеволод Юрьевич Рылов
Инструментальные средства ООП языка программирования Java
- Виртуальная машина Java (2 часа)
- История и предпосылки появления Java.
- Понятие виртуальной машины. Среда исполнения и байт-код. Взаимодействие виртуальной машины с операционной системой.
- Пространства классов. Структура приложений на Java. Загрузка классов и инициализация объектов.
- Сферы применения Java в современном информационном мире.
- Версии Java машины и их эволюция.
- Средства ООП, непосредственно поддерживаемые в Java.
- Простейшие приложение на Java.
- История и предпосылки появления Java.
- Алгоритмические средства языка Java. (1 час)
- Строгая типизация Java.
- Базовые типы языка. Строки и литералы.
- Преобразования типов в выражениях.
- Особенности инициализации массивов. Операторы управления памятью.
- Краткий обзор операторов. Использование break.
- Строгая типизация Java.
- Средства объектного программирования языка Java. (3 часа)
- Представление объектов и классов.
- Структура объявления класса.
- Доступ к членам класса.
- Спецификаторы доступа для обеспечения инкапсуляции.
- Спецификатор доступа final.
- Средства управления жизнью объекта. Конструкторы и метод finalize().
- Принципы работы сборщика мусора.
- Работа с массивами объектов.
- Статические поля и методы классов. Классы – утилиты.
- Блок статической инициализации.
- Принцип работы ClassLoader.
- Структура объявления класса.
- Реализация отношений между объектами и классами.
- Ассоциация и агрегация объектов и классов.
- Использование и зависимость от интерфейсов.
- Объекты при передаче параметров и возврате из методов.
- Реализация отношения Клиент – Сервер.
- Внутренние классы.
- Ассоциация и агрегация объектов и классов.
- Представление объектов и классов.
- Средства объектно-ориентированного программирования Java. (6 часов)
- Наследование в Java.
- Производные классы.
- Класс Object. Метод toString().
- Управление доступом в производных классах.
- Абстрактные классы и интерфейсы.
- Реализация интерфейсов как альтернатива множественному наследованию.
- Информация о типе на этапе исполнения. Оператор instanceof. Приведение типов.
- Использование класса Class.
- Производные классы.
- Пакеты.
- Определение пакета.
- Ограничение доступа.
- Импортирование пакетов. Разрешение конфликтов имен.
- Определение пакета.
- Обработка исключений.
- Основные принципы и типы исключительных ситуаций.
- Перехват исключительных ситуаций. Операторы try, throw, throws, catch, finally.
- Использование нескольких блоков catch и вложенный оператор try.
- Не перехваченные исключительные ситуации.
- Встроенные исключительные исключения Java. Классы Throwble и Exception.
- Принципы создания и использования исключительных ситуаций.
- Основные принципы и типы исключительных ситуаций.
- Многопоточное программирование на Java. Параллелизм.
- Модель потока в Java. Зависимость от реализации потока в операционной системе.
- Свойства потока. Синхронизация. Передача сообщений.
- Класс Thread и интерфейс Runnable.
- Главный поток и способы создания потоков.
- Управление потоками и приоритеты потоков.
- Группы потоков.
- Особенности написания многопоточных программ.
- Использование синхронизирующих блоков и мониторов объектов. Синхронизированные методы объектов.
- Взаимная блокировка.
- Использование пула потоков.
- Модель потока в Java. Зависимость от реализации потока в операционной системе.
- Наследование в Java.
- Стандартная библиотека Java. (8 часов)
- Организация пакетов стандартной библиотеки Java. Пакеты java и javax.
- Обработка строк.
- Использование и методы класса String
- Использование StringBuffer.
- Использование и методы класса String
- Пакет java.lang.
- Структура и назначение.
- Использование класса System. Управление средой исполнения.
- Использование классов Number, Double, Integer, Character и др.
- Класс Math.
- Класс Compiler и класс ClassLoader.
- Структура и назначение.
- Пакет java.util
- Общие принципы организации контейнеров и коллекций в Java.
- Использование множеств и списков.
- Использование отображений и ассоциативных контейнеров.
- Итераторы и исключительные ситуации при работе с классами утилит.
- Класс Properties.
- Классы Date и Calendar.
- Общие принципы организации контейнеров и коллекций в Java.
- Подсистема ввода вывода java.io
- Общие концепции организации ввода – вывода в библиотеке Java.
- Проблема платформенной независимости и локализации.
- Основные классы потоков ввода-вывода в Java и методы работы с ними.
- Использование потоков ввода вывода при работе с файлами. Эффективность.
- Концепция Reader и Writer. Управление локализацией.
- Использование Tokenizer.
- Общие концепции организации ввода – вывода в библиотеке Java.
- Пакет java.net.
- Основы работы с сетью в Internet. Адресация.
- Сокеты. Жизненный цикл сокета.
- Работа с протоколом HTTP и класс URL.
- Основы работы с сетью в Internet. Адресация.
- Организация пакетов стандартной библиотеки Java. Пакеты java и javax.
- Графическая подсистема Java. JFC. (4 часа)
- Классы AWT.
- Основы работы с окнами. Component, Container, Panel, Window, Frame, Canvas.
- Доставка и обработка событий в графической подсистеме. Механизм Listeners.
- Создание программы с оконным интерфейсом. Рисование графических примитивов.
- Использование управляющих элементов, диспетчеров компоновки и меню.
- Связь классов AWT с оконным интерфейсом операционной системы.
- Основы работы с окнами. Component, Container, Panel, Window, Frame, Canvas.
- Классы Swing.
- Основные принципы графической системы Swing. Платформенная независимость, понятие Look&Feel
- Написание графического интерфейса с использованием Swing компонентов.
- Работа с таблицами, текстом, диалогами и HTML.
- Основные принципы графической системы Swing. Платформенная независимость, понятие Look&Feel
- Апплеты.
- Основы работы с апплетом.
- Жизненный цикл апплета.
- Дескриптор APPLET.
- Передача параметров и загрузка апплета.
- Основы работы с апплетом.
- Классы AWT.
- Модель безопасности Java. (2 часа)
- Принципы организации и эволюция модели безопасности в Java.
- SecurityManager. Инициализация и функции.
- Права доступа. Управление и проверка прав доступа.
- Исключительные ситуации.
- Java Cryptography Extension
- Алгоритмы шифрования. Ключи и цифровые подписи.
- Принципы организации и эволюция модели безопасности в Java.
- Программирование распределенных приложений. (6 часов)
- Принципы построения распределенных приложений.
- Проблемы передачи объектов и синхронизации в распределенных приложениях.
- Реализация сохраняемости.
- Three-tier технология.
- Уровень интерфейса.
- Уровень бизнес логики.
- Уровень сохранения.
- Уровень интерфейса.
- Remote Method Invocation
- Основные принципы и протокол взаимодействия.
- Интерфейс Remote и класс UnicastRemoteObject.
- Класс Naming и rmiregistry сервис.
- RMI сервер.
- RMI клиент.
- Модель безопасности, синхронизация и сборка мусора в распределенных RMI приложениях.
- Механизм Activation.
- Основные принципы и протокол взаимодействия.
- Основы Java Enterprise технологии.
- Интеграция с Web.
- Java сервлеты.
- Java Server Pages. Web контейнеры.
- Механизм SessionBeans.
- EJB технология. Bean контейнеры.
- Интеграция с Web.
- JDBC технология.
- Java Micro Edition.
- Java для мобильных телефонов. K-virtual machine.
- CLDC, MIDP и iMode расширения Java 2 ME.
- Технология JavaCard.
- Примеры реальных приложений. Сложность разработки.
- Java для мобильных телефонов. K-virtual machine.
- Java media framework, технологии обработки звука и голоса.
- Принципы построения распределенных приложений.
- Технология коллективной разработки Java приложений. (2 часа)
- Использование документирующих комментариев.
- Соглашения при написании кода и именовании классов и объектов.
- Build система Ant. Автоматизация сборки и размещения Java приложений.
- Система log4j.
- Использование документирующих комментариев.
- Основы архитектурного анализа и проектирования объектно-ориентированных систем
- Правила дизайна классов и пакетов.
- Паттерны проектирования.
- Цикл разработки объектно-ориентированного приложения. RUP.
- Правила дизайна классов и пакетов.
(Возможна замена этой лекции на лекцию по C#)
Программа практических занятий (32 часа)
Ассистент Всеволод Юрьевич Рылов
- Тема: Описание классов и структура приложения в Java.
Продолжительность: 1 занятие.
Практические задания: Напишите простой класс контейнер для хранения произвольных объектов Object, с обеспечением минимального набора операций.
- Тема: Иерархии классов и объектов.
Продолжительность: 3 занятия.
Практические задания: Перенесите программу из задания №8 по C++ на язык Java.
- Тема: Знакомство с механизмом загрузки и инициализации объектов.
Продолжительность: 2 занятия.
Практические задания: Напишите программу, реализующую механизм фабрики объектов классов реализующих определенный интерфейс. Для реализации данного механизма следует воспользоваться механизмом Properties, классом Class, для определения класса создаваемого объекта, его загрузки в память JVM и инстанцирования с помощью конструктора по умолчанию.
- Тема: Многопоточное программирование.
Продолжительность: 2 занятия.
Практические задания: Напишите программу, моделирующую сборку машины на конвейере. Каждый изготовитель деталей и сборщик машин представлены своими потоками, синхронизирующимися на общем складе продукции. Задачу можно усложнить тем, что детали сами могут быть составными.
- Тема: Графическая подсистема Java.
Продолжительность: 2 занятия.
Практические задания: Напишите простейший текстовый редактор с поддержкой загрузки и сохранения файлов.
- Тема: Апплеты.
Продолжительность: 1 занятие.
Практические задания: Напишите апплет, реализующий часы со стрелками в окне броузера. Основные параметры апплет должен брать из дескриптора апплета.
- Тема: Модель безопасности Java.
Продолжительность: 1 занятие.
Практические задания: Модифицируйте программу из пятого задания так, чтобы она работала как апплет в окне броузера. С помощью настроек системы безопасности Java обеспечьте возможность апплету редактора работать с файлами пользователя на локальном диске.
- Тема: Распределенное программирование.
Продолжительность: 2 занятия.
Практические задания: Модифицируйте программу из задания №4 так, чтобы разные потоки завода по сборке машин работали в разных JVM.
- Тема: Java Enterprise технология.
Продолжительность: 2 занятия.
Практические задания: С помощью JSP/EJB технологии реализуйте счетчик посещений сайта.
Литература
- Объектно-ориентированное программирование, анализ и дизайн. Учебное пособие. / Мухортов В.В., Рылов В.Ю. Новосибирск: ИМ СО РАН, 2002
- Объектно ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд./Буч Гр. Пер. с англ. – СПб.; М.: «Невский Диалект» – «Издательство БИНОМ», 1999.
- Принципы объектно-ориентированной разработки программ. 2-е изд. /Элиенс Антон. Пер с англ. – М.: Издательский дом «Вильямс», 2002
- Язык UML. Руководство пользователя/ Буч Г., Рамбо Д., Джекобсон А.: Пер. с англ. – М. ДМК, 2000.
- Язык программирования C++, 3-е изд./ Страуструп Б. Пер. с англ. – СПб.; М.: «Невский Диалект» – «Издательство БИНОМ», 1999 г.
- Дизайн и эволюция языка С++. / Страуструп Б. Пер. с англ. – М. ДМК, 2000
- Правила программирования C & C++ / Голуб А. Под редакцией Костенко В. – М.: Восточная книжная компания. 1996
- Эффективное использование С++. 50 рекомендаций по улучшению ваших программ и проектов / Мейерс С. Пер. с англ. – М. ДМК, 2000
- Наиболее эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов. / Мейерс С. Пер. с англ. – М. ДМК, 2000
- Философия Java / Эйкель Брюс – СПб.: Питер, 2001
- Java 2. Наиболее полное руководство / Ноутон П., Шилдт Г. – СПб.: BHV, 2001