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 |
| Wymagania (lista przedmiotów): | Wstęp do programowania 1000-211bWPI |
| 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" (zakończony)
| Okres: | 2025-10-01 - 2026-01-25 |
Przejdź do planu
PN WT ŚR LAB
CZ LAB
LAB
PT |
| Typ zajęć: |
Laboratorium, 30 godzin
|
|
| Koordynatorzy: | Wojciech Przytuła | |
| Prowadzący grup: | Tomasz Nowak, 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, Wydział Fizyki.
