Бакалавриат
2024/2025
Язык программирования Rust
Статус:
Курс по выбору (Прикладная математика и информатика)
Направление:
01.03.02. Прикладная математика и информатика
Где читается:
Факультет компьютерных наук
Когда читается:
2-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для всех кампусов НИУ ВШЭ
Преподаватели:
Кротов Александр Денисович
Язык:
русский
Кредиты:
5
Программа дисциплины
Аннотация
Rust - это молодой системный язык программирования, спроектированный с учётом богатой истории C и С++. За языком уже сейчас стоят большие игроки ИТ-индустрии: в Rust Foundation входят Google, Amazon, Microsoft и Huawei - эти компании спонсируют развитие языка и принимают активное участие в его развитии.Rust сочетает в себе выразительность Python, безопасность Java и быстродействие C. По сравнению с С++, Rust является более безопасным языком, позволяющим доказуемо не допускать undefined behavior, при этом не уступая С++ в производительности. По сравнению с Go, Rust позволяет статически предотвращать гонки и нежелательные захваты переменных, а также обладает повышенной производительностью на счёт отсутствия runtime. Такое сочетание скорости и безопасности достигается уникальной системой владения объектами и отслеживания их времени жизни, которая позволяет в момент компиляции выявлять ошибки, вызванные небезопасной работой с памятью.
Цель освоения дисциплины
- Знать все основные сущности и конструкции языка (structs, enums, traits, pattern matching, error handling и др.)
- Понимать модель владения объектами и ссылками
- Понимать принципы работы Borrow Checker-а
- Уметь писать автотесты
- Уметь писать процедурные и декларативные макросы
- Уметь писать многопоточные приложения
- Уметь писать приложения, работающие с сетью
Содержание учебной дисциплины
- О чем курс
- Тема 2
- Тема 3
- Тема 4
- Тема 5
- Тема 6
- Тема 7
- Тема 8
- Тема 9
- Тема 10
- Тема 11
- Тема 12
- Тема 13
- Тема 14
- Тема 15
Элементы контроля
- Большие домашние задания (проекты)2-3 больших задания с дедлайном в 3-4 недели. В заданиях подразумевается написание полноценной программы с требуемой функциональностью. За выполнение проекта до дедлайна выдается 100 проектных баллов, после дедлайна – 70.
- Регулярные домашние заданияЗадания выдаются каждую неделю на закрепление лекционного и семинарского материалов. 1-4 задачи с автоматической проверкой решений. Каждая задача имеет условную стоимость (например, 100, 200, 300 баллов). За правильное решение выдается полная стоимость задачи, а за неверное выдается 0. Сдавать можно неограниченное количество раз. Дедлайн наступает не менее чем через 2 недели после даты выдачи заданий. После дедлайна стоимость задачи может быть уменьшена.
Промежуточная аттестация
- 2024/2025 2nd module0.5 * Большие домашние задания (проекты) + 0.5 * Регулярные домашние задания
Список литературы
Рекомендуемая основная литература
- Блэнди, Д. Программирование на языке Rust. Быстрое и безопасное системное программирование / Д. Блэнди, Д. Орендорф , перевод с английского А. А. Слинкина. — Москва : ДМК Пресс, 2018. — 550 с. — ISBN 978-5-97060-236-2. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/112925 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Рекомендуемая дополнительная литература
- Программист-прагматик : путь от подмастерья к мастеру, Хант, Э., 2004