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

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

Статус: Общеуниверситетский факультатив
Когда читается: 1, 2 модуль
Охват аудитории: для всех
Преподаватели: Рожков Михаил Сергеевич
Язык: русский
Кредиты: 3
Контактные часы: 28

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

Аннотация

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

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

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

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

  • Знает основы кодирования и машинного представления данных
  • Знает основы языка программирования Java
  • Знает управляющие конструкции в Java
  • Умеет реализовывать алгоритмы на Java
  • Знает принципы ООП применительно к языку Java
  • Владеет базовыми пакетами и классами Java SE API
  • Знает многопоточность в Java
  • Знает особенности платформы Java
  • Умеет работа с БД в JAVA SE
  • Знает основы протоколы сетевого взаимодействия
  • Владеет основами HTML, CSS
  • Владеет основами javaScript
  • Умеет применять паттерны проектирования
  • Владеет основами 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, их состав.
  • Тема 9. Работа с базами данных в Java SE, язык SQL
    • модели данных; • реляционная алгебра; • оптимизация логической схемы реляционной базы данных; • проектирование моделей данных; • ограничения целостности; • обеспечение безопасности данных; • многопользовательская работа с базой данных; • SQL: основные типы данных; • SQL: создание, удаление, модификация структур хранения данных; • SQL: первичные и внешние ключи; • SQL: индексы; • SQL: добавление, удаление и модификация данных; • SQL: выборка данных; • SQL: соединение таблиц; • SQL: объединение таблиц; • система управления базами данных; • оптимизация баз данных и запросов; • JDBC API.
  • Тема 10. Основные протоколы сетевого взаимодействия
    • TCP/IP; • URL и DNS; • HTTP; • анализ взаимодействия по HTTP протоколу в браузере; • статусы HTTP.
  • Тема 11. Основы HTML, CSS
    • HTML; • создание HTML-страниц; • отображение изображений в HTML-страницах; • отображение гиперссылок в HTML-страницах; • форматирование текста в HTML; • заголовки в HTML; • таблицы в HTML; • валидация верстки HTML; • списки в HTML; • передача параметров через URL; • формы в HTML; • формальный язык описания внешнего вида документа; • наследование стилей в CSS; • определение классов стилей в CSS; • применение стилей к стандартным элементам HTML; • определение стилей CSS в отдельных файлах; • контекстные селекторы; • соседние селекторы; • дочерние селекторы; • селекторы атрибутов; • универсальный селектор; • селекторы псевдоклассов; • группирование селекторов; • каскадирование стилей; • CSS flexbox.
  • Тема 12. Основы JavaScript
    • роль JavaScript в web-разработке; • использование скриптов на HTML-страницах; • синтаксис JavaScript; • типы данных JS; • работа с примитивными типами данных JS; • работа с объектными типами данных JS; • преобразование типов JS; • переменные JS; • области видимости переменных JS; • инициализация массивов и объектов JS; • декларирование функций в JS; • операторы JS; • условные операторы JS; • операторы выбора JS; • циклы JS; • метки и переходы JS; • обработка исключительных ситуаций JS; • особенности объектов в JS; • особенности массивов в JS; • особенности функций в JS; • очередность выполнения скриптов в браузере; • структура веб-страницы в окне браузера; • работа с объектом Window; • диалоговые окна в браузере; • работа с многооконными страницами и фреймами в браузере; • объектная модель документа DOM; • поиск элементов HTML-документе; • изменение элементов и их атрибутов в HTML; • управление структурой DOM; • работа со стилями DOM; • обработка событий HTML-элементов.
  • Тема 13. Паттерны проектирования
    • порождающие паттерны; • структурные паттерны; • поведенческие паттерны.
  • Тема 14. Unit-тестирование
    • модульное тестирование; • правила написания модульных тестов; • проверяемые методы; • основы Test Driving Development.
  • Тема 15. Spring Framework
    • основы Spring Framework; • Inversion of Control; • ресурсы; • валидация, связывание и преобразование типов; • Spring Expression Language (SpEL); • аспектно-ориентированное программирование; • буферы данных и кодеки.
  • Тема 16. Сборка проекта
    • сборка проекта: Maven; • архетипы; • локальные репозитории; • POM-файл; • структура Maven-проекта; • добавление зависимостей; • добавление репозиториев; • добавление плагинов; • жизненные циклы и фазы.
  • Тема 17. Процессы разработки ПО
    • жизненный цикл разработки ПО; • системы управления требованиями; • системы контроля версий: Git.
Элементы контроля

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

  • неблокирующий Контактная работа
  • неблокирующий Самостоятельная работа
  • неблокирующий Экзамен
    Оценка за экзамен формируется по накопленной оценке за период обучения в 1-2 модулях.
Промежуточная аттестация

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

  • Промежуточная аттестация (2 модуль)
    0.4 * Контактная работа + 0.2 * Самостоятельная работа + 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