FI:IV022 Elegantní programování - Informace o předmětu
IV022 Principy elegantního programování
Fakulta informatikypodzim 2022
- Rozsah
- 2/0. 2 kr. (plus ukončení). Ukončení: zk.
- Vyučující
- prof. RNDr. Luboš Brim, CSc. (přednášející)
- Garance
- prof. RNDr. Luboš Brim, CSc.
Katedra teorie programování – Fakulta informatiky
Kontaktní osoba: prof. RNDr. Luboš Brim, CSc.
Dodavatelské pracoviště: Katedra teorie programování – Fakulta informatiky - Rozvrh
- Út 10:00–11:50 B410
- Omezení zápisu do předmětu
- Předmět je nabízen i studentům mimo mateřské obory.
- Mateřské obory/plány
- Analýza a zpracování obrazu (program FI, N-VIZ)
- Aplikovaná informatika (program FI, B-AP)
- Aplikovaná informatika (program FI, N-AP)
- Bezpečnost informačních technologií (angl.) (program FI, N-IN)
- Bezpečnost informačních technologií (program FI, N-IN)
- Bioinformatika a systémová biologie (program FI, N-UIZD)
- Bioinformatika (program FI, B-AP)
- Bioinformatika (program FI, N-AP)
- Computer Games Development (program FI, N-VIZ_A)
- Computer Graphics and Visualisation (program FI, N-VIZ_A)
- Computer Networks and Communications (program FI, N-PSKB_A)
- Cybersecurity Management (program FI, N-RSSS_A)
- Formální analýza počítačových systémů (program FI, N-TEI)
- Grafický design (program FI, N-VIZ)
- Graphic Design (program FI, N-VIZ_A)
- Hardware Systems (program FI, N-PSKB_A)
- Hardwarové systémy (program FI, N-PSKB)
- Image Processing and Analysis (program FI, N-VIZ_A)
- Informační bezpečnost (program FI, N-PSKB)
- Informační systémy (program FI, N-IN)
- Informatika a druhý obor (program FI, B-EB)
- Informatika a druhý obor (program FI, B-FY)
- Informatika a druhý obor (program FI, B-GE)
- Informatika a druhý obor (program FI, B-GK)
- Informatika a druhý obor (program FI, B-CH)
- Informatika a druhý obor (program FI, B-IO)
- Informatika a druhý obor (program FI, B-MA)
- Informatika a druhý obor (program FI, B-TV)
- Informatika (angl.) (program FI, D-IN4)
- Informatika (program FI, B-INF) (2)
- Informatika (program FI, D-IN4)
- Informatika ve vzdělávání (program FI, B-IVV) (2)
- Information Security (program FI, N-PSKB_A)
- Kvantové a jiné neklasické výpočetní modely (program FI, N-TEI)
- Matematická informatika (program FI, B-IN)
- Paralelní a distribuované systémy (program FI, B-IN)
- Paralelní a distribuované systémy (program FI, N-IN)
- Počítačová grafika a vizualizace (program FI, N-VIZ)
- Počítačová grafika a zpracování obrazu (program FI, B-IN)
- Počítačová grafika (program FI, N-IN)
- Počítačové sítě a komunikace (program FI, B-IN)
- Počítačové sítě a komunikace (program FI, N-IN)
- Počítačové sítě a komunikace (program FI, N-PSKB)
- Počítačové systémy a technologie (angl.) (program FI, D-IN4)
- Počítačové systémy a technologie (program FI, D-IN4)
- Počítačové systémy a zpracování dat (program FI, B-IN)
- Počítačové systémy (program FI, N-IN)
- Principy programovacích jazyků (program FI, N-TEI)
- Programování a vývoj aplikací (program FI, B-PVA)
- Programovatelné technické struktury (angl.) (program FI, N-IN)
- Programovatelné technické struktury (program FI, B-IN)
- Programovatelné technické struktury (program FI, N-IN)
- Řízení kyberbezpečnosti (program FI, N-RSSS)
- Řízení vývoje služeb (program FI, N-RSSS)
- Řízení vývoje softwarových systémů (program FI, N-RSSS)
- Services Development Management (program FI, N-RSSS_A)
- Služby - výzkum, řízení a inovace (angl.) (program FI, N-AP)
- Služby - výzkum, řízení a inovace (program FI, N-AP)
- Sociální informatika (program FI, B-AP)
- Software Systems Development Management (program FI, N-RSSS_A)
- Software Systems (program FI, N-PSKB_A)
- Softwarové systémy (program FI, N-PSKB)
- Strojové učení a umělá inteligence (program FI, N-UIZD)
- Teoretická informatika (program FI, N-IN)
- Učitel informatiky a správce sítě (program FI, N-UCI)
- Učitelství informatiky pro střední školy (program FI, N-UCI) (2)
- Učitelství výpočetní techniky pro střední školy (program FI, N-SS) (2)
- Umělá inteligence a zpracování přirozeného jazyka (program FI, B-IN)
- Umělá inteligence a zpracování přirozeného jazyka (program FI, N-IN)
- Vývoj počítačových her (program FI, N-VIZ)
- Zpracování a analýza rozsáhlých dat (program FI, N-UIZD)
- Zpracování obrazu (program FI, N-AP)
- Zpracování přirozeného jazyka (program FI, N-UIZD)
- Cíle předmětu
- Každý program je zpravidla strukturován do několika dílčích menších programů, které realizují část z požadovaných funkcí celého programu. Schopnost vytvářet malé dokonalé programy se proto jeví jako zásadní dovednost každého poctivého programátora. Tento kurz je věnován tomu, jak psát malé a při tom elegantní, ale hlavně správné a efektivní programy. Ukážeme, jak několik jednoduchých postupů a principů může k naplnění tohoto cíle stačit. Jen je třeba se s nimi seznámit a prakticky je zvládnout! Proto je převážná část kurzu zaměřena na řešení, často netradičních a zajímavých, algoritmických úloh pomocí metody elegantního programování.
- Výstupy z učení
- Na konci tohoto kurzu bude student schopen navrhovat malé sekvenční algoritmy a dokazovat jejich správnost.
- Osnova
- Programovací jazyk GCL. Syntaxe, definice sémantiky pomocí transformátorů predikátů, SKIP, ABORT, vícenásobné přiřazení, sekvence, alternativa, cyklus.
- Programátorská logika. Zákon sekvence, zákon alternativy, zákon cyklu, vektorové proměnné.
- Návrh algoritmů. Principy a strategie pro návrh založené na programátorské logice, zákon současného návrhu a verifikace.
- Příklady aplikace metodologie na návrh konkrétních algoritmů. Návrh efektivních algoritmů, vyhledávání a třídění.
- Literatura
- DIJKSTRA, Edsger W. a W. H. J. FEIJEN. A method of programming. Wokingham: Addison-Wesley Publishing Company, 1998, vii, 188 s. ISBN 0-201-17536-3. info
- KALDEWAIJ, A. Programming :the derivation of algorithms. New York: Prentice Hall, 1990, xii, 216 s. ISBN 0-13-204108-1. info
- GRIES, David. The Science of Programming. New York: Springer-Verlag, 1981, 366 s., ob. ISBN 0-387-90641-X. info
- Výukové metody
- přednáška, domácí cvičení, samostatné studium
- Metody hodnocení
- Zkouška je písemná. V případě zadání průběžných testů během semestru, mají tyto podíl nejvýše 30% na závěrečném hodnocení. Pomocné materiály nejsou povoleny.
- Informace učitele
- https://www.fi.muni.cz/usr/brim/home/#teaching
- Další komentáře
- Předmět je vyučován každoročně.
- Statistika zápisu (podzim 2022, nejnovější)
- Permalink: https://is.muni.cz/predmet/fi/podzim2022/IV022