• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2023/2024

Язык программирования Rust

Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Направление: 01.03.02. Прикладная математика и информатика
Когда читается: 2-й курс, 1, 2 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для всех кампусов НИУ ВШЭ
Преподаватели: Захаров Дмитрий Сергеевич, Казаков Евгений Александрович, Круглов Максим Константинович
Язык: русский
Кредиты: 5
Контактные часы: 56

Программа дисциплины

Аннотация

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-а
  • Уметь писать автотесты
  • Уметь писать процедурные и декларативные макросы
  • Уметь писать многопоточные приложения
  • Уметь писать приложения, работающие с сетью
Планируемые результаты обучения

Планируемые результаты обучения

  • Уметь писать программы на языке Rust различной сложности
Содержание учебной дисциплины

Содержание учебной дисциплины

  • О чем курс
  • Тема 2
  • Тема 3
  • Тема 4
  • Тема 5
  • Тема 6
  • Тема 7
  • Тема 8
  • Тема 9
  • Тема 10
  • Тема 11
  • Тема 12
  • Тема 13
  • Тема 14
  • Тема 15
Элементы контроля

Элементы контроля

  • неблокирующий Регулярные домашние задания
    Задания выдаются каждую неделю на закрепление лекционного и семинарского материалов. 1-4 задачи с автоматической проверкой решений. Каждая задача имеет условную стоимость (например, 100, 200, 300 баллов). За правильное решение выдается полная стоимость задачи, а за неверное выдается 0. Сдавать можно неограниченное количество раз. Дедлайн наступает не менее чем через 2 недели после даты выдачи заданий. После дедлайна стоимость задачи может быть уменьшена.
  • неблокирующий Большие домашние задания (проекты)
    2-3 больших задания с дедлайном в 3-4 недели. В заданиях подразумевается написание полноценной программы с требуемой функциональностью. За выполнение проекта до дедлайна выдается 100 проектных баллов, после дедлайна – 70.
Промежуточная аттестация

Промежуточная аттестация

  • 2023/2024 учебный год 2 модуль
    0.5 * Большие домашние задания (проекты) + 0.5 * Регулярные домашние задания
Список литературы

Список литературы

Рекомендуемая основная литература

  • Блэнди, Д. Программирование на языке Rust. Быстрое и безопасное системное программирование / Д. Блэнди, Д. Орендорф , перевод с английского А. А. Слинкина. — Москва : ДМК Пресс, 2018. — 550 с. — ISBN 978-5-97060-236-2. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/112925 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Рекомендуемая дополнительная литература

  • Программист-прагматик : путь от подмастерья к мастеру, Хант, Э., 2004