Основы программирования на языке JAVA | Eesti | BT Koolitused

Программа курса

 

Преподаватель курса

Вадим Семенов, имеет высшее образование, окончил ТТУ по специальности «Информатика»

разработчик программного обеспечения, имеет опыт преподавания 

 

1. Виртуальная машина Java, синтаксис (30 ак. ч.)

1.1. Обзор языка, настройка среды

1.2. Виртуальная машина. компиляция, распределение памяти

1.3. Константы, переменные, литералы. Хранение данных в памяти виртуальной машины.

1.4. Жизненный цикл, порядок создания классов, объектов, их полей и констант.

1.5. Синтаксис: main object, работа с примитивами, базовые типы.

1.6. Синтаксис: методы объекта, основные принципы создания метода (clean code, DRY, KISS etc)

1.7. Синтаксис: statements, conditionals, switch case

1.8. Синтаксис: loops: for, while

1.9. Синтаксис: boolean logic, логические операторы и их иерархия.

1.10. Синтаксис: calculations, арифметические операторы и их иерархия.

1.11. Синтаксис: try .. catch, Exception class

1.12. Стандартные объекты. примитивы vs wrapped objects: Long, Boolean. String

1.13. Стандартные объекты. Cредства ввода-вывода: InputStream, OutputStream

1.14. Стандартные объекты. Date. Java 1.8: Clock, ZoneId, LocalTime, LocalDateTime

1.15. javadoc, annotations, coding conventions

 

2. Объектно-ориентированное программирование. ч. 1. (22 ак. ч.)

2.1. конструкторы объектов. Java 1.8: suppliers

2.2. Базовый класс Object и его методы clone, equals, hash, toString

2.3. Создание кастомных объектов: class, enum

2.4. Группировка классов - package. Области видимости.

2.5. Java 1.8: lambda-выражения. видимость переменных в lambda

2.6. наследование. Доступ к методам родительского класса.

2.7. инкапсуляция. Private, package-private поля класса.

2.8. полиморфизм. Переопределение поведения, приведение типов.

2.9. Iterator, Comparator. Возможности компараторов в Java 1.8

2.10. Java 1.8: cтримы. окончательные и промежуточные методы стримов.

2.11. Средства графики в java, GUI

 

3. Базовые алгоритмы в работе с Java (20 ак. ч.)

3.1. рекурсия vs циклы. Условие выхода.

3.2. Сортировка, Java 1.8: parallelStream().sorted()

3.3. Структуры данных: переменные и массивы

3.4. Структуры данных: Array vs List, Set

3.5. Структуры данных: цепи и деревья

3.6. Поиск, обход дерева

3.7. Структуры данных Maps, Multi-maps

3.8. хэширование ассоциативных структур по ключам, Java 1.8: putIfAbsent, getOrDefault

3.9. Сложность алгоритма

3.10. Оптимизация алгоритмов

 

4. Объектно-ориентированное программирование. ч. 2. (26 ак. ч.)

4.1. абстрактные классы

4.2. интерфейсы + interface default (1.8)

4.3. generic types

4.4. Reflection API: getDeclaredField, setAccessible

4.5. Reflection API: decorators

4.6. Java 1.8: Функциональные интерфейсы

4.7. Java 1.8: Ссылки на методы и конструкторы

4.8. Взаимодействие объектов в системе: Composition & Aggregation

4.9. Взаимодействие объектов в системе: Injection, способы внедрения зависимостей

4.10. Взаимодействие объектов в системе: Threads, Runnable

4.11. Взаимодействие объектов в системе: Синхронизация потоков

4.12. Взаимодействие объектов в системе: Networking. URL, HttpClient

4.13. Взаимодействие объектов в системе: Сериализация и десериализация. XML, Json. Эндпойнты.

 

5. Основные паттерны программирования (20 ак. ч.)

5.1. Объектные паттерны: Singleton

5.2. Объектные паттерны: Factories + Abstract Factory

5.3. Объектные паттерны: Prototype

5.4. Объектные паттерны: Builder

5.5. Структурные паттерны: Adapter

5.6. Структурные паттерны: Facade

5.7. Структурные паттерны: Composite

5.8. Структурные паттерны: Decorator

5.9. Структурные паттерны: Proxy, Bridge

5.10. Антипаттерны.

 

6. Презентация итоговой работы студентов (2 ак. ч.)

Примечание

Данный курс предполагает большой объём самостоятельной работы, соответственно, желание учиться и развиваться во внеурочное время являются решающим фактором, от которого напрямую зависит конечный результат.