Объектно-ориентированное программирование на Java

Концепция курса

 

В отличие от многих курсов по языку Java, данный курс делает акцент не на синтаксисе языка и особенностей применения тех или иных конструкций, а на самой технологии объектно-ориентированного подхода и средствах поддержки именно принципов ООП в инструментальных языках. Изложение теории ООП ведется по схеме: Эволюция и принципы – Объект – Класс – Модуль – Система.

Курс имеет своей целью изучение:

  • Эволюции технологий программирования от алгоритмического к ООП
  • Основных принципов объектно-ориентированного построения программных систем (Абстракция, Инкапсуляция, Иерархия, Модульность, Типизация, Параллелизм, Сохраняемость)
  • Понятий классов, объектов, взаимоотношений между ними, а также многоуровневой модели OMG
  • Изучение средств объектно-ориентированного программирования языка Java
  • Платформы Java, стандартной библиотеки классов
  • Основ многопоточного и распределенного программирования
  • Безопасности программных систем использующих технологию Java
  • Основных принципов объектно-ориентированного дизайна

 

Организационная информация

 

Длительность — 30 часов лекций (10 лекций по 3 часа), 30 часов семинаров (10 семинаров по 3 часа)

Ориентировочный объем времени для самостоятельной подготовки дома — 60 часов.

В процессе практического обучения слушатели решают задачи под руководством семинариста.

 

Программа курса (лекции)

 

  1. Введение. Платформа Java и основные принципы. Эволюция. JRE и JSDK и их настройки. Архитектура JVM. Дополнительные библиотеки, стек технологий J2EE и J2ME.
  2. Базовые средства программирования Java, типы и операторы, структурные средства. Основы объектного подхода - Абстракция, Инкапсуляция, Типизация. Объекты и классы, взаимоотношения, статический контекст. Класс Object. Основные слои (уровни) приложения.
  3. Иерархии классов и объектов. Многоуровневое моделирование и метамодель. Отношения между объектами, отношения между классами. Диаграммы на UML. Принципы ООП: Подстановки Лисков, Инверсии зависимостей, Деметера, Разделения интерфейсов. Базисы для выделения абстракций. Суперклассы и подклассы, наследование. Виртуальный полиморфизм. Перечисления.
  4. Внутренние классы и их назначение, исключения, принцип Модульности в ООП, пакеты Java. Многоуровневая архитектура приложений. Разбиение на подсиситемы.
  5. Средства обобщенного программирования. Generics. Стандартная библиотека Java. Пакет java.lang. Пакет java.util. Коллекции, ассоциативные контейнеры и итераторы. Функциональные интерфейсы, ссылки на методы, лямбда-выражения, потоки (streams)
  6. Стандартная библиотека. Ввод-вывод и сетевое программирование. java.io, java.net. Принцип Сохраняемости в ООП, сериализация. Реализация параллельного TCP сервера.
  7. Многопоточное программирование. Принцип Параллелилизма в ООП. Архитектура многопоточных приложений. Основные проблемы и пути их решения. Синхронизация потоков. Управление потоками. Пул потоков и его реализация. Средства java.util.concurrent. Атомарные операции. Синхронные очереди и замки. ThreadPoolExecutor.
  8. Основы объектно-ориентированного дизайна. Доменная модель приложения. Выделение концептуальных классов. Дизайн-модель приложения. Дизайн на основе ответственности абстракций. Принципы GRASP. Назначение ответственности. Информационный эксперт, создатель, зацепление, сплоченность. Контроллеры. Принципы дизайна пакетов: REP, CRP, CCP, ADP, SDP, SAP. Метрики пакетов. "Главная последовательность".
  9. Паттерны объектно-ориентированного проектирования. Паттерны создания. Структурные и поведенческие паттерны. MVC
  10. Основы системы безопасности Java. Проблемы обеспечения безопасности. Права доступа и политики. Домены безопасности и контроль доступа. Цифровая подпись.
  11. Итоговое тестирование.

Стоимость курса 22000 руб.

Напишите, и мы обязательно Вам ответим!

(383) 363-42-46

it-school@ccfit.nsu.ru

630090, Новосибирская область, г. Новосибирск,
ул. Пирогова, 1, блок 1, к.1112/1


Top