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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Где задать вопросы?)
(Осень 2021)
 
(не показано 38 промежуточных версии 2 участников)
Строка 5: Строка 5:
  
 
Для студентов 1-4 курсов бакалавриата, которые уже умеют программировать, заинтересованы в изучении новых перспективных технологии, планируют работать (или уже подрабатывают в свободное от учебы время) как программисты-практики, думают о том, каким образом повысить эффективность процесса программирования. Студенты первого курса могут записываться на курс, но должны предварительно хорошо рассчитать свои силы.
 
Для студентов 1-4 курсов бакалавриата, которые уже умеют программировать, заинтересованы в изучении новых перспективных технологии, планируют работать (или уже подрабатывают в свободное от учебы время) как программисты-практики, думают о том, каким образом повысить эффективность процесса программирования. Студенты первого курса могут записываться на курс, но должны предварительно хорошо рассчитать свои силы.
 +
Магистры могут записаться на курс, но должны подумать, насколько это им интересно и важно.
  
 
=== Требования к слушателям ===
 
=== Требования к слушателям ===
Строка 12: Строка 13:
  
 
== Организация курса ==
 
== Организация курса ==
Курс продлится 16 недель. Еженедельно нужно будет посетить одно занятие и выполнить домашнее задание. Каждое занятие продлится 2 пары и будет состоять из теоретической и практической частей. Практика будет занимать большую часть времени. На занятии будут разбираться конкретные «фишки» языка. От студентов ожидается самостоятельность при решении задач, активное взаимодействие друг с другом.  
+
Курс продлится 16 недель (в 2021/22 учебном году - 8 недель). Еженедельно нужно будет посетить одно занятие и выполнить домашнее задание. Каждое занятие продлится 2 пары и будет состоять из теоретической и практической частей. Практика будет занимать большую часть времени. На занятии будут разбираться конкретные «фишки» языка. От студентов ожидается самостоятельность при решении задач, активное взаимодействие друг с другом.  
Предполагается, что студенты будут приносить с собой на занятие свои портативные компьютеры с настроенной средой IntelliJ IDEA с установленным расширением для разработки на языке Kotlin версии 1.3 (в современных версиях IDEA язык Kotlin 1.3 поддерживается "из коробки", так как расширение уже предустановлено). Тем не менее, наличие своего ноутбука не является обязательным: занятия будут проходить в компьютерном классе.
+
Предполагается, что студенты будут приносить с собой на занятие свои портативные компьютеры с настроенной средой IntelliJ IDEA с установленным расширением для разработки на языке Kotlin версии 1.4 (в современных версиях IDEA язык Kotlin 1.4 поддерживается "из коробки", так как расширение уже предустановлено). Тем не менее, наличие своего ноутбука не является обязательным: занятия будут проходить в компьютерном классе (в 2020, 2021 году - онлайн).
  
== Регистрация на курс ==
+
== Записаться на курс ==
  
Участники курса должны заполнить [https://forms.gle/JQa8dxzMstoPPc6K6 анкету].
+
'''Участники курса должны [https://forms.gle/JQa8dxzMstoPPc6K6 заполнить анкету]'''.
 +
 
 +
Не переживайте, если мест для официальной записи на факультатив нет.
 +
Если вам интересен курс, имеет смысл всё равно появиться на первом занятии.
 +
Мы что-нибудь придумаем.
  
 
== Где задать вопросы? ==
 
== Где задать вопросы? ==
Строка 23: Строка 28:
  
 
== Расписание ==
 
== Расписание ==
 +
 +
=== Осень 2021 ===
 +
 +
В связи с распространением коронавируса факультатив будет проходить '''в онлайн-режиме'''.
 +
 +
Занятия будут проходить '''по пятницам с 14:40 до 17:40''':<br />
 +
В 2021/22 учебном году всего планируется 8 недель занятий в ноябре и декабре.<br />
 +
Каждую неделю планируется проводить лекцию или две, некоторые из пар будут предназначены для ответов на вопросы студентов.<br />
 +
Первое занятие должно состояться '''29 октября'''.
 +
Ссылка на подключение к лекции будет разослана студентам, зарегистрировавшимся на курс.
 +
 +
=== Осень 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 ноября.
 
Первое занятие должно состояться 1 ноября.
  
2 модуль: c 1 ноября по 21 декабря – ауд. '''R608'''<br />
+
2 модуль: c 1 ноября по 21 декабря – ауд. R608<br />
3 модуль: c 10 января 2020 по 6 марта 2020 – ауд. '''R608'''
+
3 модуль: c 10 января 2020 по 6 марта 2020 – ауд. R608
 
+
Не переживайте, если мест для официальной записи на факультатив нет.
+
Если вам интересен курс, имеет смысл всё равно появиться на первом занятии.
+
Мы что-нибудь придумаем.
+
  
 
== Предварительный список тем курса ==
 
== Предварительный список тем курса ==
Строка 56: Строка 78:
  
 
Материалы курса будут доступны слушателям.
 
Материалы курса будут доступны слушателям.
 +
 +
[https://www.youtube.com/watch?v=-UjMx5pyPbo Видео] приглашенной лекции Михаила Глухих 6 марта 2020 года.
  
 
== Другие полезные материалы ==
 
== Другие полезные материалы ==
  
* Официальный [https://kotlinlang.org/docs/reference/ сайт] с материалами по языку
+
* Официальный [https://kotlinlang.org/docs/home.html сайт] с материалами по языку
 +
* Разные [https://kotlinlang.org/community/ ресурсы сообщества]
 
* Книга: 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/ на русском языке])
 
* Книга: 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://kotlin.link/ kotlin.link] - сайт с колоссальным количеством ссылок на материалы по Котлин'у, библиотеки, расширения, курсы и т.д.
 
* [https://abreslav.com Личная страница] и [https://twitter.com/abreslav твиттер] идеолога и главного проектировщика языка Котлин - Андрея Бреслава (много интересного и не только про Котлин)
 
* [https://abreslav.com Личная страница] и [https://twitter.com/abreslav твиттер] идеолога и главного проектировщика языка Котлин - Андрея Бреслава (много интересного и не только про Котлин)
 +
* А ещё можно [https://play.kotlinlang.org/ попробовать программировать на Kotlin прямо в браузере], но лучше, конечно, делать это в [https://www.jetbrains.com/idea/ IntelliJ IDEA] (кстати, вот [https://www.jetbrains.com/community/education/#students тут] можно запросить студенческую лицензию, если версии community не хватает)
  
 
== Как будут выставляться оценки ==
 
== Как будут выставляться оценки ==
  
 +
=== 2021/22 учебный год ===
 +
 +
Каждую неделю студенты получают отдельную оценку за решение задач: Н1, Н2, Н3, Н4, Н5, Н6, Н7.
 +
Кроме этого студенты могут выполнить небольшую проектную работу: Проект.<br/>
 +
Итог будет посчитан по такой формуле:
 +
Итог = 0,05 * Н1 + 0,1 * Н2 + 0,1 * Н3 + 0,05 * Н4 + 0,2 * Н5 + 0,15 * Н6 + 0,15 * Н7 + 0,2 * Проект<br/>
 +
Экзамен в 2021/22 учебном году не предусмотрен.
 +
Оценка за каждый элемент контроля от 0 до 10.
 +
Округляется только итоговая оценка по правилам арифметического округления.
 +
Отличное выполнение всех задач даёт оценку 8.
 +
Чтобы получить оценку 9 или 10 надо дополнительно выполнить небольшую проектную работу.
 +
 +
=== Архивная формула ===
 
Каждую неделю студенты будут выполнять задания в аудитории и дома. Эти задачи составят 0.7 от итоговой оценки.  
 
Каждую неделю студенты будут выполнять задания в аудитории и дома. Эти задачи составят 0.7 от итоговой оценки.  
 
Еще 0.1 даёт большое домашнее задание, выполняемое в середине курса.  
 
Еще 0.1 даёт большое домашнее задание, выполняемое в середине курса.  
Строка 72: Строка 111:
 
Все тонкости и особенности правил формирования оценки будут озвучены на первом занятии и опубликованы для участников курса.
 
Все тонкости и особенности правил формирования оценки будут озвучены на первом занятии и опубликованы для участников курса.
  
== Автор и преподаватель курса ==
+
== Автор и преподаватели курса ==
 +
 
 +
* '''Алексей Мицюк''' - автор и преподаватель курса - доцент [https://cs.hse.ru/dse/jetbrains/ базовой кафедры компании JetBrains] департамента программной инженерии ФКН ([https://www.hse.ru/staff/amitsyuk личная страница])
 +
* '''Сергей Булгаков''' - учебный ассистент курса в 2019/2020 и 2020/2021 учебных годах - студент ПМИ ФКН, разработчик в JetBrains ([https://github.com/SerVB GitHub-профиль])
 +
 
 +
=== Приглашенные лекторы ===
  
'''А. А. Мицюк''' - научный сотрудник ФКН ([https://www.hse.ru/staff/amitsyuk личная страница])
+
Приглашенные лекции и мастер-классы за все годы существования курса прочитали (в алфавитном порядке):
 +
* '''Никита Афанасьев''' - Android-разработчик в vk.com, выпускник факультатива и ПИ ФКН
 +
* '''Михаил Глухих''' - к.т.н., разработчик языка Котлин в JetBrains, [https://icst.spbstu.ru/person/gluhih_mihail_igorevich/ доцент] Высшей школы интеллектуальных систем и суперкомпьютерных технологий СПбГПУ, автор и преподаватель онлайн-курса [https://ru.coursera.org/learn/vvedenie-v-yazyk-kotlin Введение в язык Котлин]
 +
* '''Александр Лютиков''' - Android-разработчик в Яндексе, выпускник факультатива и студент ПИ ФКН
 +
* '''Александр Нозик''' - к.ф.-м.н., с.н.с., зам. заведующего [https://mipt.ru/science/labs/npm-mipt/ лаборатории методов ядерно-физических экспериментов МФТИ], руководитель группы в JetBrains Research
 +
* '''Екатерина Самородова''' - стажер в JetBrains Research, студентка ПМИ ФКН
 +
* '''Павел Финкельштейн''' - developer advocate в JetBrains и [https://asm0dey.ru/ не только]
  
 
== Благодарности ==
 
== Благодарности ==
  
Факультатив проходит при поддержке компании [https://jetbrains.ru/ JetBrains].
+
Факультатив проходит на ФКН при поддержке компании [https://jetbrains.ru/ JetBrains] с 2016 года.

Текущая версия на 00:58, 25 сентября 2021

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

Записаться на курс

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

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

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

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

Расписание

Осень 2021

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

Занятия будут проходить по пятницам с 14:40 до 17:40:
В 2021/22 учебном году всего планируется 8 недель занятий в ноябре и декабре.
Каждую неделю планируется проводить лекцию или две, некоторые из пар будут предназначены для ответов на вопросы студентов.
Первое занятие должно состояться 29 октября. Ссылка на подключение к лекции будет разослана студентам, зарегистрировавшимся на курс.

Осень 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 года.

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

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

2021/22 учебный год

Каждую неделю студенты получают отдельную оценку за решение задач: Н1, Н2, Н3, Н4, Н5, Н6, Н7. Кроме этого студенты могут выполнить небольшую проектную работу: Проект.
Итог будет посчитан по такой формуле: Итог = 0,05 * Н1 + 0,1 * Н2 + 0,1 * Н3 + 0,05 * Н4 + 0,2 * Н5 + 0,15 * Н6 + 0,15 * Н7 + 0,2 * Проект
Экзамен в 2021/22 учебном году не предусмотрен. Оценка за каждый элемент контроля от 0 до 10. Округляется только итоговая оценка по правилам арифметического округления. Отличное выполнение всех задач даёт оценку 8. Чтобы получить оценку 9 или 10 надо дополнительно выполнить небольшую проектную работу.

Архивная формула

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

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

Приглашенные лекторы

Приглашенные лекции и мастер-классы за все годы существования курса прочитали (в алфавитном порядке):

  • Никита Афанасьев - Android-разработчик в vk.com, выпускник факультатива и ПИ ФКН
  • Михаил Глухих - к.т.н., разработчик языка Котлин в JetBrains, доцент Высшей школы интеллектуальных систем и суперкомпьютерных технологий СПбГПУ, автор и преподаватель онлайн-курса Введение в язык Котлин
  • Александр Лютиков - Android-разработчик в Яндексе, выпускник факультатива и студент ПИ ФКН
  • Александр Нозик - к.ф.-м.н., с.н.с., зам. заведующего лаборатории методов ядерно-физических экспериментов МФТИ, руководитель группы в JetBrains Research
  • Екатерина Самородова - стажер в JetBrains Research, студентка ПМИ ФКН
  • Павел Финкельштейн - developer advocate в JetBrains и не только

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

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