Objektově orientované programování
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
F7PMIOOP | Z,ZK | 3 | 1P+2C | česky |
- Garant předmětu:
- Radim Krupička
- Přednášející:
- Radim Krupička
- Cvičící:
- Bohuslav Dvorský, Tomáš Krajča, Radim Krupička
- Předmět zajišťuje:
- katedra biomedicínské informatiky
- Anotace:
-
Objektově orientované programování (OOP) je v současné nejpoužívanější programovací paradigma. Cílem předmětu je seznámit studenty s používanými metodami a principy objektového programování. Studenti se seznámí s konkrétními implementacemi OOP v jazycích Python, C#, JAVA, C++, a MATLAB a osvojí si objektové myšlení. Předmět se bude soustředit na implementace a základy jazyka Python.
- Požadavky:
-
Forma ověření studijních výsledků: Pro získání zápočtů je potřeba získat minimálně 26 bodů z 50, kdy studenti absolvují dva průběžné testy - každý za max. 12 bodů a vytvoří vlastní semestrální práci (26 bodů). Zkouška se skládá z písemné části (praktické a teoretické části) a případného ústního dozkoušení.
- Osnova přednášek:
-
1.Úvod do programování, Git a python, seznámení s OOP, základní pojmy, objektové datové typy, přístup k položkám objektů.
2.Objektové modelování, vývoj a kvalita software, OOP v python
3.Dědičnost, hierarchie, vzájemné vztahy objektů, virtuální metody, polymorfismus.
4.Mutabilita, immutabilita, funkcionální abstrakce
5.Konstrukční návrhové vzory (singleton, factory, protoype, builder)
6.Strukturální návrhové vzory (adapter, composite, decorator, facade, flightweight)
7.Vzory chování (iterator, strategy, visitor , observer, state, memento, lazy initialization, object pool)
- Osnova cvičení:
-
1. Úvod do Pythonu, vscode, debug. Proměnné, podmínky, string, print, GIT
2. Datové struktury (list, tuple, dictionary), cykly, rozbalování, filtrování, procházení,
3. Funkce (Docstring), pojmenované proměnné, variabilní vstupní proměnné (*args, **kwargs) , práce se soubory.
4. lambda funkce, funkce jako parametr, map, reduce, filter, zip, enumerate, (all, any) dekorátory
5. Balíčky, struktura projektu, příprava virtuálního prostředí, import,__init__, __main__, pip, ruff
6. Výjimky, práce se soubory (serializace, with), generátory (yield), iterátory (next, iter)
7. Test
8. OOP . Definice třídy, konstruktor, atributy, metody, dědičnost
9. Modelování - class diagram, asociace, agregace, kompozice
10. Pokračování modelování, příklady Testy, Mutabilita/imutabilita, Dataclasses, dědění, polymorfismus
11. Implementace návrhových vzorů - Singleton, Factory
12. Imlementace Decorator, Adapter, Proxy
13. Implementace State and lazy initialization
14. Test
- Cíle studia:
-
Cílem předmětu je seznámit studenty s používanými metodami a principy objektového programování. Studenti se seznámí s konkrétními implementacemi OOP v jazycích Python, C#, JAVA, C++ a MATLAB a osvojí si objektové myšlení.
- Studijní materiály:
-
Povinná literatura:
[1] PECINOVSKÝ, Rudolf. OOP: naučte se myslet a programovat objektově. Brno: Computer Press, 2010. ISBN 978-80-251-2126-9.
Doporučená literatura:
[2] BISHOP, J. M. C#: návrhové vzory. Brno: Zoner Press, 2010. Encyklopedie Zoner Press. ISBN 978-80-7413-076-2. [3] NAGEL, Christian. C# 2008: programujeme profesionálně. Brno: Computer Press, 2009. Programujeme profesionálně. ISBN 978-80-251-2401-7.
- Poznámka:
- Rozvrh na zimní semestr 2024/2025:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po Út St Čt Pá - Rozvrh na letní semestr 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Navazující magisterská studijní specializace Asistivní technologie (povinný předmět)
- Navazující magisterská studijní specializace Softwarové technologie (povinný předmět)
- Navazující magisterská studijní specializace Nanotechnologie (povinný předmět)