Skip to content

Latest commit

 

History

History
269 lines (201 loc) · 9.74 KB

DRAFT.md

File metadata and controls

269 lines (201 loc) · 9.74 KB

##Курс Java

Содержание курса:

1. Введение в JAVA

  • Введение. Цели курса
  • Краткая история языка и его характерные особенности.
  • Первая программа на JAVA, компиляция и исполнение
  • Установка и настройка среды
  • Основные типы данных и их использование
  • Комментарии
  • Система контроля версий Git (?)
  • Обзор источников и ресурсов для самообразования

ДЗ #1:

  • Установка и настройка среды у себя дома
  • Найти литературу и необходимые источники данных

2. Синтаксис языка

  • Ссылочные типы и примитивные типы
  • Работа со String
  • Массивы
  • Области видимости переменных
  • Условные конструкции
  • Операторы и циклы
  • Методы
  • Простейшие алгоритмы и вычисления

ДЗ #2:

  • Реализовать простой алгоритм
  • Алгоритм с использованием цикла
  • Работа с классом String
  • Почитать про code-conventions

3. Практический блок

  • Вопросы по первым лекциям
  • Обсуждения ДЗ
  • Практическое задание
    • Дополнительные задачи на String
      • Реализовать substring
      • Определить являются ли числа в строке последовательны
    • Приложение-калькулятор
  • Доп. задание для успевающих

ДЗ #3

  • Изучаем Git
  • Доделываем ДЗ № 2 + Практику
  • Практика - Реализовать калькулятор
  • Для тех кто все успевает - сделать этот же калькулятор с помощью GUI (на Swing'e)
  • Работаем с Git

4. ООП

  • Парадигма ООП
  • Базовый класс - Object
  • Области видимости и инкапсуляция. Пакеты, импорты

ДЗ #4:

  • Реализовать класс с определенными данными и поведением (фабрика, сериализация/десериализация)
  • Сделать pull request на оригинальный репозиторий

5. Наследование и интерфейсы

  • Расширение классов
    • UML
    • Класс Object
    • Класс Class
    • Применение наследования
  • Интерфейсы и внутренние классы
    • Интерфейсы
    • Полиморфизм
    • Внутренние классы
    • Анонимные классы

ДЗ #5

  • Читаем про наследование, полиморфизм
  • Читаем UML
  • Доделываем все предыдущие ДЗ
  • Рисуем диаграмму классов
  • Синхронизируем последние изменения и делаем pull request

6. Практика. Обощенное ООП. Практика для модуля №5.

7. Исключения

  • Зачем нужны исключения
  • Проверяемые и непроверяемые исключения
  • Обработка исключений
  • throw, throws, try{}catch(){}, finally

ДЗ #6

  • Input\Output streams
  • Работа с файловой системой
  • Улучшение рулетки

8. Коллекции

  • Iterable, Iterator и Collection
  • Интерфейс List, Queue и его имплементации
  • Интерфейс Set и его имплементации
  • Интерфейс Map и его имплементации

ДЗ #8

  • Реализовать связный список
  • Сделать анализатор текста

9. Разбор предыдущей домашней работы

ДЗ #9

  • Читаем про обобщения
  • Имплементим мультимапу

10. Обощения

  • Обобщенные классы
  • Обощенные методы
  • Ограничения переменных типов
  • Обощения и виртуальная машина
  • Трансляция
  • Подстановочные типы

ДЗ #10

  • Читаем про базы данных и SQL
  • Делаем имитацию БД

11. Базы данныз

  • Введение
  • ER-модель
  • Реляционные базы
  • DDL
  • DML

ДЗ #11

  • Читаем про базы данных и SQL
  • Ставим себе MySQL
  • Играем с тестовой базой

12. Базы данных и JDBC

  • JOINS
  • Транзакционность
  • Хранимые процедуры и функции
  • JDBC

ДЗ #12

  • Делаем приложени, которое работает с БД через JDBC

13. Практика

  • Обсуждаем предыдущее ДЗ
  • Замечания
  • Доделываем ДЗ #12 с учетом замечаний

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

ДЗ #14

  • Делаем web-приложение

15. Рефлексия, аннотации

<<<<<<< HEAD 17. Юнит тестирование

  • TDD
  • JUnit
  • Mockito

18. Практический блок

19. Объектно Ориентированный Дизайн

  • Паттерны проэктирования
  • SOLID
  • Примеры ======= ДЗ #15
  • Пишем мальнький сервис, который работает с рефлексией

16. Юнит тестирование

  • Юнит тестирование
  • Разбор предыдущих ДЗ в классе

ДЗ #16

  • Покрываем тестами ваше веб-приложение

17. Паттерны проектирования

ДЗ #17

  • Реализуем паттерн Memento для рулетки

18. OOD

ДЗ #18

  • Пишем свинговое приложение

19. Многопоточность и паралелизм

  • Какая польза от многопоточности
  • Какая цена многопоточности
  • В чем разница между паралелизмом и concurrency
  • Основы многопоточности с точки зрения архитектуры компьюютера
  • Многопточность с точки зрения ОС
  • Что такое поток и процесс в ОС
  • Возможные состояния потока
  • Многопоточность с точки зрения Java
  • Создание потоков
  • Гонка (Race conditions)
  • Проблема общих данных
  • Синхноризация
  • Wait, notify, notifyAll

ДЗ #19

  • Улучшаем наше приложение с шариками

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