KotlinElective — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Предварительный список тем курса)
(Автор и преподаватели курса)
 
(не показаны 32 промежуточные версии 2 участников)
Строка 1: Строка 1:
'''Kotlin''' — активно развивающийся язык программирования для платформы JVM. Этот язык создан прежде всего для того, чтобы упрощать и ускорять процесс разработки для специалистов, использующих Java. Язык полностью совместим с Java, в одном проекте можно использовать оба языка, общие библиотеки. Вместе с тем, код на Kotlin более компактен и безопасен. Язык довольно прост в освоении, но содержит массу интересных возможностей и особенностей, которые присущи языкам, предполагающим, что любая языковая конструкция является выражением (как, например, Python). Мы считаем, что изучение этого языка будет хорошим вложением в свое будущее (да и просто интересно).  
+
[[Файл:240px-Kotlin-logo.png|100px|мини|справа]]
 +
'''Kotlin''' — активно развивающийся язык программирования для различных платформ. Хотя этот язык создан прежде всего для того, чтобы упрощать и ускорять процесс разработки для специалистов, использующих Java, сейчас поддерживается его компиляция не только в JVM-байткод, но и в JavaScript и в машинный код ([https://kotlinlang.org/docs/reference/native-overview.html Kotlin/Native]). Во всех вариантах компиляции сделан упор на возможность использования уже существующих библиотек другого языка. Таким образом, Kotlin используется для разработки приложений для настольных компьютеров, браузеров, серверов и мобильных устройств. Язык довольно прост в освоении, но содержит массу любопытных возможностей и особенностей, которые присущи языкам, предполагающим, что любая языковая конструкция является выражением (как, например, Python). Вместе с тем, код на Kotlin относительно компактен и безопасен. Изучение этого языка будет хорошим вложением в свое будущее. К тому же это просто интересно.
  
 
== Для кого этот курс ==
 
== Для кого этот курс ==
Строка 6: Строка 7:
  
 
=== Требования к слушателям ===
 
=== Требования к слушателям ===
Умение программировать хотя бы на одном языке программирования высокого уровня (Java, C#, C++, Python). Язык Kotlin работает в среде JRE, а потому знание именно языка Java и особенностей виртуальной машины будет большим плюсом, ''но не является обязательным''.
+
Умение программировать хотя бы на одном языке программирования высокого уровня (Java, C#, C++, Python).  
 +
Для решения задач курса надо будет запускать Kotlin-код в основном в среде JRE, поэтому знание языка Java и особенностей виртуальной машины JVM будет плюсом.
 +
Однако, это знание совсем ''не является обязательным'': среди успешно окончивших курс немало студентов, которые впервые познакомились с JVM именно в ходе данного факультатива.
  
 
== Организация курса ==
 
== Организация курса ==
Курс продлится 16 недель. Еженедельно нужно будет посетить одно занятие и выполнить домашнее задание. Каждое занятие будет длиться 2 пары и состоять из теоретической и практической частей. Практика будет занимать большую часть времени. На занятии будут разбираться конкретные «фишки» языка. От студентов ожидается самостоятельность при решении задач, активное взаимодействие друг с другом. Предполагается, что студенты будут приносить с собой на занятие свои портативные компьютеры с настроенной средой IntelliJ IDEA версии не ниже 2017.3 с установленным расширением для разработки на языке Kotlin новейшей версии.
+
Курс продлится 16 недель. Еженедельно нужно будет посетить одно занятие и выполнить домашнее задание. Каждое занятие продлится 2 пары и будет состоять из теоретической и практической частей. Практика будет занимать большую часть времени. На занятии будут разбираться конкретные «фишки» языка. От студентов ожидается самостоятельность при решении задач, активное взаимодействие друг с другом.  
 +
Предполагается, что студенты будут приносить с собой на занятие свои портативные компьютеры с настроенной средой IntelliJ IDEA с установленным расширением для разработки на языке Kotlin версии 1.4 (в современных версиях IDEA язык Kotlin 1.4 поддерживается "из коробки", так как расширение уже предустановлено). Тем не менее, наличие своего ноутбука не является обязательным: занятия будут проходить в компьютерном классе (в 2020 году - онлайн).
 +
 
 +
== Регистрация на курс ==
 +
 
 +
Участники курса должны '''[https://forms.gle/JQa8dxzMstoPPc6K6 заполнить анкету]'''.
 +
 
 +
Не переживайте, если мест для официальной записи на факультатив нет.
 +
Если вам интересен курс, имеет смысл всё равно появиться на первом занятии.
 +
Мы что-нибудь придумаем.
 +
 
 +
== Где задать вопросы? ==
 +
У курса есть [https://discord.gg/tMgmmgG канал в discord], где можно задать вопросы.
  
 
== Расписание ==
 
== Расписание ==
 +
 +
=== Осень 2020 - Весна 2021 ===
 +
 +
'''В связи с распространением коронавируса факультатив будет проходить в онлайн-режиме.'''
 +
 +
В третьем модуле занятия будут проходить '''по пятницам с 14:40 до 17:40''':<br />
 +
6, 13, 20, 27 ноября<br />
 +
4, 11, 18 декабря<br />
 +
Каждую неделю планируется проводить лекцию и практическое занятие.<br />
 +
Первое занятие должно состояться 6 ноября.
 +
Ссылка на подключение к лекции будет разослана студентам, зарегистрировавшимся на курс.
  
 
=== Осень 2019 - Весна 2020 ===
 
=== Осень 2019 - Весна 2020 ===
  
 
В 2019/20 учебном году курс пройдёт уже в четвёртый раз и запланирован во 2 и 3 модулях.<br />
 
В 2019/20 учебном году курс пройдёт уже в четвёртый раз и запланирован во 2 и 3 модулях.<br />
Занятия будут проходить по пятница с 15:10 до 18:10.<br />
+
Занятия будут проходить '''по пятницам с 15:10 до 18:10'''.<br />
 
Каждую неделю планируется проводить лекцию и практическое занятие.<br />
 
Каждую неделю планируется проводить лекцию и практическое занятие.<br />
Первое занятие должно состояться 1 или 8 ноября.
+
Первое занятие должно состояться 1 ноября.
 +
 
 +
2 модуль: c 1 ноября по 21 декабря – ауд. '''R608'''<br />
 +
3 модуль: c 10 января 2020 по 6 марта 2020 – ауд. '''R608'''
  
 
== Предварительный список тем курса ==
 
== Предварительный список тем курса ==
Строка 34: Строка 63:
  
 
Предварительно в рамках курса запланированы доклады от приглашенных лекторов. Их темы будут определены позднее.
 
Предварительно в рамках курса запланированы доклады от приглашенных лекторов. Их темы будут определены позднее.
 +
 +
== Материалы курса ==
 +
 +
Материалы курса будут доступны слушателям.
 +
 +
[https://www.youtube.com/watch?v=-UjMx5pyPbo Видео] приглашенной лекции Михаила Глухих 6 марта 2020 года.
 +
 +
== Другие полезные материалы ==
 +
 +
* Официальный [https://kotlinlang.org/docs/reference/ сайт] с материалами по языку
 +
* Книга: Dmitry Jemerov, Svetlana Isakova — Kotlin in Action. 2017, Manning Publications. ISBN 9781617293290 ([https://www.manning.com/books/kotlin-in-action на сайте издательства], [https://dmkpress.com/catalog/computer/programming/java/978-5-97060-497-7/ на русском языке])
 +
* [https://kotlin.link/ kotlin.link] - сайт с колоссальным количеством ссылок на материалы по Котлин'у, библиотеки, расширения, курсы и т.д.
 +
* [https://abreslav.com Личная страница] и [https://twitter.com/abreslav твиттер] идеолога и главного проектировщика языка Котлин - Андрея Бреслава (много интересного и не только про Котлин)
  
 
== Как будут выставляться оценки ==
 
== Как будут выставляться оценки ==
  
Каждую неделю студенты будут выполнять задания в аудитории. Будут предложены дополнительные задачки для решения дома. Эти задачи составят 0,7 от накопленной оценки. Еще 0,3 даёт большое домашнее задание, выполняемое в середине курса. Экзамен, завершающий курс, имеет вес 0,2, а накопленная оценка составляет 0,8 от итоговой. Экзамен — тест по пройденному материалу.
+
Каждую неделю студенты будут выполнять задания в аудитории и дома. Эти задачи составят 0.7 от итоговой оценки.  
 +
Еще 0.1 даёт большое домашнее задание, выполняемое в середине курса.  
 +
Экзамен, завершающий курс, имеет вес 0.2 от итоговой.  
 +
Кроме того, предусмотрено выполнение некоторых относительно больших проектов, которые могут быть зачтены вместо экзамена.
 +
Все тонкости и особенности правил формирования оценки будут озвучены на первом занятии и опубликованы для участников курса.
  
== Автор и преподаватель курса ==
+
== Автор и преподаватели курса ==
  
'''А. А. Мицюк''' - научный сотрудник ФКН ([https://www.hse.ru/staff/amitsyuk личная страница])
+
* '''Алексей Мицюк''' - автор и преподаватель курса - доцент департамента программной инженерии ФКН ([https://www.hse.ru/staff/amitsyuk личная страница])
 +
* '''Сергей Булгаков''' - учебный ассистент курса в 2019/2020 и 2020/2021 учебных годах - студент ПМИ ФКН, разработчик в JetBrains ([https://github.com/SerVB GitHub-профиль])
  
 
== Благодарности ==
 
== Благодарности ==
  
 
Факультатив проходит при поддержке компании [https://jetbrains.ru/ JetBrains].
 
Факультатив проходит при поддержке компании [https://jetbrains.ru/ JetBrains].

Текущая версия на 01:55, 5 декабря 2020

240px-Kotlin-logo.png

Kotlin — активно развивающийся язык программирования для различных платформ. Хотя этот язык создан прежде всего для того, чтобы упрощать и ускорять процесс разработки для специалистов, использующих Java, сейчас поддерживается его компиляция не только в JVM-байткод, но и в JavaScript и в машинный код (Kotlin/Native). Во всех вариантах компиляции сделан упор на возможность использования уже существующих библиотек другого языка. Таким образом, Kotlin используется для разработки приложений для настольных компьютеров, браузеров, серверов и мобильных устройств. Язык довольно прост в освоении, но содержит массу любопытных возможностей и особенностей, которые присущи языкам, предполагающим, что любая языковая конструкция является выражением (как, например, Python). Вместе с тем, код на Kotlin относительно компактен и безопасен. Изучение этого языка будет хорошим вложением в свое будущее. К тому же это просто интересно.

Для кого этот курс

Для студентов 1-4 курсов бакалавриата, которые уже умеют программировать, заинтересованы в изучении новых перспективных технологии, планируют работать (или уже подрабатывают в свободное от учебы время) как программисты-практики, думают о том, каким образом повысить эффективность процесса программирования. Студенты первого курса могут записываться на курс, но должны предварительно хорошо рассчитать свои силы.

Требования к слушателям

Умение программировать хотя бы на одном языке программирования высокого уровня (Java, C#, C++, Python). Для решения задач курса надо будет запускать Kotlin-код в основном в среде JRE, поэтому знание языка Java и особенностей виртуальной машины JVM будет плюсом. Однако, это знание совсем не является обязательным: среди успешно окончивших курс немало студентов, которые впервые познакомились с JVM именно в ходе данного факультатива.

Организация курса

Курс продлится 16 недель. Еженедельно нужно будет посетить одно занятие и выполнить домашнее задание. Каждое занятие продлится 2 пары и будет состоять из теоретической и практической частей. Практика будет занимать большую часть времени. На занятии будут разбираться конкретные «фишки» языка. От студентов ожидается самостоятельность при решении задач, активное взаимодействие друг с другом. Предполагается, что студенты будут приносить с собой на занятие свои портативные компьютеры с настроенной средой IntelliJ IDEA с установленным расширением для разработки на языке Kotlin версии 1.4 (в современных версиях IDEA язык Kotlin 1.4 поддерживается "из коробки", так как расширение уже предустановлено). Тем не менее, наличие своего ноутбука не является обязательным: занятия будут проходить в компьютерном классе (в 2020 году - онлайн).

Регистрация на курс

Участники курса должны заполнить анкету.

Не переживайте, если мест для официальной записи на факультатив нет. Если вам интересен курс, имеет смысл всё равно появиться на первом занятии. Мы что-нибудь придумаем.

Где задать вопросы?

У курса есть канал в discord, где можно задать вопросы.

Расписание

Осень 2020 - Весна 2021

В связи с распространением коронавируса факультатив будет проходить в онлайн-режиме.

В третьем модуле занятия будут проходить по пятницам с 14:40 до 17:40:
6, 13, 20, 27 ноября
4, 11, 18 декабря
Каждую неделю планируется проводить лекцию и практическое занятие.
Первое занятие должно состояться 6 ноября. Ссылка на подключение к лекции будет разослана студентам, зарегистрировавшимся на курс.

Осень 2019 - Весна 2020

В 2019/20 учебном году курс пройдёт уже в четвёртый раз и запланирован во 2 и 3 модулях.
Занятия будут проходить по пятницам с 15:10 до 18:10.
Каждую неделю планируется проводить лекцию и практическое занятие.
Первое занятие должно состояться 1 ноября.

2 модуль: c 1 ноября по 21 декабря – ауд. R608
3 модуль: c 10 января 2020 по 6 марта 2020 – ауд. R608

Предварительный список тем курса

  • Базовый синтаксис языка. Основные управляющие конструкции;
  • Система типов;
  • Массивы, диапазоны, строки, коллекции;
  • Операторы;
  • Объектно-ориентированное программирование с использованием языка Kotlin. Разбор конкретных приёмов и задач;
  • Функциональное программирование с использованием языка Kotlin. Разбор конкретных приёмов и задач;
  • Инструменты обобщенного программирования в языке;
  • Разработка предметно-ориентированных языков с использованием языка Kotlin;
  • Использование языка Kotlin совместно с Java;
  • и другие темы.

Предварительно в рамках курса запланированы доклады от приглашенных лекторов. Их темы будут определены позднее.

Материалы курса

Материалы курса будут доступны слушателям.

Видео приглашенной лекции Михаила Глухих 6 марта 2020 года.

Другие полезные материалы

Как будут выставляться оценки

Каждую неделю студенты будут выполнять задания в аудитории и дома. Эти задачи составят 0.7 от итоговой оценки. Еще 0.1 даёт большое домашнее задание, выполняемое в середине курса. Экзамен, завершающий курс, имеет вес 0.2 от итоговой. Кроме того, предусмотрено выполнение некоторых относительно больших проектов, которые могут быть зачтены вместо экзамена. Все тонкости и особенности правил формирования оценки будут озвучены на первом занятии и опубликованы для участников курса.

Автор и преподаватели курса

  • Алексей Мицюк - автор и преподаватель курса - доцент департамента программной инженерии ФКН (личная страница)
  • Сергей Булгаков - учебный ассистент курса в 2019/2020 и 2020/2021 учебных годах - студент ПМИ ФКН, разработчик в JetBrains (GitHub-профиль)

Благодарности

Факультатив проходит при поддержке компании JetBrains.