Objektovo orientované programovanie

Upozornenie

-
Organizácia
Podmienky
Prednášky
Cvičenia
Viac

Organizácia predmetu

Predmet je členený do nasledujúcich aktivít:

  • Prednášky: 2 hodiny týždenne podľa rozvrhu
  • Cvičenie: 2 hodiny týždenne podľa rozvrhu
  • Samostatné domáce štúdium
Prednášky:

Prednášky prebiehajú každý pondelok 10:00 – 12:00 v miestnosti BC300.

Konzultácie:

Dohodou (na prednáške/mailom)

Discord server (invite https://discord.gg/UTT5U3x )

Vzdialená výučba:

Twitch.tv (streamy z cvičení) – https://www.twitch.tv/fei_uim_oop/
Youtube – https://www.youtube.com/channel/UCRGOmuTb6Bdsmneu6cTNNgg

Plán semestra

  1. Previazanosť a súdržnosť.
  2. Vytváranie a používanie objektov, používanie statických metód.
  3. Základy jazyka java.
  4. Vytváranie tried, zapuzdrenie.
  5. Asociácie medzi triedami.
  6. Balíky.
  7. Rozhrania.
  8. Vnorené typy.
  9. Programovanie proti rozhraniu, udalosti.
  10. Dedenie, abstraktné triedy.
  11. Výnimky.
  12. Generické typy.
  13. Kolekcie a algoritmy (Collections Framework).
  14. Enumeračné typy.
  15. Vstupno výstupné prúdy.
  16. Model-view-controller.

Podmienky absolvovania

Priebežné hodnotenie:

  • 40 bodov
  • 3 zadania za 5b + 15b +20b
  • zadania budú vysvetlené na cvičení, vypracovanie na doma, do stanoveného termínu treba odovzdať do AIS
  • minuloročné zadanie č.1 : OOP2019 – Zadanie1

Minimálny zápočet:

  • 25 bodov a zároveň je potrebné získať z každého zadania minimálne polovicu bodov (výnimkou je 1. zadanie)!

Písomná skúška:

  • 60 bodov
  • implementácia zadania na počítači (vlastný notebook alebo PC v C117) počas trvania skúšky (cca 2 hod.)
  • minuloročná skúška: OOP2019 – Skúška

 

Prednášky

Prednáška 1

Prednáška 2

  • java1 – výrazy, premenné, operácie a funkcie, syntaktický strom, vypočítanie hodnoty, pravidlá priority, syntaktické pravidlá
  • java2 – dátové typy, deklarácia premenných, priradenie, polymorfizmus, komentáre, dokumentácia
  • java3 – skratky, skrátené vyhodnotenie, elementárne príkazy, podmienené príkazy, iteračné príkazy
  • java4 – iteračné pikazy (pokračovanie), vnorené cykly, verifikácia
  • java5 – ďalšie riadiace štruktúry (switch, break), polia

Prednáška 3

  • java6 – polia a pointery, viacdimenzionálne polia, funkcie a procedúry
  • java7 – volanie hodnotou, volanie adresou, globálne premenné, rekurzia, stack

Prednáška 4 – samoštúdium

  • oop1 – triedy, atribúty, objekty
  • oop2 – premenné ako ukazovatele na objekt, rekurzívne dátové typy, dátové štruktúry, rovnosť objektov
  • oop3 – metódy, konštruktor, this, statické atribúty a metódy
  • oop4 – dedenie, polymorfizmus
  • oop5 – zatienenie atribútov, konštruktory a dedenie, super(), trieda Object, pretypovanie, abstraktné triedy a metódy
  • oop6 – final, balíky (packages)

Prednáška 5 – samoštúdium

  • OOP_principles – návrh aplikácií a princípy OOP (SOLID, DRY, KISS)
    • Záznam zo streamu:

Študijne materiály

01 Inštalácia Javy a úvodný príklad

  • Video:
  • Kód:

02 Výrazy

03 Dátové typy

  • Video:
  • Prezentácia: 03_Java_datove_typy
  • Kód:



     

04 Komentáre

  • Video:
  • Prezentácia: 04_Java_komentare
  • Kód:

 

05 If-Else vetvenie

  • Video: 

 

06 Cykly

  • Video: 

 

Cvičenia

Plán cvičení (bude postupne pribúdať):

Cvičenie 1

  • Hello world + základná syntax, ovládanie vývojového prostredia – Program cvičenia1
  • Projekt vysvetlovaný na cvičení: Cvicenie1

Cvičenie 2

Cvičenie 3

Cvičenie 4

  • Generické typy, kolekcie: Program cvičenia4
  • Záznam zo streamu:
  • Projekt vysvetlovaný na online cvičení (Canvas, Printable): Cvicenie4a
  • Projekt vysvetlovaný na online cvičení (Petri Net): Cvicenie4b
  • Vzorové riešenie úlohy 1: Uloha1

Cvičenie 5

Cvičenie 6

  • Projekt vysvetlovaný na online cvičení: events
  • Záznam zo streamu:
    • Príkladné riešenie bonusového zadania:
    • Event-Driven Programming: 
    • Spring events: 

Cvičenie 7

Cvičenie 8

Bonusové zadanie

Príklady a učebné materiály z cvičení

Zklavesnice

  • Pomocná trieda poskytujúca metódy pre načítanie rôznych typov vstupov z klavesnice používateľa. Túto triedu môžte používať vo všetkých projektoch v rámci predmetu OOP.
  • Kód triedy je možné skopírovať priamo zo stránky pomocou panelu na zobrazenie kódov (v pravom hornom rohu, druhá ikona z prava je skopírovanie celého obsahu). Po skopírovaní obsahu panelu je potrebné u vás v projekte vytvoriť triedu s rovnakým názvom ako skopírovná trieda, do ktorej vložíte skopírovaný obsah. Pozor na balíček triedy (prvý riadok) musí sedieť s vami vytvorenými balíčkami.
ZKlavesnice 2.0:

 

ZKlavesnice 1.0:

Zadania 2020

Zadanie č.1 – SK | EN

Zadanie č.2 – SK | EN

Zadanie č.3 – SK | EN

 

Harmonogram cvičení – plán bude ešte revidovaný v súvislosti s aktuálnou situáciou

pondelkynáplň cviceniautorkynáplň cviceniaštvrtkynáplň cviceniaodovzdavanie zadania
17.2.2020cv118.2.2020cv120.2.2020cv1
24.2.2020cv225.2.2020cv227.2.2020cv2
2.3.2020cv33.3.2020cv35.3.2020cv3
9.3.2020cv410.3.2020cv412.3.2020cv4
16.3.2020cv5 + zad117.3.2020cv5 + zad119.3.2020cv5 + zad1
23.3.2020cv624.3.2020cv626.3.2020cv629.3.2020
30.3.2020cv7 + zad231.3.2020cv7 + zad22.4.2020cv7 + zad2
6.4.2020cv8 + konzutácia zad27.4.2020cv8 + konzutácia zad29.4.2020SAMOŠTÚDIUM
13.4.2020SVIATOK14.4.2020cv916.4.2020cv8 + konzutácia zad219.4.2020
20.4.2020cv921.4.2020cv1023.4.2020cv9
27.4.2020cv1028.4.2020cv11 + zad330.4.2020cv10
4.5.2020cv11 + zad35.5.2020cv12 + konzutácia zad37.5.2020cv11 + zad3
11.5.2020cv12 + konzutácia zad312.5.2020UČÍ SA AKO V PIATOK14.5.2020cv12 + konzutácia zad317.5.2020

Java

Maven

Vývojové prostredie

Intellij IDEA

Literatúra

OOP
Java
Spring Boot