Programowanie w języku Rust
Informacje ogólne
Kod przedmiotu: | 1000-2M24RUS |
Kod Erasmus / ISCED: | (brak danych) / (brak danych) |
Nazwa przedmiotu: | Programowanie w języku Rust |
Jednostka: | Wydział Matematyki, Informatyki i Mechaniki |
Grupy: |
Przedmioty obieralne narzędziowe dla informatyki |
Punkty ECTS i inne: |
4.00
|
Język prowadzenia: | (brak danych) |
Kierunek podstawowy MISMaP: | informatyka |
Założenia (lista przedmiotów): | Architektura komputerów i systemy operacyjne 1000-212bAKSO |
Skrócony opis: |
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 programowania funkcyjnego i wygodne programowanie współbieżne. Rust jest uwielbiany przez programistów, o czym świadczy zajmowana od wielu lat pozycja lidera w rankingach StackOverflow. |
Pełny opis: |
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. Dopasowanie do wzorca (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. |
Literatura: |
The Rust Book - https://doc.rust-lang.org/book/ |
Metody i kryteria oceniania: |
Ocena w całości na podstawie projektów programistycznych. Dwie części oceny: 1) małe zadania po każdych zajęciach, wprowadzające praktycznie w poruszane zagadnienia, 2) realizacja (w dwóch iteracjach) większego projektu o dowolnej tematyce, do uzgodnienia z prowadzącym. |
Zajęcia w cyklu "Semestr zimowy 2024/25" (zakończony)
Okres: | 2024-10-01 - 2025-01-26 |
Przejdź do planu
PN WT ŚR CZ LAB
LAB
PT |
Typ zajęć: |
Laboratorium, 30 godzin
|
|
Koordynatorzy: | Wojciech Przytuła | |
Prowadzący grup: | Wojciech Przytuła | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: | Zaliczenie na ocenę |
Zajęcia w cyklu "Semestr zimowy 2025/26" (jeszcze nie rozpoczęty)
Okres: | 2025-10-01 - 2026-01-25 |
Przejdź do planu
PN WT ŚR CZ PT |
Typ zajęć: |
Laboratorium, 30 godzin
|
|
Koordynatorzy: | Andrzej Głuszak | |
Prowadzący grup: | Andrzej Głuszak, Wojciech Przytuła | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Zaliczenie na ocenę
Laboratorium - Zaliczenie na ocenę |
Właścicielem praw autorskich jest Uniwersytet Warszawski.