Detail předmětu

Programovací seminář

FIT-IPS Ak. rok: 2019/2020 Zimní semestr

Dynamické přidělování paměti, datový typ ukazatel a reference. Aktivační záznam a rekurze. Překlad, zavádění a laděni binárních programů. Implementace stavových automatů. Implementace algoritmů nad regulárními výrazy. Synchronizace programů. Principy práce s vlákny a procesy. Vybrané synchronizační chyby. Úvod do MPI. Problematika výpadků stránek a dopad na výpočetní výkon.

Jazyk výuky

čeština

Počet kreditů

2

Garant předmětu

Výsledky učení předmětu

  • Student dokáže vysvětlit problematiku exekuce programů, umí vysvětlit práci s dynamickým přidělováním paměti.
  • Student dokáže využít stavové automaty v řízení programů.
  • Student zvládne aplikovat regulární výrazy.
  • Student ovládá tvorbu paralelních programů.
  • Student dokáže identifikovat pokles výkonu související s paměťovými přístupy.

Prerekvizity

Programování v jazyce C. Základy algoritmizace. Základní synchronizační primitiva. Architektura počítače.

Způsob a kritéria hodnocení

  • 10 bodů za každou úlohu řešenou ve dvojici, celkem 20
  • 80 bodů zápočtová písemka

Podmínky zápočtu:
Zápočet je udělen při získání minimálně 50 bodů za semestr.

Učební cíle

Cílem předmětu je nahlédnout na klíčové kapitoly principů programování a operačních systémů jiným pohledem, zejména v souvislosti s abstrakcemi algoritmů a formálních automatů a modelů tak, aby došlo k vzájemnému propojení jak teoretických, tak praktických dovedností a znalostí.

Použití předmětu ve studijních plánech

Program IT-BC-3: Informační technologie, bakalářský
obor BIT: Informační technologie, volitelný

Program BIT: Informační technologie, bakalářský
specializace BITP: Informační technologie, volitelný

Program B3A-P: Aplikované vědy v inženýrství, bakalářský
obor B-MAI: Matematické inženýrství, volitelný (nepovinný)

Typ (způsob) výuky

 

Seminář

20 hod., nepovinná

Osnova

DEMO cvičení s rozšířeným výkladem:

  1. Ukazatele, dynamické přidělování paměti.
  2. Aktivační záznam, rekurze.
  3. Překlad a ladění programu
  4. (cvičení viz níže)
  5. (cvičení viz níže)
  6. Stavové automaty, regulární výrazy v *nixových programech
  7. Synchronizace procesů
  8. Uváznutí
  9. (cvičení viz níže)
  10. (cvičení viz níže)
  11. Tabulka stránek v OS
  12. Vliv stránkování a vyrovnávací paměti na výkonu
  13. Zápočtová písemka

Projekt

6 hod., povinná

Osnova