Разработка на Java

создание рабочего приложения и получение необходимых навыков и опыта в области разработки программного обеспечения. По окончании курса студенты должны знать синтаксис и основные библиотеки языка Java, понимать объектно-ориентированный подход, уметь декомпозировать сложные задачи.
18 занятий, 72 ак.часа
Хочу учиться
Что дает курс

Основные конструкции языка, объекты и классы. Ввод и вывод в Java - консольный, файловый, сетевой. Интерфейсы и абстрактные классы, анонимные классы. Лямбда-функции. Сетевое взаимодействие, сокеты. Механизм исключений. Проверяемые и непроверяемые исключения. Потоки - жизненный цикл, прерывание. Критическая секция. Проблемы взаимодействия (дедлок). Механизм wait/notify, блокирующие очереди producer/consumer. Коллекции, выбор структуры данных, подходящей для задачи. Параметризованные коллекции. Параметризация в Java.

Как поступить?

Регистрация
Заполни заявку и регистрируйся на курс до 25-го февраля включительно
Тестирование
Ссылка на тест придет на почту до 18:00 26-го февраля. Пройди тест до 18:00 28-го февраля
Зачисление
Письмо о зачислении придет на почту каждому студенту 3-го марта включительно
Начало обучения
Обучение начнется на неделе с 4-го марта по расписанию

Вопросы по обучению

Отборочный тест

 

Требования к поступающим

Поступить могут студенты и аспиранты всех курсов и факультетов МФТИ.

Оборудование для обучения

Компьютер, возможность подключиться к беспроводной сети для выхода в сеть Internet.

Нагрузка в неделю

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

Место проведения

Онлайн.

Стоимость обучения

Обучение бесплатно.

Моего вопроса тут нет :(

Другие вопросы можно посмотреть здесь.

Программа

Смешанное занятие № 1. Знакомство с платформой Java

Знакомство с платформой Java, настройка рабочей среды и инструментов, запуск первой программы.

Смешанное занятие № 2. Базовые конструкции языка

Основные конструкции языка, система ввода/вывода в Java
Типы данных (размеры), операции, именование (Java Naming Conv)
Циклы и условия
Объекты и обертки (boxing)
Массивы (разная размерность рядов массива)
Консоль ввод/вывод (in,out,err)
Методы, передача по значению/ссылке
Функция проверки логина, логин-пароль хранится в коде (case sens)
Печать всех элементов массива (способы)

Смешанное занятие № 3. Объектно-ориентированное программирование в Java

Объекты, поля и методы класса. Уровни доступа.
Объекты и ссылки. Где хранятся - стек и хип, GC - основы
Методы класса Object (equals, hash, toString)
File IO (Блокирующее)
Синхронное и асинхронное взаимодействие
Классы, поля и методы класса.

Сохранение истории взаимодействия/базовые команды get/clean

Смешанное занятие № 4. Интерфейсы. Исключения

Абстрактные классы и интерфейсы, механизм исключений.
Абстрактные классы, интерфейсы
Анонимные классы, лямбда (пример Comparator)
Исключения (checked/uncheked, иерархия исключений)
Сетевое взаимодействие - Blocking IO/ Socket & ServerSocket

Эхо-чат
Чем отличаются checked/unchecked
Наследование
Отличие абстрактного класса и интерфейса
Для чего нужны private/protected/package методы и поля
разделение ответственности между классами

Смешанное занятие № 5. Потоки и их взаимодействие

Жизненный цикл, прерывание. Критическая секция. Проблемы взаимодействия.
Механизм wait/notify, блокирующие очереди producer/consumer.
Synchronized, критическая секция, deadlock

Смешанное занятие № 6. Коллекции. Параметризация

Коллекции, выбор структуры данных, подходящей для задачи. Параметризованные коллекции. Параметризация в Java.

Задача - Обслуживание сообщений от клиентов, контакт-лист
Коллекции (обзор, апи и контракты), (картинки thread safe/unsafe)
Ordered/unordered коллекции
Коллекции - сравнение и задачи (array/linkedList)
Generics - классы, методы, super/extends, PECS
Применение, коллекции

Вопросы:
Виды коллекций
Сложность операций
Почему нельзя List<Object> objs = List<String>
Отличие LinkedList/ArrayList

Смешанное занятие № 7. Потоки и очереди

Блокирующие очереди.
Wait/notify, java.util.concurrency
Producer-Consumer pattern

Смешанное занятие № 8. Работа с базой данных

Соединение, запросы и обработка результатов.
SQL - create table, select
SQLite
Базы данных - jdbc driver, connection, statement,resultSet

Задача
Сохранение истории в базе, профили пользователей в базе

Смешанное занятие № 9. Базы данных. Транзакции

Типы ошибок при обращении к базе, сложные запросы и транзакции.
Database error/ locked/ connection lost
Базы данных - prepared statement, transactions
Handler

Смешанное занятие № 10. Неблокирующий ввод/вывод пакет nio, шаблоны обработки событий

NIO 5
Long pool
Observer pattern

Смешанное занятие № 11. Основы тестирования

Виды тестирования. Библиотека JUnit
Тестирование - unit, функциональные, интеграционные
Метрики тестирования - время, latency

Рубежный контроль № 1. Рубежный контроль

Рубежный контроль

Смешанное занятие № 12. Сериализация данных, механизм reflection. Аннотации

Сериализация по умолчанию и кастомная. Использование reflection
Reflection, Annotation
Сериализация, бинарный формат
JSON, Jackson

Смешанное занятие № 13. Дополнительные темы

Streams, асинхронные задачи - Future. Примеры задач.
Streams, Future, Akka, Event-Driven
Async database

Лекция № 1. Tomcat/jetty

Tomcat/jetty

Семинар № 1. Консультация

Консультация перед экзаменом

Экзамен № 1. Защита семестрового проекта

Защита семестрового проекта

Пересдача № 1. Пересдача

Пересдача