2019/2020
Язык Kotlin
Статус:
Дисциплина общефакультетского пула
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
2, 3 модуль
Преподаватели:
Мицюк Алексей Александрович
Язык:
русский
Кредиты:
3
Контактные часы:
64
Программа дисциплины
Аннотация
Kotlin — активно развивающийся язык программирования для различных платформ. Хотя этот язык создан прежде всего для того, чтобы упрощать и ускорять процесс разработки для специалистов, использующих Java, сейчас поддерживается его компиляция не только в JVM-байткод, но и в JavaScript и в машинный код (Kotlin/Native). Во всех вариантах компиляции сделан упор на возможность использования уже существующих библиотек другого языка. Таким образом, Kotlin используется для разработки приложений для настольных компьютеров, браузеров, серверов и мобильных устройств. Язык довольно прост в освоении, но содержит массу любопытных возможностей и особенностей, которые присущи языкам, предполагающим, что любая языковая конструкция является выражением (как, например, Python). Вместе с тем, код на Kotlin относительно компактен и безопасен. Изучение этого языка будет хорошим вложением в свое будущее. К тому же это просто интересно.
Цель освоения дисциплины
- Познакомить слушателей с новым языком программирования Kotlin, который не рассматривается в рамках основных образовательных программ.
Планируемые результаты обучения
- Уметь использовать основные управляющие конструкции языка: циклы, ветвления и др. Уметь использовать среду разработки IntelliJ IDEA для создания простого приложения на Kotlin.
- Знать устройство системы типов языка Kotlin и представлять устройство системы типов языка Java. Понимать значение термина "null-безопасность". Уметь использовать приведения типов, проверки типов.
- Уметь работать с массивами и основными коллекциями (списки, множества, словари) в языке Kotlin.
- Уметь работать с диапазонами в Kotlin.
- Понимать устройство строк в Kotlin. Уметь работать со строками.
- Уметь перегружать стандартные операторы в языке Kotlin.
- Знать и уметь использовать операторы проверки и приведения типов.
- Знать предназначение элвис-оператора, оператора безусловного вызова. Уметь их использовать.
- Понимать основные особенности объектно-ориентированной парадигмы программирования.
- Уметь объявлять и использовать классы, интерфейсы. Знать отличия классов и интерфейсов, а также их предназначение в языке.
- Уметь объявлять методы, поля, свойства (в т.ч. делегируемые).
- Знать предназначение и особенности использования внутренних и вложенных классов.
- Понимать отличия классов и объектов.
- Уметь использовать функции расширения.
- Понимать особенности функциональной парадигмы программирования.
- Владеть возможностями языка Kotlin для программирования в функциональном стиле.
- Уметь использовать лямбда-выражения.
- Уметь использовать функции высших порядков.
- Владеть возможностями работы с обобщенными функциями и классами в языке Kotlin.
- Знать понятие вариантности. Понимать его предназначение.
- Знать основы устройства модели памяти Java.
- Уметь работать с потоками и сопрограммы в языке Kotlin.
Содержание учебной дисциплины
- Базовый синтаксис языка. Основные управляющие конструкции.Рассматривается базовый синтаксис языка, ключевые слова, встроенные операторы, основные конструкции потока управления: условные конструкции, циклы. На практике изучаются основы использования среды разработки IntelliJ IDEA при программировании с использованием языка Kotlin. Ввод кода, подсветка кода, удобные вспомогательные функции: автодополнение и другие, поиск. Работа с проектами. Обработка исключений в языке Kotlin.
- Система типов.Рассматриваются особенности системы типов языка Kotlin. Правила приведения (преобразования) типов. Вывод типов в языке Kotlin. Типобезопасность языка Kotlin. Возможности работы с небезопасными типами. Связь с системой типов Java. Особенности использования Java-кода в проектах на Kotlin. Функции расширения.
- Коллекции.Массивы. Коллекции. Диапазоны. Работа с Java-коллекциями. Немного о строках.
- Операторы.Операторы. Перегрузка операторов. Операторы проверки и приведения типов. Элвис-оператор.
- Объектно-ориентированное программирование с использованием языка Kotlin.Классы, интерфейсы. Методы, поля, свойства (в т.ч. делегируемые). Вложенные классы. Модификаторы доступа. Наследование. Реализация интерфейсов. Конструкторы классов. Расширения. Объекты, объекты-компаньоны. Особенности ООП кратко.
- Функциональное программирование с использованием языка Kotlin.Функции в языке Kotlin. Методы. Передача параметров. Лямбда-выражения. Использование лямбда-выражений при работе с коллекциями. Функции высших порядков. Встроенные функции. Особенности функционального стиля кратко.
- Инструменты обобщенного программирования в языке.Работа с обобщениями в языке Kotlin. Обобщенные типы. Обобщенные функции. Вариантность. Проекции типов.
- Разработка параллельного и асинхронного кода с использованием Kotlin.Модель памяти Java. Понятия параллельного и асинхронного кода. Потоки. Сопрограммы.
Элементы контроля
- Еженедельные домашние задания
- Мини-проект
- Итоговый письменный экзаменОценка за дисциплину выставляется в соответствии с формулой оценивания от всех пройденных элементов контроля. Экзамен не проводится.
Промежуточная аттестация
- Промежуточная аттестация (3 модуль)0.7 * Еженедельные домашние задания + 0.2 * Итоговый письменный экзамен + 0.1 * Мини-проект
Список литературы
Рекомендуемая основная литература
- Жемеров Д., Исакова С. - Kotlin в действии - Издательство "ДМК Пресс" - 2018 - 402с. - ISBN: 978-5-97060-497-7 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/112926
Рекомендуемая дополнительная литература
- Гамма Э., Хелм Р., Джонсон Р. - Приемы объектно ориентированного проектирования. Паттерны проектирования - Издательство "ДМК Пресс" - 2007 - 368с. - ISBN: 5-93700-023-4 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/1220
- Коузен К. - Современный Java: рецепты программирования - Издательство "ДМК Пресс" - 2018 - 275с. - ISBN: 978-5-97060-134-1 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/116121