• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Контакты

Адрес: 614070, г. Пермь, бульвар Гагарина, 37, кабинет 313

Телефон: (342) 254-56-08

Руководство
Заведующий кафедрой Плотникова Евгения Григорьевна
Кафедра информационных технологий в бизнесе (Пермь): Специалист по учебно-методической работе Карпович Марина Валерьевна

Документы

Положение о кафедре (PDF, 113 Кб)

 

Книга
Современные проблемы науки

Данилевич Т. В., Ясницкий Л. Н.

М.: Юрайт, 2025.

Статья
Comparative Analysis of Requirements Prioritization Methods for Personalized Nutrition Web Applications

Mozhegova A., V.V. Lanin.

Proceedings of the Institute for System Programming of the RAS. 2025. Vol. 37. No. 5. P. 225-240.

Глава в книге
Development the reinforcement learning model for sources identification of H2S industrial emissions

Kychkin A., Chernitsin I., Vikentyeva O.

In bk.: 2025 International Conference on Industrial Engineering, Applications and Manufacturing (ICIEAM). IEEE, 2025. P. 987-991.

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

2020/2021
Учебный год
RUS
Обучение ведется на русском языке
3
Кредиты
Статус:
Общеуниверситетский факультатив
Когда читается:
1, 2 модуль

Преподаватель

Рожков Михаил Сергеевич

Рожков Михаил Сергеевич

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

Аннотация

Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов, изучающих дисциплину «Разработка приложений на платформе 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