Skip to content

Практическая часть курса "Программирование на Java", 2016 год

Notifications You must be signed in to change notification settings

fediq/mipt-java-2016

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Программирование на Java

Build Status

Поток 2016го года. Прогресс потока.

Контакты

Чат курса в Telegram

Домашние задания

  1. Калькулятор - дедлайн 14.10.2016 23:59 MSK
  2. Key-value storage - дедлайн 31.10.2016 23:59 MSK
  3. Оптимизация производительности
  • мягкий дедлайн: 21.11.2016 23:59 MSK (после его наступления можно получить максимум 1 балл)
  • жесткий дедлайн: 28.11.2016 23:59 MSK
  1. REST API калькулятор - черновик!, дедлайна нет

Как оценивается

  • Если на момент дедлайна у преподавателя претензий к коду нет, задача считается принятой, за неё даётся 2 балла.
  • Если на момент дедлайна тесты проходятся успешно, но у преподавателя есть замечания, задача считается сделанной, за неё дается 1 балл.
  • Если на момент дедлайна тесты не проходятся или же pull request вообще не оформлен, задача считается не сделанной, за неё дается 0 баллов.

Материалы

Лекции

  1. Основы
  2. Объекты
  3. Классы
  4. Обобщения и лямбды
  5. Проектирование
  6. Многопоточность
  7. Бонус - головоломки
  8. Сборка и компоновка приложения (из курса Промышленное программирование)
  9. Распределенные системы (из курса Промышленное программирование)
  10. Реляционные базы данных (из курса Промышленное программирование)

Рекомендуемая литература

Документация

Семинары 596-ой группы

Стараемся придерживаться google-кодстайла.
Проще всего этого можно добиться, скачав настройки для кодстайла. Посмотреть, как их устанавливать, можно здесь.
После этого не забываем использовать кнопку Code/Reformat Code, хотя бы перед коммитом.

Обязательным является прохождение проверки Maven Checkstyle. Она происходит при запуске всех тестов (например, с помощью mvn test или по клавише test во вкладке Maven Projects).

  1. Java vs C++; Работа с исключениям и I/O (примеры кода, доп семинар)
  2. Паттерны проектирования (коллекция паттернов)
  3. Строки и обёртки над примитивными типами в Java. Антипаттерны (коллекция антипаттернов)
  4. Повторное использование кода в Java. Многопоточность в Java (видео: Java Memory Model)
  5. Средства синхронизации в Java (примеры кода)
  6. Рефлексия и сборка мусора в Java (примеры кода, хорошая статья про ссылки в Java)
  7. Lambdas & Streams (примеры кода, видео: Get a Taste of Lambdas and Get Addicted to Streams)
  8. Spring Framework Core (примеры кода)
  9. REST & DB (примеры кода)
  10. MVC (примеры: Spring MVC, WebSockets + JS-клиент, игрушечный MVC с Observer)
  11. Повторение пройденного (видео: JVM: краткий курс общей анатомии)
Ещё немного на посмотреть
Работа с Git

Программа

  • Предпосылки к появлению Java
  • Примитивы
  • java.lang.Object
  • Классы, абстрактные классы, интерфейсы, внутренние классы, анонимные классы
  • Наследование, переопределение методов
  • Модификаторы доступа, инкапсуляция
  • Обобщения (Generics)
  • Лямбда-выражения
  • Пакет java.util.Collections
  • Компоновка программного кода
  • Многослойная архитектура
  • Порождающие шаблоны проектирования
  • Структурные шаблоны проектирования
  • Поведенческие шаблоны проектирования
  • Потоки в JVM
  • Критические секции, synchronized
  • Java Memory Model
  • Паттерны организации многопоточного кода
  • Проблемы многопоточности
  • Сборщик мусора
  • Стратегии сборки мусора
  • Слабые ссылки
  • Пределы нагрузки JVM
  • Оптимизация кода
  • Профайлинг
  • Тюнинг параметров JVM
  • Reflection API
  • Aspect-Oriented Programming
  • Abstract Syntax Tree
  • Фреймворки для компоновки сложных приложений
  • Работа с SQL из Java
  • HTTP в Java
  • Парадигма REST
  • Форматы сериализации
  • Сравнение Java с другими языками
  • Мотивация при выборе языка/фреймворка/сервиса

About

Практическая часть курса "Программирование на Java", 2016 год

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages