Topic outline

  • B0B99PRP - Procedurální programování (pro EK a EEM)

    Náplň předmětu je koncipována s důrazem na osvojení si základních principů a paradigmat strukturovaného procedurálního programování a datové abstrakce tak, aby studenti uvažovali o používání výpočetních prostředků algoritmicky a dovedli tak efektivně využít programových prostředků pro zpracování dat a řešení výpočetních úloh. V předmětu je kladen důraz na osvojení si programovacích návyků pro vytváření čitelných a znovu použitelných programů. Zároveň je snahou vybudovat u studentů nadhled nad fungováním programu, datového modelu, přístupem a správou paměti. Z tohoto důvodu bude při výuce využit programovací jazyk C, který poskytuje přímou vazbou mezi programem a alokovaným paměťovým prostorem programu. Studenti se v předmětu seznámí nejen s překladem zdrojových kódů a linkováním aplikace, ale také s laděním a profilováním programu. Přednášky budou založeny na prezentaci základních programových konstrukcí a demonstraci motivačních programů dávající do souvislosti dílčí konstrukty s praktickým zápisem poukazující na čitelnost a strukturu zdrojových kódů, reálnou výpočetní náročnost a s tím související nástroje pro profilování a ladění. V závěru semestru budou stručně představeny základní vlastnosti objektově orientovaného programování.

  • 1. týden (3.10.2017)

    Přednášející: Pavel Pačes

    Organizace předmětu, úvod do procesorů, programování v C

    • 2. týden (10.10.2017)

      Přednášející: Pavel Pačes

      C-Nutshell: co všechno potřebujete vědět o C pro dokončení předmětu. Struktura funkce main a funkcí obecně, základní smyčky, větvení programu, vstup a výstup.

      • 3. týden (17.10.2017)

        Přednášející: Pavel Pačes

        Příkazová řádka dokončení – pojem funkce/program, paměť a její reprezentace, vstupně výstupní obvody, základy adresování.

        • 4. týden (24.10.2017)

          Přednášející: Stanislav Vítek

          Preprocesor a sestavení programu. Primitivní datové typy. Interakce s operačním systémem – různé druhy platforem, příklad ladění programu - Nucleo a představení úlohy

          • 5. týden (31.10.2017)

            Přednášející: Stanislav Vítek

            Řídící struktury a funkce.

            • 6. týden (7.11.2017)

              Přednášející: Stanislav Vítek

              Pole a ukazatele. Paměťové třídy. Volání funkcí.

              • 7. týden (7.11.2017)

                Přednášející: Stanislav Vítek

                Ladění programu, výpisy, GDB, rozdíly mezi embedded platformou a vyšší úrovní abstrakce.

                • 8. týden (21.11.2017)

                  Přednášející: Stanislav Vítek

                  Řetězce a ukazatele, spojové struktury

                  • 9. týden (28.11.2017)

                    Přednášející: Pavel Pačes

                    Složený typ, výčtový typ a bitová pole.

                    • 10. týden (5.12.2017)

                      Přednášející: Pavel Pačes

                      Vstup / výstup a standarní knihovny C, přesnost výpočtů a vnitřní reprezentace číselných typů.

                      • 11. týden (12.12.2017)

                        Přednášející: Pavel Pačes

                        Práce s pamětí, seznamy a existující algoritmy v standarní knihovny C.

                        • 12. týden (19.12.2017)

                          Přednášející: Pavel Pačes

                          Paralení programování, paralelní výpočty a synchronizační primitiva (semafory, zprávy a sdílená paměť). Vícevláknové programování, modely aplikací, POSIX vlákna C11 vlákna.