Skip to content

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

Notifications You must be signed in to change notification settings

DanAnastasyev/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

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

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

Материалы

Лекции

  1. Основы
  2. Объекты
  3. Классы
  4. Обобщения и лямбды
  5. Проектирование
  6. Многопоточность

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

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

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

Материалы семинаров:
  1. Java vs C++; Работа с исключениям и I/O
    Примеры кода
    Доп семинар
    Доп. литература: Head First Изучаем Java
    Видео: JVM: краткий курс общей анатомии

  2. Паттерны проектирования
    Доп. литература: Head First Паттерны проектирования
    Коллекция паттернов

  3. Строки и обёртки над примитивными типами в Java. Антипаттерны
    Доп. литература: Чистый код
    Коллекция антипаттернов

  4. Повторное использование кода в Java. Многопоточность в Java

  5. Средства синхронизации в Java
    Примеры кода
    Видео: Java Memory Model

  6. Рефлексия и сборка мусора в Java
    Примеры кода
    Хорошая статья про ссылки в Java

  7. Lambdas & Streams
    Примеры кода
    Видео: Get a Taste of Lambdas and Get Addicted to Streams

  8. Spring Framework Core
    Примеры кода
    Доп. литература: Spring in Action

  9. REST & DB
    Примеры кода

  10. MVC
    Пример с Spring MVC
    Пример с WebSockets и JS-клиентом
    Пример игрушечного MVC на Observable

  11. Повторение пройденного

На посмотреть

Видео: Студенческий синдром: почему мы все делаем в последний момент?
Видео: Get Past the Syntax, the Real Scare's in the Semantics
Видео: Core Design Principles for Software Developers

Дополнительные задачи

Для тех, кому хочется чуть поднять оценку или просто поразвлекаться с джавой, предлагаю набор дополнительных задач. Баллы за каждую задачу указаны в скобках - они будут прибавляться к карме.

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

Документация
Работа с 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 год

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.7%
  • Other 0.3%