PB006 Principy programovacích jazyků a OOP

Fakulta informatiky
podzim 2022
Rozsah
2/0/0. 2 kr. (plus ukončení). Ukončení: zk.
Vyučující
doc. Mgr. Jan Obdržálek, PhD. (přednášející)
Bc. Daniel Rozehnal (pomocník)
Mgr. Anna Řechtáčková (pomocník)
Garance
doc. Mgr. Jan Obdržálek, PhD.
Katedra teorie programování – Fakulta informatiky
Kontaktní osoba: doc. Mgr. Jan Obdržálek, PhD.
Dodavatelské pracoviště: Katedra teorie programování – Fakulta informatiky
Rozvrh
St 8:00–9:50 D1, St 8:00–9:50 D2
Předpoklady
( IB111 Základy programování || NOW( IB111 Základy programování )) && PB071 Principy nízkoúr. prog.
Předmět je určen pro studenty, kteří již mají základní znalost moderního imperativního programovacího jazyka (Python), nízkoúrovňového jazyka (C) a funkcionálního jazyka (Haskell).
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
Cíle předmětu
Cílem kurzu je seznámit se s koncepty přítomnými v moderních programovacích jazycích. Kurz také slouží jako úvod do objektově orientovaného programování.
Výstupy z učení
Na konci tohoto kurzu bude student:
ovládat všechny základní koncepty přítomné v moderních programovacích jazycích;
schopen do hloubky porozumět (pro něj) novému programovacímu jazyku a začít ho rychle používat;
rozumět principům objektově orientovaného programování;
schopen posoudit vhodnost volby programovacího jazyka pro řešení daného problému;
schopen analyzovat silné i slabé stránky daného programovacího jazyka.
Osnova
  • Jména, vazby, rozsahy platnosti. Bloková struktura. Paměťová reprezentace objektů.
  • Primitivní a složené datové typy. Typová kontrola. Seznamy. Ukazatele a odkazy. Odvozování typů.
  • Tok řízení: výrazy, příkazy, řídící struktury.
  • Podprogramy: lokální definice, metody předávání parametrů, přetížené a generické funkce. Koprogramy.
  • Abstraktní datové typy: základní koncepty, zapouzdření. Parametrizované ADT, generika. Prostory jmen.
  • Objektově orientované programování: principy OOP, dědičnost, dynamická vazba.
  • Výjimky: základní koncepty, příkladové studie, výjimky ve funkcionálních jazycích.
  • Podpora správy jmen a zapouzdření u větších programů.
Literatura
    doporučená literatura
  • SEBESTA, Robert W. Concepts of Programming Languages. 10th Edition. Addison-Wesley, 2012, 816 s. ISBN 978-0-13-139531-2. info
  • Programming language pragmatics. Edited by Michael Lee Scott. 2nd ed. Oxford: Elsevier Science [distributor], 2006, xxxi, 875. ISBN 9780126339512. info
Výukové metody
Kurs probíhá formou přednášek.
Metody hodnocení
5-6 kratších domácích úkolů. Kurs je ukončen písemnou zkouškou na konci semestru.
Informace učitele
https://is.muni.cz/el/1433/podzim2020/PB006/index.qwarp
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Nachází se v prerekvizitách jiných předmětů
Předmět je zařazen také v obdobích podzim 2002, podzim 2003, podzim 2004, podzim 2005, podzim 2006, podzim 2007, podzim 2008, podzim 2009, podzim 2010, podzim 2011, podzim 2012, podzim 2013, podzim 2014, podzim 2020, podzim 2021, podzim 2023, podzim 2024.