• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Магистратура 2019/2020

Программирование на Rust

Статус: Курс по выбору (Программирование и анализ данных)
Направление: 01.04.02. Прикладная математика и информатика
Когда читается: 1-й курс, 4 модуль
Формат изучения: с онлайн-курсом
Прогр. обучения: Программирование и анализ данных
Язык: русский
Кредиты: 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 минут и более. При долговременном нарушении связи возможность продолжения студентом участие в экзамене определяется преподавателем. Процедура пересдачи подразумевает использование усложненных заданий.
Промежуточная аттестация

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

  • Промежуточная аттестация (4 модуль)
    0.5 * Решение задач + 0.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