Předmět: Objektově orientované programování

» Seznam fakult » FEI » KST
Název předmětu Objektově orientované programování
Kód předmětu KST/BOOP
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Bakalářský
Rok studia nespecifikován
Semestr Letní
Počet ECTS kreditů 7
Vyučovací jazyk Čeština
Statut předmětu Povinný
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
Vyučující
  • Křivda Pavel, Ing.
  • Le David, Ing.
  • Šimerda Karel, Ing.
  • Diviš Roman, Ing. Ph.D.
  • Karták Štěpán, Ing.
  • Rak Josef, RNDr. Ph.D.
Obsah předmětu
Program přednášek a cvičení: 1. Úvodní informace; UML - class diagram, základní relace; návrh a implementace kolekce ArrayList založené na dynamicky rostoucím poli 2. Jednotkové testování (unit testing); dědičnost; polymorfizmus; návrh a implementace frameworku pro jednotkové testování 3. Výjimky; unit testing - test doubles; aplikace výjimek pro realizaci třídy Assert 4. Reflexe - základy, použití; genericita - typové parametry, omezené typové parametry, type erasure; implementace generické kolekce ArrayList 5. Funkcionální programování - lambda výrazy, funkcionální interface, Stream API, Optional, Record; Implementace podpory pro Stream API v ArrayList; 6. Unit testing - návrh a implementace frameworku založeného na reflexi; JUnit framework - použití, vytváření testů 7. Vytváření objektů, Singleton, Factory, Clone, Dependency Injection 8. Java IO; Java NIO - buffers, channels, nonblocking IO; Návrh a implementace webserveru založeném na Java IO/NIO 9. Návrh a implementace webserveru založeném na middleware pipeline; Spojový seznam - LinkedList 10. Rozšíření webserveru založeném na middleware pipeline - aplikace pokročilých konceptů (DI, MVC, Stream, ...) 11. Textové a binární soubory - čtení a zápis dat; serializace; json/xml 12. Classpath; Ant; Maven; Gradle; Java moduly 13. Opakování teoretických a praktických poznatků Program cvičení odpovídá programu přednášek, na cvičení jsou vypracovávány úlohy zaměřené na procvičení probíraných témat.

Studijní aktivity a metody výuky
Přednášení, Dialogická (diskuze, rozhovor, brainstorming), Demonstrace, Nácvik dovedností
  • Domácí příprava na výuku - 65 hodin za semestr
  • Příprava na zkoušku - 30 hodin za semestr
  • Semestrální práce - 50 hodin za semestr
  • Účast na výuce - 65 hodin za semestr
Výstupy z učení
Seznámit se s praktickou aplikací konceptů objektově orientovaného přístupu v jazyce Java, základy UML diagramů pro popis objektového modelu, principy a praktickým použitím jednotkového testování.
Po úspěšném absolvování předmětu umí absolvent uplatňovat objektově orientovaný přístup v jazyce Java.
Předpoklady
Předpokladem jsou znalosti a dovednosti z předmětu BZAPR (Základy programování).

Hodnoticí metody a kritéria
Ústní zkouška, Didaktický test, Rozhovor

Podmínkou k udělení zápočtu je vypracování a obhajoba průběžně zadaných 10 úkolů na cvičeních v jednotlivých týdnech semestru. V průběhu zkouškového období jsou realizovány minimálně 2 termíny na opravné zápočty, pro zisk opravného zápočtu je třeba dodatečně splnit všechny podmínky pro zisk řádného zápočtu a na opravném termínu rovněž vypracovat praktický příklad v časovém limitu (1:30 hod). Pro splnění zkoušky je třeba zvládnout písemný test z teoretických i praktických otázek (na min. 60 % bodů) a splnit ústní zkoušku (zaměřenou na teoretické i praktické poznatky OOP v Javě a schopnost uplatnit tyto poznatky při návrhu či úpravách kódu). Pro splnění zkoušky je třeba dosáhnout alespoň 60 % bodů v ústní části zkoušky (hodnotící stupeň E). Detailní požadavky včetně termínů odevzdání jednotlivých částí jsou zveřejněny na začátku semestru a poskytnuty studentům v systému Moodle.
Doporučená literatura
  • PECINOVSKÝ, Rudolf. Java 8: Úvod do objektové architektury pro mírně pokročilé.. raha: Grada Publishing, 2014. ISBN 978-80-247-4638-8.
  • Pecinovský, Rudolf. Myslíme objektově v jazyku Java : kompletní učebnice pro začátečníky. Praha: Grada, 2009. ISBN 978-80-247-2653-3.
  • SCHILDT, Herbert. Java 8: výukový kurs.. Brno: Computer Press, 2016. ISBN 80-251-0615-2.


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník Doporučený semestr