FI:PB173 Tematický vývoj aplikací - Informace o předmětu
PB173 Tematicky zaměřený vývoj aplikací
Fakulta informatikypodzim 2024
- Rozsah
- 0/2/0. 2 kr. (plus ukončení). Ukončení: k.
- Vyučující
- doc. RNDr. Petr Švenda, Ph.D. (přednášející)
Miroslav Jaroš (cvičící)
Ing. Pavel Tišnovský, Ph.D. (cvičící)
Stanislav Zeman (cvičící)
RNDr. Martin Ukrop, Ph.D. (přednášející), doc. RNDr. Petr Švenda, Ph.D. (zástupce)
Radomír Vrbovský (cvičící)
Bc. Vratislav Bendel (cvičící) - Garance
- doc. RNDr. Petr Švenda, Ph.D.
Katedra počítačových systémů a komunikací – Fakulta informatiky
Dodavatelské pracoviště: Katedra počítačových systémů a komunikací – Fakulta informatiky - Předpoklady
- PB111 Principy nízkoúr. prog. || PB071 Principy nízkoúr. prog. || SOUHLAS
Předpokládá se znalost programovacího jazyka a operačního systému dle požadavků konkrétní skupiny. Povinnou prerekvizitou je absolvování předmětu PB071 nebo výjimka udělená přednášejícím.
• PB173/Go (Coding in Go): student by měl ovládat základy programování, umět pracovat s jazykem SQL, a mít základní povědomí o sítích a virtualizaci (postačí na úrovni z předmětů IB111, PB154, PB156 a PB152)
• PB173/KDLP (Kernel Learning Development Pipeline): the class will be delivered in English, other prerequisites will be added soon - Omezení zápisu do předmětu
- Předmět je nabízen i studentům mimo mateřské obory.
Předmět si smí zapsat nejvýše 110 stud.
Momentální stav registrace a zápisu: zapsáno: 0/110, pouze zareg.: 150/110, pouze zareg. s předností (mateřské obory): 130/110 - Mateřské obory/plány
- předmět má 36 mateřských oborů, zobrazit
- Cíle předmětu
- Rozvinout schopnost programovat v daném programovacím jazyce na základě vybrané konkrétní aplikační domény.
1. PB173/Go (Coding in Go)
• Studenti pochopí základní elementy jazyka Go a jejicj běžné použití v praxi.
• Studenti získají znalosti potřebné pro vstupní pozice vývojáře v jazyce Go a dokážou psát idiomatický kód v Go.
• Studenti budou schopni aplikovat získané znalosti do skutečných projektů v jazyce Go.
2. PB173/KDLP (Kernel Development Learning Pipeline)
Will be added soon. - Výstupy z učení
- Obecným cílem předmětu je prohloubení znalostí programování v konkrétní oblasti dle vybrané seminární skupiny. Každá skupina si definuje své vlastní specifické cíle.
1. PB173/Go (Coding in Go)
• Umět psát idiomatický kód v jazyku Go.
• Chápat model souběžnosti použitý v jazyce Go.
• Profilovat a optimalizovat Go aplikace.
• Být schopen vyvíjet REST API služby v Go.
• Umět Kontejnerizovat a nasadit svou aplikace.
• Umět implementovat perzistenci pomocí SQL databáz.
• Být schopen instrumentovat aplikace různými typy telemetrie.
2. PB173/KDLP (Kernel Development Learning Pipeline)
Will be added soon. - Osnova
- Konkrétní obsah kurzu je závislý na tematických skupinách, které jsou uvedeny v sekci informace učitele.
- 1. PB173/Go (Coding in Go)
• Úvod: úvod do jazyka Go, IDEs a editory, instalace Go, spouštění Go
• Základy #1: balíky & viditelnost, proměnné, datové typy, řídící struktury, funkce, ukazatele, uživatelské datové typy
• Základy #2: rozhraní, chyby, pole, slice, asociativní mapy, rozsahy
• Souběh & paralelizmus: gorutiny, runtime, kanály, select, souvizející balíky
• Pokročilé koncepty #1: generiká, balíky, testování
• Pokročilé koncepty #2: benchmark, optimalizace, CGo, unsafe & reflect
• REST API: JSON, HTTP, REST API, balík HTTP, směrovače & web framework, OpenAPI, šablonování
• Kontejnery: kontejnerizace, Docker, Kubernetes
• Databázy: SQL, RDBMSs, migrace, SQL, sqlx, sqlc, GORM
• Infrastruktura: CI/CD, infrastruktura, Google Cloud Platform
• Observability: zdraví systému, logy, metriky, traces, OpenTelemetry - 2. PB173/KDLP (Kernel Development Learning Pipeline)
Will be added soon.
- Literatura
- Literatura dle tematické skupiny
- Výukové metody
- Výuka probíhá formou praktických dvouhodinových cvičení, doplněných samostatnými domácími programátorskými úlohami procvičujícími aktuálně probíranou látku. Cvičení obsahují nutný teoretický úvod do problematiky, který však typicky nepřesáhne 30 % času cvičení – zbylá část je věnována programování a používání souvisejících vývojových nástrojů u praktických úloh.
1. PB173/Go (Coding in Go)
Prezenční přednášky s úkoly přímo na hodine, hodnocené domácí úkoly, projekt.
2. PB173/KDLP (Kernel Development Learning Pipeline)
Will be added soon. - Metody hodnocení
- Student během celého semestru vypracovává domácí úkoly a/nebo se podílí na projektu. Konkrétní rozsah domácích úkolů a pravidla hodnocení si stanoví každá tematická skupina samostatně.
1. PB173/Go (Coding in Go)
Několik hodnocených domácích úkolů (50 bodů) a závěrečný projekt (50 bodů), obhajoba závěrečného projektu. Na úspěšné absolvování kurzu je potřeba získat alespoň 70 ze 100 bodů.
2. PB173/KDLP (Kernel Development Learning Pipeline)
Will be added soon. - Informace učitele
Konkrétní skupiny/témata pro daný semestr budou rozeslány hromadným mailem před začátkem zápisu seminárních skupin a budou doplněny i na tuto stránku.
Aktuálně víme pro podzim 2024 o následujících skupinách:- 1. PB173/Go Coding in Go (Red Hat – Pavel Tišnovský, Stanislav Zeman; česky)
Cílem kurzu je seznámit studenty s jazykem Go i jeho moderním použitím (API, virtualizace, knihovny, ...). Oproti minulému roku je kurz rozšířen na celý semestr.
Více informací na https://github.com/course-go/course - 2. PB173/KDLP Kernel Development Learning Pipeline (Red Hat – Radomír Vrbovský, Carlos Maiolino, Izabela Bakollari, Vratislav Bendel; in English)
More information will be added soon. - 3. PB173/Qt Multiplatformní programování s využitím C++ a frameworku Qt (Red Hat – Miroslav Jaroš; česky)
Příklady minulých témat: Programming in the presence of side-channel leakages, Zpracování obrazu, Aplikovaná kryptografie a bezpečné programování, Systémové programování Linux, Implementace interpretu v C++, Efektivní programování, Implementace jádra operačního systému, Analýza binárek a implementace disassembleru.- 1. PB173/Go Coding in Go (Red Hat – Pavel Tišnovský, Stanislav Zeman; česky)
- Další komentáře
- Předmět je vyučován každý semestr.
Výuka probíhá každý týden.
- Statistika zápisu (nejnovější)
- Permalink: https://is.muni.cz/predmet/fi/podzim2024/PB173