##Курс Java
Содержание курса:
- Введение. Цели курса
- Краткая история языка и его характерные особенности.
- Первая программа на JAVA, компиляция и исполнение
- Установка и настройка среды
- Основные типы данных и их использование
- Комментарии
- Система контроля версий Git (?)
- Обзор источников и ресурсов для самообразования
- Установка и настройка среды у себя дома
- Найти литературу и необходимые источники данных
2. Синтаксис языка
- Ссылочные типы и примитивные типы
- Работа со String
- Массивы
- Области видимости переменных
- Условные конструкции
- Операторы и циклы
- Методы
- Простейшие алгоритмы и вычисления
- Реализовать простой алгоритм
- Алгоритм с использованием цикла
- Работа с классом String
- Почитать про code-conventions
3. Практический блок
- Вопросы по первым лекциям
- Обсуждения ДЗ
- Практическое задание
- Дополнительные задачи на String
- Реализовать substring
- Определить являются ли числа в строке последовательны
- Приложение-калькулятор
- Дополнительные задачи на String
- Доп. задание для успевающих
- Изучаем Git
- Доделываем ДЗ № 2 + Практику
- Практика - Реализовать калькулятор
- Для тех кто все успевает - сделать этот же калькулятор с помощью GUI (на Swing'e)
- Работаем с Git
4. ООП
- Парадигма ООП
- Базовый класс - Object
- Области видимости и инкапсуляция. Пакеты, импорты
- Реализовать класс с определенными данными и поведением (фабрика, сериализация/десериализация)
- Сделать pull request на оригинальный репозиторий
5. Наследование и интерфейсы
- Расширение классов
- UML
- Класс Object
- Класс Class
- Применение наследования
- Интерфейсы и внутренние классы
- Интерфейсы
- Полиморфизм
- Внутренние классы
- Анонимные классы
- Читаем про наследование, полиморфизм
- Читаем UML
- Доделываем все предыдущие ДЗ
- Рисуем диаграмму классов
- Синхронизируем последние изменения и делаем pull request
6. Практика. Обощенное ООП. Практика для модуля №5.
7. Исключения
- Зачем нужны исключения
- Проверяемые и непроверяемые исключения
- Обработка исключений
- throw, throws, try{}catch(){}, finally
- Input\Output streams
- Работа с файловой системой
- Улучшение рулетки
8. Коллекции
- Iterable, Iterator и Collection
- Интерфейс List, Queue и его имплементации
- Интерфейс Set и его имплементации
- Интерфейс Map и его имплементации
- Реализовать связный список
- Сделать анализатор текста
9. Разбор предыдущей домашней работы
- Читаем про обобщения
- Имплементим мультимапу
10. Обощения
- Обобщенные классы
- Обощенные методы
- Ограничения переменных типов
- Обощения и виртуальная машина
- Трансляция
- Подстановочные типы
- Читаем про базы данных и SQL
- Делаем имитацию БД
11. Базы данныз
- Введение
- ER-модель
- Реляционные базы
- DDL
- DML
- Читаем про базы данных и SQL
- Ставим себе MySQL
- Играем с тестовой базой
12. Базы данных и JDBC
- JOINS
- Транзакционность
- Хранимые процедуры и функции
- JDBC
- Делаем приложени, которое работает с БД через JDBC
13. Практика
14. Сервлеты
- Java Servlets
- Servlet Overview
- Servlet Life Cycle
- Java Servlet Example
- HttpServlet
- HttpRequest
- HttpResponse
- HttpSession
- RequestDispatcher
- ServletContext
- web.xml Servlet Configuration
- Cookies and Servlets
- Servlet Filters
- Делаем web-приложение
15. Рефлексия, аннотации
<<<<<<< HEAD 17. Юнит тестирование
- TDD
- JUnit
- Mockito
18. Практический блок
19. Объектно Ориентированный Дизайн
- Паттерны проэктирования
- SOLID
- Примеры ======= ДЗ #15
- Пишем мальнький сервис, который работает с рефлексией
16. Юнит тестирование
- Юнит тестирование
- Разбор предыдущих ДЗ в классе
- Покрываем тестами ваше веб-приложение
17. Паттерны проектирования
- Реализуем паттерн Memento для рулетки
18. OOD
- Пишем свинговое приложение
19. Многопоточность и паралелизм
- Какая польза от многопоточности
- Какая цена многопоточности
- В чем разница между паралелизмом и concurrency
- Основы многопоточности с точки зрения архитектуры компьюютера
- Многопточность с точки зрения ОС
- Что такое поток и процесс в ОС
- Возможные состояния потока
- Многопоточность с точки зрения Java
- Создание потоков
- Гонка (Race conditions)
- Проблема общих данных
- Синхноризация
- Wait, notify, notifyAll
- Улучшаем наше приложение с шариками
upstream/master
20. Введение в Enterprise
- Системы сборки проекта (Ant, Maven)
- Клиет-сервер
- Многоуровневая архитектура приложений
21. Практика
22. Enterprise. Hibernate
- ORM
- Маппинг сущностей
- XML конфигурация
- Конфигурация с помощью аннотаций
- DAL, DAO, DTO
23. Enterprise. Spring framework
- Слабое связывание
- Dependency Injection
- Spring framework overview
- Spring IOC
24. Веб приложение на основе Spring MVC
25. Разработка командного проекта
26. Разработка командного проекта
27. Разработка командного проекта
28. Разработка командного проекта
29. Разбор вопросов на собеседование по вакансии Java junior
30. Разбор вопросов на собеседование по вакансии Java junior