• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
2021/2022

Разработка приложений на платформе Java

Статус: Общеуниверситетский факультатив
Когда читается: 1-3 модуль
Охват аудитории: для всех
Язык: русский
Кредиты: 3

Программа дисциплины

Аннотация

Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов, изучающих дисциплину «Разработка приложений на платформе Java» образовательным стандартом федерального государственного автономного образовательного учреждения высшего профессионального образования национального исследовательского университета «Высшая школа экономики».
Цель освоения дисциплины

Цель освоения дисциплины

  • Сформировать алгоритмическое мышление
  • Сформировать навыки проектирования приложений с использованием возможностей платформы Java
  • Сформировать навыки разработки веб-приложений с использованием возможностей платформы Java
  • Сформировать навыки командной работы над проектом
Планируемые результаты обучения

Планируемые результаты обучения

  • Знает основы кодирования и машинного представления данных
  • Знает основы языка программирования Java
  • Знает управляющие конструкции в Java
  • Умеет реализовывать алгоритмы на Java
  • Знает принципы ООП применительно к языку Java
  • Владеет базовыми пакетами и классами Java SE API
  • Знает многопоточность в Java
  • Знает особенности платформы Java
  • Умеет применять паттерны проектирования
  • Владеет основами Unit-тестирования
  • Владеет основами Spring Framework
  • Владеет системой сборки проектов Maven
  • Знает этапы ЖЦ разработки ПО
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Тема 1 Информатика, машинное представление данных, кодирование, основы алгоритмов
    • вычисление в теории информации; • компьютерное представление данных (двоичная система исчисления, числовые данные, текст, цвета, изображения, анимация, видео); • абстракция данных; • юникод; • понятие алгоритма; • эффективность алгоритмов; • псевдокод; • основные абстракции языков программирования; • языки программирования; • редакторы исходного кода; • среды разработки; • машинный код; • абстрактность алгоритмов; • специфика работы Junior Java Developer.
  • Тема 2. Основы Java, типы данных, переменные и константы, операции, массивы в Java
    • синтаксис языка Java; • способы комментирования кода; • преобразование псевдокода в машинный код; • виртуальные машины; • проблема компиляции кода, байт-код; • виды ошибок; • управление оперативной памятью • типы данных целых чисел; • типы данных вещественных чисел; • переполнение данных; • логический тип данных; • символьный тип данных; • управляющие символы; • строковые литералы в Java; • переменные; • константы; • области видимости переменных и констант; • автоматическое преобразование типов; • приведение типов; • продвижение типов; • арифметические операции; • инкремент и декремент; • логические операции сравнения; • поразрядные операции; • операция присваивания; • приоритет операций; • массивы.
  • Тема 3. Управляющие конструкции в Java
    • условный оператор If; • оператор выбора switch; • тернарная условная операция; • цикл с предусловием; • цикл с постусловием; • цикл for; • цикл for each; • бесконечные циклы; • управление циклами с помощью операторов break и continue.
  • Тема 4. Реализация алгоритмов в Java
    • инструменты отладки; • алгоритм сортировки пузырьком; • алгоритм сортировки выбором; • сортировка слиянием; • сложность алгоритмов сортировки; • ссылочные типы данных; • значение Null; • выделение и освобождение памяти; • строковый тип данных; • способы передачи параметров; • концептуальное представление хранения данных приложения в памяти.
  • Тема 5. Объектно-ориентированное программирование в Java
    • понятие класса и объекта, абстракция; • классы-обертки простых типов данных; • особенности работы с простыми и ссылочными типами данных в Java; • особенности управления символьными литералами в Java; • методы классов; • статические члены класса; • консольный ввод/вывод; • класс Arrays; • перечисления; • пакеты Java; • инкапсуляция, наследование, полиморфизм; • интерфейсы; • абстрактные классы; • вложенные классы.
  • Тема 6. Базовые пакеты и классы Java SE API
    • пакеты Java.lang, Java.util; • изменяемые массивы, ArrayList, List, Vector; • обобщения (generics); • связанные массивы (Stack, Dequeue, LinkedList); • ассоциативные массивы, HashMap; • отсортированные ассоциативные массивы; • коллекции типа Множество; • исключения; • потоки ввода-вывода; • объектные потоки, сериализация; • аннотации; • сборка мусора; • локальные классы; • анонимные классы; • лямбда-выражения; • реактивное программирование в Java; • регулярные выражения, ключевые метасимволы и конструкции; • регулярные выражения в Java, классы Pattern и Match.
  • Тема 7. Многопоточность в Java
    • конкурентность и потоки; • проблемы многопоточного программирования, синхронизация потоков; • атомарные операции; • взаимоблокировки; • проблема голодания и перегрузки потоков; • синхронные методы; • изменяемые и неизменяемые объекты в многопоточной среде; • явные блокировки потоков в Java; • исполнители потоков; • пулы потоков; • алгоритмы Fork/Join в многопоточной среде; • использование коллекций в многопоточной среде; • атомарные переменные в Java; • использование генератора случайных чисел в многопоточной среде.
  • Тема 8. Среда исполнения Java, особенности платформы Java
    • понятие среды исполнения; • свойства среды исполнения; • переменные среды исполнения; • менеджер безопасности Java; • ключевые характеристики платформы Java; • ключевые характеристики языка программирования Java; • версии платформы Java, их состав.
  • Тема 13. Паттерны проектирования
    • порождающие паттерны; • структурные паттерны; • поведенческие паттерны.
  • Тема 14. Unit-тестирование
    • модульное тестирование; • правила написания модульных тестов; • проверяемые методы; • основы Test Driving Development.
  • Тема 15. Spring Framework
    • основы Spring Framework; • Inversion of Control; • ресурсы; • валидация, связывание и преобразование типов; • Spring Expression Language (SpEL); • аспектно-ориентированное программирование; • буферы данных и кодеки.
  • Тема 16. Сборка проекта
    • сборка проекта: Maven; • архетипы; • локальные репозитории; • POM-файл; • структура Maven-проекта; • добавление зависимостей; • добавление репозиториев; • добавление плагинов; • жизненные циклы и фазы.
  • Тема 17. Процессы разработки ПО
    • жизненный цикл разработки ПО; • системы управления требованиями; • системы контроля версий: Git.
Элементы контроля

Элементы контроля

  • неблокирующий Контактная работа
  • неблокирующий Самостоятельная работа
  • неблокирующий Экзамен
  • неблокирующий Практическая работа
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (3 модуль)
    0.1 * Контактная работа + 0.4 * Практическая работа + 0.1 * Самостоятельная работа + 0.4 * Экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • Вязовик Н.А. - Программирование на Java - Национальный Открытый Университет "ИНТУИТ" - 2016 - 603с. - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100405

Рекомендуемая дополнительная литература

  • Пруцков, А.В. Программирование на языке Java. Введение в курс с примерами и практическими заданиями : учебник / А.В. Пруцков. — М. : КУРС, 2018.- 208 с. - ISBN 978-5-906923-51-6. - Режим доступа: http://znanium.com/catalog/product/1017180