PB173 Tematicky zaměřený vývoj aplikací v jazyce C/C++

Fakulta informatiky
podzim 2013
Rozsah
0/2. 2 kr. (plus ukončení). Ukončení: k.
Vyučující
doc. RNDr. Petr Švenda, Ph.D. (přednášející)
RNDr. Radek Krejčí (cvičící)
Mgr. Jiří Slabý, Ph.D. (cvičící)
Ing Roman Štěpánek (cvičící)
Ing. Roman Štěpánek (cvičící), Mgr. Andrea Číková (zástupce)
RNDr. Šimon Tóth (cvičící)
RNDr. Vladimír Ulman, Ph.D. (cvičící)
Mgr. Jan Fikejs (pomocník)
Garance
doc. RNDr. Vlastislav Dohnal, 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
Rozvrh seminárních/paralelních skupin
PB173/01: Út 10:00–11:50 G191a, P. Švenda
PB173/02: Út 12:00–13:50 B202, J. Slabý
PB173/03: St 14:00–15:50 B202, R. Krejčí
PB173/04: Pá 8:00–9:50 B202, R. Krejčí
PB173/05: St 10:00–11:50 G191a, R. Štěpánek
PB173/06: St 8:00–9:50 G191a, V. Ulman
PB173/07: Út 14:00–15:50 B202, J. Slabý
Předpoklady
PB071 Úvod do jazyka C || SOUHLAS
U studentů se předpokládá znalost jazyka C nebo C++. Současně se předpokládá uživatelská znalost operačního systému dle konkrétní skupiny (Unix nebo Windows). Povinnou prerekvizitou je absolvování předmětu PB071 nebo výjimka udělená přednášejícím.
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 90 stud.
Momentální stav registrace a zápisu: zapsáno: 0/90, pouze zareg.: 0/90, pouze zareg. s předností (mateřské obory): 0/90
Mateřské obory/plány
Cíle předmětu
Na konci tohoto kurzu bude student schopen: používat moderní vývojové nástroje (IDE, debugger, verzovací nástroje...); dodržovat a používat dobré programátorské návyky; lépe se orientovat v praktických problémech řešených v oblasti studentova zaměření; vytvářet udržovatelné a rozšiřovatelné aplikace; ladit chyby v programu a předcházet jejich výskytu systematickým testováním; korektně a efektivně pracovat s pamětí a velkými daty; optimalizovat aplikaci z hlediska používání systémových zdrojů;
Osnova
  • Jednotlivé tématické skupiny (seznam uveden v kolonce Informace učitele) mají společnou kostru probíraných témat, jednotlivá témata jsou ale demonstrována a procvičována na problémech v doménách dle tématické skupiny. Základní tématická kostra je:
  • Úvod do problematiky dle tématické skupiny
  • Životní cyklus vytvářené aplikace
  • Udržitelnost kódu
  • Ladění chyb (debugging)
  • Práce s pamětí
  • Práce s velkými daty
  • Systematické testování
  • Zpracování chyb
  • Ladění výkonu
  • Použitelnost aplikace
Literatura
  • Literatura dle tématické 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.
Metody hodnocení
Student během celého semestru vypracuje 10 domácích úloh a jeden závěrečný (skupinový) projekt včetně prezentace. Pro úspěšné absolvování je požadován zisk 60 % dosažitelných bodů a úspěšné splnění finálního programovacího cvičení.
Pro zisk zápočtu je nutné dokončit samostatné bodované úloh započaté na cvičení. Pro zisk kolokvia vypracovat závěrečný (skupinový) projekt. Účast ve cvičeních je povinná, tolerovány jsou dvě neomluvené neúčasti.
Informace učitele
Pro semestr podzim 2013 budou otevřeny tyto tématické skupiny:
Zpracování medicinského obrazu (Vladimír Ulman)
Ovladače jádra - Linux (Jiří Slabý)
Binární programování v Linuxu (Jiří Slabý)
Systémové programování Linux (Radek Krejčí)
Aplikovaná kryptografie a bezpečné programování (Petr Švenda)
Systémové programování Windows (Roman Štěpánek)
Detailní ifnormace o jednotlivých skupinách naleznete v interaktivních osnovách.

Following thematic groups will be opened for Autumn 2013 semester:
Processing of medical images (Vladimír Ulman)
Linux kernel driver development (Jiří Slabý)
Binary programming in Linux (Jiří Slabý)
System programming for Linux (Radek Krejčí)
Applied cryptography and secure programming (Petr Švenda)
System programming for Windows (Roman Štěpánek)
Detailed information can be found at Interactive syllabi
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Předmět je zařazen také v obdobích podzim 2010, podzim 2011, podzim 2012, podzim 2014, podzim 2015, jaro 2016, podzim 2016, jaro 2017, podzim 2017, jaro 2018, podzim 2018, jaro 2019, podzim 2019, jaro 2020, podzim 2020, jaro 2021, podzim 2021, jaro 2022, podzim 2022, jaro 2023, podzim 2023, jaro 2024, podzim 2024, jaro 2025.