Открытые семестровые курсы

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

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

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

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

  • Введение в Java
    12 занятий, 48 академических часов
  • Автоматизированное тестирование
    16 занятий, 64 академических часов

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

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

 

Бесплатный курс для студентов СПбПУ всех направлений подготовки. Курс посвящен разработке на языке программирования Java — популярного объектно-ориентированного языка программирования. Рассчитан на людей, имеющих минимальные базовые знания программирования на любом языке. 

Презентации лекций

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

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

      Введение в модификаторы. Введение в объекты и ссылочные типы.

      Массивы. Строки
    3. Разбор домашнего задания. Live coding

      Разбор домашнего задания, примеры решения некоторых других задач. Например парсинг строк <div id="gtx-trans" style="position: absolute; left: 476px; top: 78px;"> <div class="gtx-trans-icon"> </div> </div>
    4. Наследование и ООП

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

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

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

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

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

      Abstract class vs interface

      Object: equals, hashCode

      Comparable: compareTo

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

      Наследование vs Композици
      <div id="gtx-trans" style="position: absolute; left: 17px; top: 225px;">
      <div class="gtx-trans-icon"> </div>
      </div>
    5. Разбор 2 домашнего задания. Live coding

      Разбор домашнего задания, примеры решения некоторых других задач
    6. Коллекции. Задача про дороги

      Коллекции. Iterator. Iterable. Сложность алгоритмов. Подробный разбор списков и HashMap.

      Продолжение задачи про дороги
      <div id="gtx-trans" style="position: absolute; left: 10px; top: 87px;">
      <div class="gtx-trans-icon"> </div>
      </div>
    1. Разбор Домашки по объектам. Generics. Функциональное программирование.

      Разбор задания с фильтрами

      Generics. Функционально программирование и функцианальные интерефейсы. Лямбда выражения. 
    2. Stream API. Exceptions

      Stream API

      Работа с исключениями
    3. JVM. JIT. GC


      • byte-code
      • загрузка классов
      • JIT
      • GC
      • JMM
    4. Input/Output

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

      JUnit, Mockito, Retrofit

      Как правильно тестировать

      Принцип работы с библиотеками / Фреймворкfvb
    6. Ответы на вопросы. Reflection

      Разбор домашнего задания. Ответы на практические и теоретические вопросы. ВВедение в Reflection
Контроль знаний

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

Результат

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

Требования

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

Материалы для подготовки

Что нужно для поступления?

Обладать базовыми знаниями Java и пройти онлайн-тестирование по Java и по логике
Как подготовиться к поступлению?

Дополнительные материалы: Литература для теста по логике:
  • Андрей Колмогоров, Альберт Драгалин. Математическая логика. Введение в математическую логику. М., "Ленанд", 2017, 240 с.
  • В.Н. Крупский, В.Е. Плеско. Математическая логика и теория алгоритмов. М., Издательский центр "Академия", 2013, 416 с.