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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Где задать вопросы?)
(Автор и преподаватели курса)
(не показано 19 промежуточных версии 2 участников)
Строка 13: Строка 13:
 
== Организация курса ==
 
== Организация курса ==
 
Курс продлится 16 недель. Еженедельно нужно будет посетить одно занятие и выполнить домашнее задание. Каждое занятие продлится 2 пары и будет состоять из теоретической и практической частей. Практика будет занимать большую часть времени. На занятии будут разбираться конкретные «фишки» языка. От студентов ожидается самостоятельность при решении задач, активное взаимодействие друг с другом.  
 
Курс продлится 16 недель. Еженедельно нужно будет посетить одно занятие и выполнить домашнее задание. Каждое занятие продлится 2 пары и будет состоять из теоретической и практической частей. Практика будет занимать большую часть времени. На занятии будут разбираться конкретные «фишки» языка. От студентов ожидается самостоятельность при решении задач, активное взаимодействие друг с другом.  
Предполагается, что студенты будут приносить с собой на занятие свои портативные компьютеры с настроенной средой IntelliJ IDEA с установленным расширением для разработки на языке Kotlin версии 1.3 (в современных версиях IDEA язык Kotlin 1.3 поддерживается "из коробки", так как расширение уже предустановлено). Тем не менее, наличие своего ноутбука не является обязательным: занятия будут проходить в компьютерном классе.
+
Предполагается, что студенты будут приносить с собой на занятие свои портативные компьютеры с настроенной средой IntelliJ IDEA с установленным расширением для разработки на языке Kotlin версии 1.4 (в современных версиях IDEA язык Kotlin 1.4 поддерживается "из коробки", так как расширение уже предустановлено). Тем не менее, наличие своего ноутбука не является обязательным: занятия будут проходить в компьютерном классе (в 2020 году - онлайн).
  
 
== Регистрация на курс ==
 
== Регистрация на курс ==
  
Участники курса должны заполнить [https://forms.gle/JQa8dxzMstoPPc6K6 анкету].
+
Участники курса должны '''[https://forms.gle/JQa8dxzMstoPPc6K6 заполнить анкету]'''.
 +
 
 +
Не переживайте, если мест для официальной записи на факультатив нет.
 +
Если вам интересен курс, имеет смысл всё равно появиться на первом занятии.
 +
Мы что-нибудь придумаем.
  
 
== Где задать вопросы? ==
 
== Где задать вопросы? ==
У курса есть [https://discord.gg/9tp6H6x канал в discord], где можно задать вопросы.
+
У курса есть [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 ===
Строка 29: Строка 44:
 
Занятия будут проходить '''по пятницам с 15:10 до 18:10'''.<br />
 
Занятия будут проходить '''по пятницам с 15:10 до 18:10'''.<br />
 
Каждую неделю планируется проводить лекцию и практическое занятие.<br />
 
Каждую неделю планируется проводить лекцию и практическое занятие.<br />
Первое занятие должно состояться 1 или 8 ноября.
+
Первое занятие должно состояться 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'''
 
Не переживайте, если мест для официальной записи на факультатив нет.
 
Если вам интересен курс, имеет смысл всё равно появиться на первом занятии.
 
Мы что-нибудь придумаем.
 
  
 
== Предварительный список тем курса ==
 
== Предварительный список тем курса ==
Строка 53: Строка 64:
 
Предварительно в рамках курса запланированы доклады от приглашенных лекторов. Их темы будут определены позднее.
 
Предварительно в рамках курса запланированы доклады от приглашенных лекторов. Их темы будут определены позднее.
  
== Полезные материалы ==
+
== Материалы курса ==
 +
 
 +
Материалы курса будут доступны слушателям.
 +
 
 +
[https://www.youtube.com/watch?v=-UjMx5pyPbo Видео] приглашенной лекции Михаила Глухих 6 марта 2020 года.
 +
 
 +
== Другие полезные материалы ==
  
 
* Официальный [https://kotlinlang.org/docs/reference/ сайт] с материалами по языку
 
* Официальный [https://kotlinlang.org/docs/reference/ сайт] с материалами по языку
Строка 62: Строка 79:
 
== Как будут выставляться оценки ==
 
== Как будут выставляться оценки ==
  
Каждую неделю студенты будут выполнять задания в аудитории. Будут предложены дополнительные задачки для решения дома. Эти задачи составят 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.