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

Материал из Public ATP Wiki
Перейти к: навигация, поиск
(Литература)
Строка 70: Строка 70:
  
 
= Литература =
 
= Литература =
=== Основная литература ===
+
===«Rustbooks»===
 +
* [https://doc.rust-lang.org/book/ The Rust Programming Language] - Rustbook, the first book to be read by newbie.
 +
* [https://doc.rust-lang.org/stable/reference/ The Rust Reference] - The Rust language reference. Something like explained docs.
 +
* Learn Rust With Entirely Too Many Linked Lists - Just writing multiple linked lists. It may help to understand the basics of ownership.
 +
* The Cargo Book - The Cargo package manager reference.
 +
* Rust Cookbook - Explains how to solve simple, widespread programming tasks.
 +
* Rust API Guidelines - Official set of recommendations on how to design and present APIs.
 +
* The Little Book of Rust Macros - Starter book about Rust Macros.
 +
* Rust Design Patterns - Good practices of Rust programming.
 +
* The Rustonomicon - The book about Unsafe Rust. In addition, it covers some advanced safety topics such as an ownership.
 +
* Rust's Unsafe Code Guidelines Reference (UCG WG)
 +
* The Rust Performance Book - The book about optimizing Rust code.
 +
* Asynchronous Programming in Rust - Introduction to asynchronous programming.
 +
* Futures Explained in 200 Lines of Rust - Good book on futures and executors.
 +
* Guide to Rustc Development - The guide to compiler development for enthusiasts.
 +
* What is rustc? - Describes some advanced usages of the rustc compiler.
 +
* The Embedded Rust Book - Programming for embedded systems in Rust.
  
=== Полезные ссылки ===
+
===Articles===
 +
* Improved portability and performance - How libimagequant library became more performant and portable (!) by rewriting C code to Rust.
 +
* Rust Collections Case Study: BTreeMap - Great post about the implementation of BTree in Rust from its author.
 +
* The Error Model - Article with a perfect, step-by-step explanation of error handling models, including Rust's one, and is good and how it solves mistakes of other generations of error handling.
 +
* Finding Closure in Rust - Detailed post with "straightforward" explanation of closures design.
 +
* How to organize your Rust tests - Answers the question "How to organize your Rust tests" :)
 +
 
 +
===Writing idiomatic Rust code===
 +
* Writing Idiomatic Libraries in Rust - Good talk on writing idiomatic code.
 +
 
 +
===Conference talks about Rust===
 +
* The History of Rust - Just a bit of History of Rust.
 +
* How Rust Views Tradeoffs - Good talk about the aims of Rust language.
 +
* RustConf 2021 - Move Constructors: Is it Possible? by Miguel Young de la Sota
 +
* Rust's Journey to Async/Await - The talk about the high-level design of async in Rust.
 +
* The Talk You've Been Await-ing for - Introduction to async in Rust.
 +
* Rust Programming Techniques - Good practices of writing idiomatic code.
 +
 
 +
===YouTube channels===
 +
* Previous year course - It is highly recommended for viewing if you missed something or did not understand
 +
* Jon Gjengset YouTube channel - Excellent channel about Rust, especially "Crust of Rust" series, where several topics covered from intermediate to advanced level.
 +
* Aleksey Kladov YouTube channel - If you're interested in how rust-analyzer works - it's the best channel and the best speaker.
 +
 
 +
===Research papers===
 +
* GhostCell: Separating Permissions from Data in Rust - Tricky usage of Rust type system.
 +
* Stacked Borrows: An Aliasing Model for Rust - On checking unsafe code.
 +
 
 +
===Books===
 +
* "Rust for Rustaceans - Idiomatic Programming for Experienced Developers" by Jon Gjengset - Perfect book that covers a lot of details about the language in-depth.
 +
* Zero To Production In Rust
 +
 
 +
===Blogs===
 +
* Alastair Reid blog - You can find great posts about automatic verification tools in this blog.
 +
* Aleksey Kladov blog - Some random things about Rust.
 +
* Waffle blog - Some random things about Rust.
 +
* Lloyd Chan blog - The author usually writes on advanced usages of the type system.

Версия 16:46, 1 февраля 2024

Общие сведения

Материалы занятий

Домашние задания

Планируется 11 домашних заданий.

Проверка: code review. Исправления по code review можно делать в течение 1 недели после 1-го комментария.

Название Старт Дедлайн
Дз 1
Дз 2
Дз 3
Дз 4
Дз 5
Дз 6
Дз 7
Дз 8
Дз 9
Дз 10
Дз 11

Штраф за опоздание по дедлайну: -25%

  • Домашние задания
  • Сдача домашних заданий

Преподаватели

  • Лектор
    • Денис Баринов
  • Учебный ассистент
    • Александр Русин

Критерии получения оценки

Домашние задания

  • Домашние задания
  • Сдача домашних заданий


Итоговая аттестация

Литература

«Rustbooks»

  • The Rust Programming Language - Rustbook, the first book to be read by newbie.
  • The Rust Reference - The Rust language reference. Something like explained docs.
  • Learn Rust With Entirely Too Many Linked Lists - Just writing multiple linked lists. It may help to understand the basics of ownership.
  • The Cargo Book - The Cargo package manager reference.
  • Rust Cookbook - Explains how to solve simple, widespread programming tasks.
  • Rust API Guidelines - Official set of recommendations on how to design and present APIs.
  • The Little Book of Rust Macros - Starter book about Rust Macros.
  • Rust Design Patterns - Good practices of Rust programming.
  • The Rustonomicon - The book about Unsafe Rust. In addition, it covers some advanced safety topics such as an ownership.
  • Rust's Unsafe Code Guidelines Reference (UCG WG)
  • The Rust Performance Book - The book about optimizing Rust code.
  • Asynchronous Programming in Rust - Introduction to asynchronous programming.
  • Futures Explained in 200 Lines of Rust - Good book on futures and executors.
  • Guide to Rustc Development - The guide to compiler development for enthusiasts.
  • What is rustc? - Describes some advanced usages of the rustc compiler.
  • The Embedded Rust Book - Programming for embedded systems in Rust.

Articles

  • Improved portability and performance - How libimagequant library became more performant and portable (!) by rewriting C code to Rust.
  • Rust Collections Case Study: BTreeMap - Great post about the implementation of BTree in Rust from its author.
  • The Error Model - Article with a perfect, step-by-step explanation of error handling models, including Rust's one, and is good and how it solves mistakes of other generations of error handling.
  • Finding Closure in Rust - Detailed post with "straightforward" explanation of closures design.
  • How to organize your Rust tests - Answers the question "How to organize your Rust tests" :)

Writing idiomatic Rust code

  • Writing Idiomatic Libraries in Rust - Good talk on writing idiomatic code.

Conference talks about Rust

  • The History of Rust - Just a bit of History of Rust.
  • How Rust Views Tradeoffs - Good talk about the aims of Rust language.
  • RustConf 2021 - Move Constructors: Is it Possible? by Miguel Young de la Sota
  • Rust's Journey to Async/Await - The talk about the high-level design of async in Rust.
  • The Talk You've Been Await-ing for - Introduction to async in Rust.
  • Rust Programming Techniques - Good practices of writing idiomatic code.

YouTube channels

  • Previous year course - It is highly recommended for viewing if you missed something or did not understand
  • Jon Gjengset YouTube channel - Excellent channel about Rust, especially "Crust of Rust" series, where several topics covered from intermediate to advanced level.
  • Aleksey Kladov YouTube channel - If you're interested in how rust-analyzer works - it's the best channel and the best speaker.

Research papers

  • GhostCell: Separating Permissions from Data in Rust - Tricky usage of Rust type system.
  • Stacked Borrows: An Aliasing Model for Rust - On checking unsafe code.

Books

  • "Rust for Rustaceans - Idiomatic Programming for Experienced Developers" by Jon Gjengset - Perfect book that covers a lot of details about the language in-depth.
  • Zero To Production In Rust

Blogs

  • Alastair Reid blog - You can find great posts about automatic verification tools in this blog.
  • Aleksey Kladov blog - Some random things about Rust.
  • Waffle blog - Some random things about Rust.
  • Lloyd Chan blog - The author usually writes on advanced usages of the type system.