Uniwersytet Warszawski - Centralny System Uwierzytelniania
Strona główna

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 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
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
Programowanie obiektowe 1000-212cPO
Programowanie współbieżne 1000-213bPW

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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin więcej informacji
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
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin więcej informacji
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ę
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.
ul. Banacha 2
02-097 Warszawa
tel: +48 22 55 44 214 https://www.mimuw.edu.pl/
kontakt deklaracja dostępności mapa serwisu USOSweb 7.1.2.0-175b607b9 (2025-05-20)