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

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

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

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

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

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

О курсе «Введение в 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. Объекты. Дебаг

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

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

      Разбор домашнего задания, примеры решения некоторых других задач <div id="gtx-trans" style="position: absolute; left: 186px; top: 38px;"> <div class="gtx-trans-icon"> </div> </div>
    4. JVM. JIT. GC


      • byte-code
      • загрузка классов
      • JIT
      • GC
      • JMM
      Ссылка на трансляцию

       
    5. Наследование и ООП

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

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

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

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

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

      Abstract class vs interface

      Object: equals, hashCode

      Comparable: compareTo

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

      Наследование vs Композиция
    6. Разбор 2 домашнего задания. Live coding

      Разбор домашнего задания, примеры решения некоторых других задач
    1. Коллекции, Лямбда выражения и Stream API

      Коллекции. Подробный разбо списков и HashMap.

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

      Работа с коллекциями и 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. Паттерны проектирования

Требования

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

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

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

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

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