Магистратура
2020/2021
Программирование на Rust
Статус:
Курс по выбору (Программирование и анализ данных)
Направление:
01.04.02. Прикладная математика и информатика
Кто читает:
Департамент информатики
Когда читается:
2-й курс, 2 модуль
Формат изучения:
с онлайн-курсом
Преподаватели:
Кузнецов Антон Михайлович
Прогр. обучения:
Программирование и анализ данных
Язык:
русский
Кредиты:
4
Контактные часы:
4
Программа дисциплины
Аннотация
Этот курс научит вас основам Rust, современного языка программирования, обладающего как мощью нативного кода, так и безопасностью некоторых управляемых языков. В этом курсе вы узнаете следующее: Как скачать и установить Rust; как компилировать программы и (опционально) работать с IDE. Узнайте о фундаментальных типах данных и о том, как использовать их для объявления переменных. Поймете массивы, векторы и строки, понятие срезов. Научитесь создавать функции, методы, замыкания, функции высшего порядка. Поймете, как создавать различные структуры данных, такие как структуры и перечисления; также черты. Узнаете, как безопасно обмениваться данными вокруг вашего (возможно, многопоточного) приложения с Rc, Arc и Mutex. Используете пакетный менеджер Rust с помощью Cargo. Узнаете о других полезных темах: документация, условная компиляция, тестирование.
Цель освоения дисциплины
- обучение основам Rust, современного языка программирования, обладающего как мощью нативного кода, так и безопасностью некоторых управляемых языков
Планируемые результаты обучения
- Знает как установить и настроить Rust. Владеет понятием менеджер пакетов Cargo; Rust в IntelliJ IDEA
- Знает основные типы данных. Владеет понятиями: числа на компьютере; операторы; Scope и Shadowing; объявление и использование констант; стек и куча
- Знает конструкции if, while, for, match.
- Знает структуры, перечисления, союзы, оption <T>, массивы, векторы, срезы, HashMap. Умеет проводить сопоставление с образцом.
- Владеет понятиями: функции и аргументы функций; методы; замыкания; функции высшего порядка.
- Владеет понятиями: Traits; Into; Drop; перегрузка оператора; статическая рассылкa; динамическая отправка; Векторы разных объектов
- Владеет понятиями: право собственности; заимствование; продолжительность жизни; время жизни в реализации структуры. Знает переменные с атомной привязкой. Использует Mutex для поточно-ориентированной изменчивости
- Владеет понятием циркулярных ссылок
Содержание учебной дисциплины
- Введение в курс
- Типы и переменные
- Контроль потока
- Структуры данных
- Функции
- Traits.
- Время жизни и память
- Расширенные темы
Элементы контроля
- Решение задач
- ЭкзаменЭкзамен проводится на платформе Zoom. Экзамен проводится в устной форме (опрос по материалам курса). По просьбе преподавателя студент должен быть готов выполнить некоторые задания в письменном виде, после чего сфотографировать и выслать на почту преподавателю. К экзамену необходимо подключиться согласно расписанию, высланному преподавателем на корпоративные почты студентов накануне экзамена. Компьютер студента должен удовлетворять требованиям: наличие рабочей камеры и микрофона, поддержка платформы Zoom. Для участия в экзамене студент обязан: выбрать себе имя в Zoom совпадающее с его именем и фамилией, явиться на экзамен согласно точному расписанию, при ответе включить камеру и микрофон. Во время экзамена студентам запрещается выключать камеру. Ипользование конспектов или других справочных материалов допускается только с разрешения преподавателя. Кратковременным нарушением связи во время экзамена считается нарушение связи менее 5 минут. Долговременным нарушением связи во время экзамена считается нарушение 5 минут и более. При долговременном нарушении связи возможность продолжения студентом участие в экзамене определяется преподавателем. Процедура пересдачи подразумевает использование усложненных заданий.
Список литературы
Рекомендуемая основная литература
- Albahari, J., & Albahari, B. (2018). C# 7.0 in a Nutshell : The Definitive Reference. Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1614736
Рекомендуемая дополнительная литература
- Adam Nathan. (2013). WPF 4.5 Unleashed. [N.p.]: Sams Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1600458