PB006 Principy programovacích jazyků a OOP

Fakulta informatiky
podzim 2019

Předmět se v období podzim 2019 nevypisuje.

Rozsah
2/1/0. 3 kr. (plus ukončení). Ukončení: zk.
Vyučující
doc. Mgr. Jan Obdržálek, PhD. (přednášející)
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
Předpoklady
IB111 Základy programování && PB071 Principy nízkoúr. prog. && IB015 Neimperativní programování
Znalost minimálně jednoho imperativního (C/C++/Java) a jednoho funkcionálního programovacího jazyka. Znalost dalších programovacích jazyků výhodou.
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
předmět má 61 mateřských oborů, zobrazit
Cíle předmětu
Cílem kurzu je seznámit se a osvojit si různé koncepty přítomnými v různých programovacích jazycích, zejména s principy OOP.
Výstupy z učení
Na konci tohoto kurzu bude student schopen:
zvolit programovací jazyk (popř. programovací paradigma) vhodný pro řešení daného problému;
analyzovat silné i slabé stránky daného programovacího jazyka;
rychle do hloubky porozumět (pro něj) novému programovacímu jazyku;
rozumět principům objektově orientovaného programování.
Osnova
  • Stručná historie vývoje hlavních programovacích jazyků.
  • 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.
  • Výjimky: základní koncepty, příkladové studie (Ada, C++, Java), výjimky ve funkcionálních jazycích. Obsluha událostí.
  • Abstraktní datové typy: základní koncepty, zapouzdření, případové studie (Ada, C++). Parametrizované ADT, generika. Prostory jmen.
  • Objektově orientované programování: principy OOP, dědičnost, dynamická vazba, případové studie (Smalltalk, C++, Java)
  • Souběžnost: základní pojmy a principy, mechanismy vzájemného vyloučení (semafory, monitory, zasílání zpráv), případové studie (Ada, Java). Souběžnost ve funkcionálních jazycích.
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í
Kurs je ukončen písemnou zkouškou na konci semestru.
Informace učitele
https://is.muni.cz/el/1433/podzim2013/PB006/index.qwarp
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Výuka probíhá každý týden.
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 2022, podzim 2023.