460-4157/01 – Programování v Rustu (PvR)

Garantující katedraKatedra informatikyKredity4
Garant předmětuMgr. Ing. Michal Krumnikl, Ph.D.Garant verze předmětuMgr. Ing. Michal Krumnikl, Ph.D.
Úroveň studiapregraduální nebo graduálníPovinnostvolitelný odborný
Ročník1Semestrzimní
Jazyk výukyčeština
Rok zavedení2024/2025Rok zrušení
Určeno pro fakultyFEIUrčeno pro typy studianavazující magisterské
Výuku zajišťuje
Os. čís.JménoCvičícíPřednášející
BER0134 Ing. Jakub Beránek
KRU13 Mgr. Ing. Michal Krumnikl, Ph.D.
Rozsah výuky pro formy studia
Forma studiaZp.zak.Rozsah
prezenční Klasifikovaný zápočet 2+2

Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi

Cílem předmětu je seznámit studenty s programovacím jazykem Rust a jeho specifickými konstrukcemi, které umožňují tvorbu efektivních a paměťově bezpečných programů. Po dokončení předmětu studenti budou schopni samostatně vytvářet komplexní aplikace v Rustu a umět využívat nejpoužívanější knihovny z Rust ekosystému.

Vyučovací metody

Přednášky
Cvičení (v učebně)

Anotace

Předmět uvede studenty do problematiky návrhu robustních a paměťově bezpečných programů s využitím programovacího jazyka Rust, se zaměřením na návrh robustního rozhraní, ošetřování chyb, a generické, asynchronní a vícevláknové programování. Důraz bude kladen také na vysvětlení principů síťových aplikací a specifika jejich implementace v jazyku Rust.

Povinná literatura:

[1] KLABNIK, Steve and NICHOLS, Carol. The Rust Programming Language. 2018. No Starch Press.

Doporučená literatura:

[1] PALMIERI, Luca. Zero To Production In Rust. 2022. Independently published. [2] GJENGSET, Jon. Rust for Rustaceans. 2021. No Starch Press.

Forma způsobu ověření studijních výsledků a další požadavky na studenta

Průběžná kontrola studijních aktivit a přiřazených úkolů v rámci pravidelných seminářů.

E-learning

Další požadavky na studenta

Očekává se, že studenti budou na lekcích z programování aktivně řešit zadané úlohy. Některé úlohy mohou vyžadovat pečlivou domácí přípravu.

Prerekvizity

Předmět nemá žádné prerekvizity.

Korekvizity

Předmět nemá žádné korekvizity.

Osnova předmětu

Přednášky - Správa Rust projektů (Cargo), proměnné, typový systém, výrazy - Funkce, datové struktury (struktury a enumy), pattern matching, moduly - Koncepty ownership, borrowing a lifetimes - Základy standardní knihovny (řetězce, dynamické pole, hashovací tabulky), ošetření chyb, interior mutability - Polymorfismus, koncept traits, generické programování, dynamic dispatch - Funkcionální programování (iterátory, anonymní funkce) - Využití knihoven (serializace, ošetření chyb, logování, parametry příkazové řádky atd.) - Práce se sockety a síťové programování - Vlákna, reference counting, synchronizační primitiva, paralelismus - Neblokující operace, koncepty Pin a Future, asynchronní programování - Tvorba maker, koncept unsafe - Využití kódu napsaného v jiných programovacích jazycích (foreign function interface) Cvičení - Práce s nástrojem Cargo, nastavení IDE, proměnné, datové typy, výrazy - Struktury a enumy, pattern matching, rozdělení programu do modulů - Tvorba API pomocí konceptu ownership, seznámení se s konceptem borrow checkeru - Využití standardní knihovny, ošetření chyb a krajních situací - Tvorba polymorfního API pomocí traitů a generického programování - Využití funkcionálního programování pomocí iterátorů a anonymních funkcí - Použití externích knihoven z crates.io - Tvorba síťové aplikace pomocí blokujících socketů - Využití vláken a synchronizačních primitiv - Tvorba síťové aplikace pomocí neblokujících socketů, práce s Futures a async/await - Deklarativní a procedurání makra, využití bloku unsafe, seznámení s nástrojem miri - Využití kódu v jazyku C nebo C++, implementace Python modulů pomocí Rustu

Podmínky absolvování předmětu

Prezenční forma (platnost od: 2024/2025 zimní semestr)
Název úlohyTyp úlohyMax. počet bodů
(akt. za podúlohy)
Min. počet bodůMax. počet pokusů
Klasifikovaný zápočet Klasifikovaný zápočet 100  51 3
Rozsah povinné účasti: Účast je povinná na alespoň 70 % cvičení.

Zobrazit historii

Podmínky absolvování předmětu a účast na cvičeních v rámci ISP: Splnění všech povinných úkolů v individuálně dohodnutých termínech.

Zobrazit historii

Výskyt ve studijních plánech

Akademický rokProgramObor/spec.Spec.ZaměřeníFormaJazyk výuky Konz. stř.RočníkZLTyp povinnosti
2024/2025 (N0613A140034) Informatika P čeština Ostrava 1 volitelný odborný stu. plán

Výskyt ve speciálních blocích

Název blokuAkademický rokForma studiaJazyk výuky RočníkZLTyp blokuVlastník bloku

Hodnocení Výuky

Předmět neobsahuje žádné hodnocení.