Открытые курсы

  • Для студентов СПбПУ
  • Лекции и практика от сотрудников «Одноклассников» (Mail.ru Group)
  • Занятия по вечерам в будние дни

Приходи учиться

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

Зарегистрироваться

  • Введение в Java
    13 занятий, 50 академических часов
  • Автоматизированное тестирование
    13 занятий, 52 академических часов
  • Разработка на Golang
    7 занятий, 28 академических часов

О курсе «Введение в Java» (Весна 2020)

Курс посвящен изучению основ Java, работе с Git, знакомству с некоторыми практиками тестирования и паттернами проектирования систем. Во время курса студенты смогут освоить Java и создать полноценное приложение.

 

Новый набор будет в весеннем семестре текущего учебного года (2019/2020). Бесплатный открытый (то есть доступный студентам СПбПУ всех направлений подготовки) курс по разработке на языке программирования Java — популярного объектно-ориентированного языка программирования. Курс посвящен изучению основ Java 11, работе с Git, знакомству с некоторыми практиками тестирования и паттернами проектирования систем. Рассчитан на людей, имеющих минимальные базовые знания программирования на любом языке. Во время курса студенты смогут освоить Java и создать полноценное приложение.

    1. Введение в Java. Основы Git

      Основные концепции Java: байт-код и JVM, JIT, сборщик мусора, Java Naming Convention. История развития Java. Установка JDK, создание проекта в IDEA. Основы работы с Git репозиториями.
    2. Разбор домашних. Введение в тестирование

      Разбор первого домашнего задание. Введение в тестирование. JUnit 5. TDD
    3. Checkstyle

      Обзор домашних, checkstyle, процесс сдачи, домашняя работа
    4. Класс


      • Класс
      • Приведение типов
      • Методы
      • Инициализация параметров
      • Вложенные классы
      • Домашняя
    5. Наследование и ООП

      Наследование - extends

      Ключевое слово super - поля/конструктор

      Прекращение наследования - final / private constructor

      Переопределение методов - @Override

      Сокрытие имён переменных - shadowing

      Abstract class vs interface

      Object: equals, hashCode

      Comparable: compareTo

      ООП: Наследование, Абстракция, Инкапсуляция

      Наследование vs Композиция
    6. Коллекции и алгоритмы

      Java Collection Framework. Структуры данных: Collection, List, Queue, Deque, Map, Set. Алгоритмы работы с коллекциями.
    1. Лямбда выражения и Stream API

      ...
    2. Exceptions. Generics

      Работа с исключениями

      Generics
    3. Input/Output. Networking

      Потоки ввода вывода. Пакет java.io. Файловый ввод вывод. Фильтрующие потоки. Data Streams. I/O с консоли.



      Работа с сетью

      Введение. TCP/UDP. URI/URL. HTTP
    4. Основы многопоточного программирования

      Основные понятия. Потоки в Java Закон Амдала. Критические секции. Пассивное ожидание. Неизменяемые объекты. Жизнеспособность.
    5. Утилиты многопоточного программирования

      java.util.concurrent, java.util.concurrent.atomic, java.util.concurrent.locks. fork/join
    6. QA / Фреймворки

      Семинар
    7. Защита итоговых проектов

      Защита и презентация итоговых проектов
Контроль знаний

Вступительное тестирование.
Домашние задания с последующей проверкой.
Итоговый экзамен (защита курсового проекта).

Результат

Базовые знания языка Java. Объектно-ориентированное программирование. Навыки тестирования. Git. Паттерны проектирования

Требования

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