(in Polish) Programowanie w języku Rust
General data
Course ID: | 1000-2M24RUS |
Erasmus code / ISCED: | (unknown) / (unknown) |
Course title: | (unknown) |
Name in Polish: | Programowanie w języku Rust |
Organizational unit: | Faculty of Mathematics, Informatics, and Mechanics |
Course groups: |
Elective courses (tools for programming) for Computer Science |
ECTS credit allocation (and other scores): |
4.00
|
Language: | (unknown) |
Prerequisites: | Computer architecture and operating systems 1000-212bAKSO |
Short description: |
(in Polish) Rust jest nowoczesnym kompilowanym językiem programowania o szerokim spektrum zastosowań. Cechuje go wydajność zbliżona do C czy C++, bezpieczeństwo w zarządzaniu pamięcią mimo braku garbage collectora, bogaty i ścisły system typów, preferowanie zwięzłych idiomów funkcyjnych i wygodne programowanie współbieżne. Rust jest uwielbiany przez programistów, o czym świadczy zajmowana od wielu lat pozycja lidera w rankingach StackOverflow. |
Full description: |
(in Polish) Zagadnienia * Wprowadzenie. Ekosystem języka Rust. Rustup, Cargo, Clippy, Rustfmt. “Hello world”. * Własność. Borrow checker - najważniejsza innowacja Rusta. String vs &str, Vec<T> vs &[T], Lifetime. * Typy danych. Struktury i enumeracje. Pattern matching. * Crate i moduły. Obsługa zależności. Cargo.toml. * Eksplicytna obsługa błędów. Typ Result zamiast wyjątków, typ Option zamiast nulla. * Typy generyczne. Trait. Static (impl) vs dynamic (dyn) dispatch. * Wbudowane narzędzia do testowania kodu. * Programowanie funkcyjne. Iteratory i domknięcia (closures). * Własność cz. 2. Smart pointery. Analogie i różnice z C++. * Wprowadzenie do współbieżności w Ruście. “Fearless Concurrency”. Wątki. Biblioteka Rayon. Iteratory równoległe. * Programowanie asynchroniczne w Ruście. Biblioteka Tokio. * Higieniczne makra. Makra deklaratywne, makra proceduralne. * Kod unsafe. Gwarancje zapewniane przez kod safe. Odpowiedzialność twórcy API w Rust. * Kompatybilność binarna z językiem C (FFI - Foreign Function Interface) - extern "C", repr(C). * Przegląd popularnych bibliotek: log - logowanie (komunikaty diagnostyczne), clap - parsowanie argumentów linii komend, iced/egui - budowanie GUI, serde - serializacja i deserializacja danych, {anyhow, thiserror} - obsługa błędów odpowiednio w aplikacjach i bibliotekach, axum - ergonomiczny framework webowy. |
Bibliography: |
(in Polish) The Rust Book - https://doc.rust-lang.org/book/ |
Classes in period "Winter semester 2024/25" (future)
Time span: | 2024-10-01 - 2025-01-26 |
Navigate to timetable
MO TU W TH FR |
Type of class: |
Lab, 30 hours
|
|
Coordinators: | Wojciech Przytuła | |
Group instructors: | Wojciech Przytuła | |
Students list: | (inaccessible to you) | |
Examination: | Grading |
Copyright by University of Warsaw.