Программирование на Kotlin
Новосибирск / весна 2018, посмотреть все семестры

Обратная связь

Если вы участвовали в курсе, огромная просьба оставить обратную связь, чтобы помочь нам сделать следующие версии курса лучше. Спасибо!

Аннотация

Каждый программист, кто хотя бы раз разрабатывал более-менее серьезное приложение на языке Java, сталкивался с проблемой излишней многословности этого языка: зачастую достаточно простую и понятную идиому приходится выражать большим и не всегда очевидным кодом. Альтернативные языки для JVM пытаются решить данную проблему расширением предоставляемых программисту возможностей; одним из таких языков является язык Kotlin.

Kotlin – это относительно молодой язык для JVM, разрабатываемый в компании JetBrains, основными мáксимами которого являются лаконичность и простота, статическая типобезопасность, и полная совместимость с Java. В данном курсе мы рассмотрим основные возможности языка Kotlin, чем он отличается от Java, какие из существующих проблем решает и как он это делает.

Предварительный состав лекций выглядит следующим образом:

  • Kotlin 101: минимальный набор знаний, достаточный для того, чтобы начать разрабатывать на Kotlin
  • Классы в Kotlin: как Kotlin поддерживает базовое ООП
  • Классы в Kotlin, часть 2: как Kotlin упрощает создание POJO (и не только)
  • ФП в Kotlin: все то, о чем вы мечтали в Java (до Java 8), но боялись попробовать
  • Дженерики в Kotlin: как починить ряд проблем Java так, чтобы ничего не сломалось
  • Делегирование плюс операторы и расширения: три кита, которые сильно упрощают жизнь
  • DSL в Kotlin: добавляем в свой язык JSON, не переписывая компилятор
  • Корутины в Kotlin: как я перестал бояться параллельного программирования
  • Kotlin и рефлексия: разбираемся в себе метапрограммировании
  • To be decided

Формат курса

Курс проводится в интенсивном формате и разделен на две примерно равные части. Первая часть (6 лекций) пройдёт с 12 по 17 февраля; вторая часть курса (еще 4 лекции) запланирована на апрель. Кроме лекций планируется проведение семинаров в свободной форме, на которых можно будет задать интересующие слушателей вопросы, связанные с Kotlin в частности и разработкой ПО в целом, попробовать применить Kotlin для решения интересных задач, и/или обсудить практическую часть курса.

Практическая часть курса будет состоять из следующих частей:

  • решение простых задач в формате напишите функцию, которая ...
  • курсовой проект
  • соревнование в стиле ICFPC 2017

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

Связь с преподавателем

Вспомогательный материал

Материал по практике

Дата и время Название Место Материалы
12 февраля
18:10–19:45
Лекция 1. Kotlin 101, лекция НГУ, ауд. 2128 слайдывидео
13 февраля
18:10–19:45
Лекция 2. Классы в Kotlin, лекция НГУ, ауд. 2128 слайдывидео
14 февраля
18:10–19:45
Лекция 3. Классы в Kotlin, часть 2, лекция НГУ, ауд. 2128 слайдывидео
15 февраля
18:10–19:45
Лекция 4. ФП в Котлин, лекция НГУ, ауд. 2128 слайдывидео
15 февраля
20:00–21:35
Семинар, семинар НГУ, ауд. 2128 Нет
16 февраля
18:10–19:45
Лекция 5. Дженерики в Kotlin, лекция НГУ, ауд. 2128 слайдывидео
16 февраля
20:00–21:35
Семинар, семинар НГУ, ауд. 2128 Нет
17 февраля
18:10–19:45
Лекция 6. Делегирование и все-все-все, лекция НГУ, ауд. 2128 слайдывидео
17 февраля
20:00–21:35
Семинар, семинар НГУ, ауд. 2128 Нет
17 апреля
18:10–19:45
Лекция 7. Корутины, лекция НГУ, ауд. 2128 слайды
17 апреля
20:00–21:35
Семинар, семинар НГУ, ауд. 2128 Нет
18 апреля
18:10–19:45
Лекция 8. Корутины, часть 2, лекция НГУ, ауд. 2128 слайдывидео
18 апреля
20:00–21:35
Семинар, семинар НГУ, ауд. 2128 Нет
19 апреля
18:10–19:45
Лекция 9. DSL в Kotlin, лекция НГУ, ауд. 2128 слайдывидео
19 апреля
20:00–21:35
Семинар, семинар НГУ, ауд. 2128 Нет
20 апреля
18:10–19:45
Лекция 10. Kotlin puzzlers, лекция НГУ, ауд. 2128 слайдывидео
20 апреля
20:00–21:35
Семинар, семинар НГУ, ауд. 2128 Нет