Экскурсии в офис Mail.ru. Успейте записаться!

Углубленное программирование на Java

Весна 2018

Цель курса — После освоения курса студенты должны знать:

После прослушивания курса студенты получают следующие навыки:

  • современной промышленной разработки приложений на языке Java;
    • отладки Java-приложений;
      • рационального использования классов коллекций;
        • объектно-ориентированного проектирования;
          • работы с базой данных через JDBC или ORM;
            • написания многопоточных приложений;
              • сборки Java-приложений в .jar файлы;
                • запуска Java-приложений из .jar файлов;
                  • работы с менеджером зависимостей maven;
                    • работы со средой разработки IntelliJ IDEA;
                      • работы с веб-сервером Jetty;
                        • написания юнит- и функциональных тестов с помощью JUnit;
                          • проектирования многопользовательских механик;
                            • работы с файлами .xml и .properties;
                              • Кроме теоретических знаний и практических навыков, непосредственно связанных с общими вопросами программирования и использования языка java, студенты получают опыт групповой разработки.

Подробнее

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

На протяжении всего семестра за определенные виды работ, выполняемые студентами, выставляются баллы. Итоговый рейтинг по дисциплине представляет собой сумму баллов, полученных студентом за прохождение контрольных точек – рубежных контролей, домашних заданий, защиты итогового проекта. Важное условие — своевременное выполнение работ.

Для успешной аттестации по данному курсу студентам необходимо набрать пороговый рейтинг — 60 баллов.

При пересчете баллов студенты могут получить итоговую оценку: 0–59 неудовлетворительно, 50–79 удовлетворительно, 80–99 хорошо, 100-110 отлично.

Подробнее

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

Константин Соловьев Константин Соловьев

Yandex, Media Advertisement

Иван Сопов Иван Сопов

Работаю в команде разработки социальной сети Одноклассники. Можно смело спрашивать любые вопросы ...


Подробнее

Богдан Муквич Богдан Муквич

Senior Automation QA Specialist @ Tinkoff

Программа

занятие Часы в ауд. + сам. работа

Смешанное занятие №1: Введение   + ДЗ №1

Знакомство с Java. Основы языка. Примитивные типы, объекты, наследование. Строки и массивы. Java, отличия от C++. Введение в Reflections. Java Annotations. Работа приложения на Spring boot
Домашнее задание №1: Запустить окружение. Реализовать простейшее приложение на Spring boot
Запустить окружение. Думать об игре.
4 часа + 2 часа СР

Смешанное занятие №2: Углубленные основы языка. Реализация API   + ДЗ №2

Тонкости Core Java. Java Collections. Деплой на Heroku. API на 8080. REST API по спеке фронта.
Домашнее задание №2: Реализация API
Реализовать API для авторизации/регистрации пользователей.
4 часа + 4 часа СР

Рубежный контроль №1: Проверка знаний. REST API без базы  

REST API без базы
Проверка знаний по первому модулю.
4 часа + 2 часа СР

Лекция №1: Интерфейсы. Тестирование в JAVA.   + ДЗ №3

Интерфейсы. Тестирование в JAVA. Виды тестирования. Функциональное тестирования. Нагрузочное тестирование. Практики тестирования. Разработка тестов для фронтенда и аккаунт сервиса. Spring test
Домашнее задание №3: Тесты для API.
Функциональные и Модульные Тесты на API.
4 часа

Лекция №2: Базы данных. ORM   + ДЗ №4

Шаблон работы с базой. Базы данных. ORM. Модуль для работы с базой данных. Работа с базой в Spring. Примеры, реализация.
Домашнее задание №4: БД для auth.
БД для auth.
4 часа + 4 часа СР

Смешанное занятие №3: Паттерны   + ДЗ №5

Паттерны. Примеры.
Домашнее задание №5: БД для auth через ORM.
БД для auth через ORM.
4 часа + 2 часа СР

Рубежный контроль №2: REST API с базой  

REST API с базой. Проверка знаний по второму модулю.

4 часа + 4 часа СР

Смешанное занятие №4: Игровая механика   + ДЗ №6

Игровая механика. Транспорт. Web Sockets. Пример архитектуры многопользовательской механики
Домашнее задание №6: Подготовить проект к предзащите. Разработка механики
Подготовить проект к предзащите. Проект должен содержать основы игровой механики, пользователи могут пройти авторизацию и сыграть в игру. Разработка механики.
4 часа + 3 часа СР

Смешанное занятие №5: Предзащита  

Предзащита.Показ проектов. Работающее одностраничное приложение. Авторизация. БД. Прототип игры
5 часа

Смешанное занятие №6: Ресурсная система   + ДЗ №7

Работа с файлами и файловой системой. Потоки. Асинхронные потоки. Ресурсная система
Домашнее задание №7: Перевод всех механических сущностей на ресурсы
Перевод всех механических сущностей на ресурсы
4 часа + 4 часа СР

Семинар №1: Разработка механики  

Разработка механики
4 часа + 2 часа СР

Рубежный контроль №3: Проверка знаний  

Проверка знаний по 3му модулю. Транспорт. Каркас механики. Работающий многопользовательский прототип
4 часа

Лекция №3: Многопоточность  

Многопоточность. Проблема многопоточного доступа к данным. Deadlock'и и Race condition'ы. Java memory model.
4 часа + 2 часа СР

Смешанное занятие №7: Пулы потоков  

Пулы потоков. Lock. Future. CompletableFuture.
4 часа + 2 часа СР

Семинар №2: Альфа-версия проекта   + ДЗ №8

Альфа-версия проекта. Подготовка к защите, сдача долгов.
Домашнее задание №8: Подготовка проекта к защите
Подготовка проекта к защите
4 часа + 2 часа СР

Рубежный контроль №4: Проверка знаний.  

Проверка знаний по 4му модулю.
4 часа

Контрольное занятие №1: Защита итогового проекта  

Демонстрация и защита итогового проекта.
4 часа + 2 часа СР