• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
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