Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




Předmět Objektově orientované programování (KMI / OOP)

Na serveru studentino.cz naleznete nejrůznější studijní materiály: zápisky z přednášek nebo cvičení, vzorové testy, seminární práce, domácí úkoly a další z předmětu KMI / OOP - Objektově orientované programování, Přírodovědecká fakulta, Univerzita Palackého v Olomouci (UP).

Top 10 materiálů tohoto předmětu

Materiály tohoto předmětu

Materiál Typ Datum Počet stažení

Další informace

Obsah

Kurs navazuje na kurs Paradigmata programování 1. Jeho náplní je všeobecný úvod do objektově orientovaného programování. Probrány budou základní principy OOP bez omezení na konkrétní programovací jazyk. Cílem kurzu je poskytnout studentům nadhled nad probíranou problematikou, proto se věnuje i dnes méně rozšířeným oblastem objektového programování. Kurs tak slouží jako protiváha předmětů, v nichž je objektové programování probíráno se zřetelem k přímému uplatnění v praxi. Jako modelový jazyk kurzu bude použit Common Lisp, v němž lze probíranou problematiku dobře demonstrovat a který je příbuzný jazyku Scheme, s nímž studenti již mají zkušenosti.Principy objektově orientovaného programování budou procvičovány na netriviálních příkladech, student si vyzkouší tři základní role při práci v OOP: roli implementátora objektově orientovaného programovacího jazyka, roli autora objektové knihovny i roli jejího uživatele.1. Od Scheme ke Common Lispu. Rozdíly v terminologii. Rozdíly ve vyhodnocovacím procesu a pojetí prázdného seznamu. Alternativy nástrojů z R5RS v Common Lispu. Nástroje, které ve Scheme nenajdeme.2. Třídy a instance, zprávy a metody. Sloty a jejich inicializace. Jednoduchá objektová grafická knihovna.3. Zapouzdření. Motivace: tři problémy řešené principem zapouzdření. Formulace principu, vyjímky. Použití v objektové grafické knihovně.4. Polymorfismus. Princip polymorfismu. Použití v objektové grafické knihovně.5. Jednoduchá dědičnost. Pojem dědičnosti. Dědičnost jako nástroj redukující opakování v kódu. Hierarchie tříd. Přepisování metod, volání zděděné metody. Zásady používání dědičnosti, princip "is-a". Použití při inicializaci instancí. Použití v objektové grafické knihovně.6. Události. Programování řízené událostmi. Pojem delegáta. Práce s událostmi v jednoduché grafické knihovně. Zprávy a události jako data a jejich využití.7. Prototypové jazyky. Dědičnost a zprávy v prototypových jazycích. Srovnání prototypových jazyků a jazyků založených na třídách, implementace jednoduchého prototypového jazyka a práce s ním, implementace a použití prototypové objektové knihovny. Ukázka čistě objektového prototypového jazyka.8. Vícenásobná dědičnost. Pojem vícenásobné dědičnosti, vícenásobná dědičnost v různých programovacích jazycích. Programování pomocí rozhraní (interface) a mixinů. Výhody a úskalí vícenásobné dědičnosti.9. Netradiční rysy CLOSu. Generické funkce a multimetody, kombinace metod a jejich využití. Spojení funkcionálního a objektového programování, dynamické objektové programování. Metaobjektové protokoly.

Získané způsobilosti

1. ZnalostDefinuj výhody a styly vývoje objektově orientovaných programů.

Literatura

http://phoenix.inf.upol.cz/esf/ucebni/ParObjPr.pdfGRAHAM P. ANSI Common Lisp. Prentice Hall, 1996. http://www.lispworks.com/documentation/HyperSpec/index.htmlMEYER BERTRAND. Object-Oriented Software Construction. Prentice Hall, 1997. Fowler, M. Patterns of enterprise application architecture. Addison-Wesley, 2003. ISBN 0-321-12742-0.KICZALES GREGOR, DES RIVIERES JIM AND BOBROW DANIEL G. The Art of the Metaobject Protocol. London, 1991.

Požadavky

Aktivní účast v hodině. Plnění zadaných úkolů. Složení ústní (příp. písemné) zkoušky.

Garant

doc. RNDr. Michal Krupka, Ph.D.

Vyučující

doc. RNDr. Michal Krupka, Ph.D.Mgr. Tomáš Kühr, Ph.D.Mgr. Tomáš Kühr, Ph.D.Mgr. Jan Laštovička