4. diel - Využitie umelej inteligencie pri štúdiu programovania Nové
V minulej lekcii Java kurzu, Premenné a typový systém v Jave, sme si ukázali základné dátové
typy, boli to int
, String
a double
.
V tomto tutoriále sa naučíme využívať AI pri štúdiu programovania. Ukážeme si, ako pomocou umelej inteligencie lepšie pochopiť zložité koncepty a zrýchliť riešenie úloh, na ktorých bežne trávime veľa času.
Využitie AI pri štúdiu programovania
Učenie sa programovania môže byť občas náročné. Budeme sa stretávať s množstvom nových konceptov a nezvyčajných problémov. Dnešná doba nám však poskytuje AI nástroje, ktoré nám prácu aj štúdium veľmi uľahčia. Stačí sa ich naučiť správne používať. Nerozumieme nejakej téme? ChatGPT nám danú problematiku na základe našich otázok znovu vysvetlí a pomôže nám si danú tému osvojiť. Zasekli sme sa na nejakej úlohe? Nástroj Canvas ju s nami rozoberie av prípade potreby odporučí ďalší postup, opraví chyby a podobne. Strávili sme hodinu lúštením nášho kódu, aby sme nakoniec zistili, že celý problém zapríčinila chýbajúca zátvorka? Nie sme prví ani poslední – toto je skutočne viac ako bežné. Keď si osvojíme používanie AI nástrojov, bude riešenie podobných problémov otázkou niekoľkých sekúnd.
AI je nápomocná v mnohých ďalších oblastiach. Ako ju správne využívať sa učíme v kurzoch Umelá inteligencia.
Potrebuješ poradiť? ChatGPT ti pomôže rýchlejšie ako lektor
Skvelým parťákom, nielen pri štúdiu, pre nás bude najmä ChatGPT. Zrozumiteľne nám vysvetlí zložitejšiu látku, prediskutuje s nami náročnejšie koncepty a dokáže navrhnúť aj riešenie technických problémov v našom počítači. Pre študentov našich rekvalifikačných kurzov sú samozrejme k dispozícii konzultácie s lektormi.
Vo väčšine prípadov však môžeme náš problém či otázku vyriešiť s pomocou ChatGPT oveľa rýchlejšie a rovnako efektívne ako s lektorom.
ChatGPT je k dispozícii prostredníctvom mobilnej aplikácie, alebo online na adrese chatgpt.com. V riešení problémov vie byť naozaj vynaliezavý a opýtať sa ho môžeme prakticky na čokoľvek:

Pri komunikácii s chatbotom sa dozvieme množstvo zaujímavých informácií a pochopíme aj zložité koncepty, ktorých je v programovaní mnoho:

Môžeme sa napríklad opýtať na látku, ktorá nám nie je jasná a potrebovali by sme ju dovysvetliť:
Vysvetli, na čo sa používa v Jave abstraktná trieda.
Odpoveď od ChatGPT
V Jave sa abstraktná trieda používa na definovanie základnej štruktúry a správania, ktoré zdieľajú všetky podtriedy, ale zároveň obsahuje metódy, ktoré môžu alebo musia byť implementované v týchto podtriedach.
Kľúčové vlastnosti abstraktnej triedy:
- Nemôže byť inštanciovaná – nemožno vytvoriť objekt priamo z abstraktnej triedy.
- Môže obsahovať abstraktné aj neabstraktné metódy – abstraktné metódy nemajú telo a ich implementáciu musia poskytnúť podtriedy.
- Môže mať atribúty a konštruktory – na rozdiel od rozhrania môže abstraktná trieda obsahovať inštančné premenné a konštruktory.
- Slúži ako základná trieda - často sa používa pre dedičnosť, kedy definuje spoločné vlastnosti pre viac podtried.
Kedy použiť abstraktnú triedu namiesto rozhrania?
Chceme zdieľať kód medzi podtriedami – abstraktná trieda môže obsahovať už implementované metódy. Potrebujeme atribúty alebo konštruktory – rozhranie ich nemôže obsahovať. Vieme, že triedy majú spoločný základ – napríklad pri modelovaní hierarchie objektov.
Príklad použitia:
// Abstraktní třída Zvíře abstract class Zvire { String jmeno; // Konstruktor public Zvire(String jmeno) { this.jmeno = jmeno; } // Abstraktní metoda – musí být implementována v podtřídě abstract void udelejZvuk(); // Normální metoda – může být volána přímo public void vypisJmeno() { System.out.println("Jmenuji se " + jmeno); } } // Podtřída Pes, která dědí z abstraktní třídy class Pes extends Zvire { public Pes(String jmeno) { super(jmeno); } // Implementace abstraktní metody @Override void udelejZvuk() { System.out.println("Haf haf!"); } } public class Main { public static void main(String[] args) { Pes mujPes = new Pes("Rex"); mujPes.vypisJmeno(); // Výstup: Jmenuji se Rex mujPes.udelejZvuk(); // Výstup: Haf haf! } }
V tomto príklade:
Zvire je abstraktná trieda, pretože všetky zvieratá majú nejaké meno a vydávajú zvuk (ale zvuk je pre každé zviera iný).
udelejZvuk()
je abstraktná metóda, ktorú každé zviera implementuje inak.vypisJmeno()
je bežná metóda, ktorú môžu podtriedy používať bez zmeny.Pes
dedí odZvire
a implementuje metóduudelejZvuk()
.Abstraktné triedy teda pomáhajú vytvárať organizovaný a prehľadný kód pri modelovaní objektových vzťahov. 🚀
Vysvetli, čo je interface v Jave, na čo sa používa v praxi, a uveď jednoduchý príklad s kódom.
Odpoveď od ChatGPT
V Jave je interface (rozhranie) špeciálny typ referencie, ktorý slúži ako zmluva: definuje, aké metódy musí trieda implementovať, ale neurčuje ich konkrétne správanie (implementáciu).
Používa sa, keď chceš:
- Definovať jednotné rozhranie pre viac tried, ktoré sa môžu správať rôzne.
- Dosiahnuť polymorfizmu – umožňuje pracovať s rôznymi objektmi rovnakým spôsobom.
- Oddeliť návrh od implementácie – interface hovorí čo, nie ako.
🧠 Predstav si:
Máš aplikáciu, ktorá pracuje s rôznymi platobnými metódami - kartou, prevodom, kryptomenou. Každá funguje inak, ale všetky majú metódu
zaplat()
.✅ Interface definuje:
public interface Platba { void zaplat(double castka); }
🛠️ Implementácia rozhrania:
public class PlatbaKartou implements Platba { public void zaplat(double castka) { System.out.println("Placení kartou: " + castka + " Kč"); } }
public class PlatbaPrevodem implements Platba { public void zaplat(double castka) { System.out.println("Placení převodem: " + castka + " Kč"); } }
Použitie v praxi:
public class Obchod { public void provedPlatbu(Platba platba, double castka) { platba.zaplat(castka); } public static void main(String[] args) { Obchod obchod = new Obchod(); Platba kartou = new PlatbaKartou(); Platba prevodem = new PlatbaPrevodem(); obchod.provedPlatbu(kartou, 500); obchod.provedPlatbu(prevodem, 1200); } }
✅ Výstup:
Konzolová aplikácia Placení kartou: 500.0 Kč Placení převodem: 1200.0 Kč
Zhrnutie:
Interface = zmluva, aké metódy má trieda mať. Neobsahuje implementáciu, len definícia metód. Pomáha s modularitou, testovateľnosťou a rozšíriteľnosťou aplikácie.
Chceš aj ukážku s predvolenými metódami v interface?8)
Nefunguje ti kód? Vyskúšaj nástroj ChatGPT Canvas
Pri práci s ChatGPT je možné využiť rozšírenie Canvas, ktoré ponúka okrem iného aj rozhranie pre interaktívnu prácu s kódom. Na rozdiel od bežného chatovacieho okna umožňuje organizovať odpovede a návrhy kódu do blokov, čo je ideálne pre zložitejšie úlohy, ako je návrh architektúry aplikácie alebo ladenie rozsiahlejších projektov. Vďaka vizuálnemu usporiadaniu je možné lepšie sledovať jednotlivé kroky návrhu, experimentovať s rôznymi prístupmi a ľahko sa vracať k predchádzajúcim verziám riešenia. Nástroj spustíme tlačidlom Canvas v menu ChatGPT, ktoré sa nám otvorí po kliknutí na tri bodky v chatovacom okne:

Teraz chatbotu odovzdáme náš kód a začneme na ňom pracovať:
import java.util.Scanner; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in, "Windows-1250"); System.out.println("Zadej své jméno: "); String jmeno = scanner.nextLine(); if ((jmeno.length()>3)||(jmeno.length()<10)) System.out.println("Máš moc krátké nebo moc dlouhé jméno!"); else System.out.println("Normální jméno."); } }
Nástroj nám sám vyhľadá a opraví v kóde chyby:

Pri správne zadanom prompte môžeme jednoducho doplniť v našom kóde chýbajúcu funkcionalitu:
Pridaj do kódu validáciu vstupu. Chcem, aby nešlo zadať prázdne meno..<>

GitHub Copilot - Pomocník priamo v tvojom IDE
GitHub Copilot je AI asistent vyvinutý spoločnosťami GitHub a OpenAI. V IntelliJ IDEA je k dispozícii ako plugin, ktorý je schopný navrhovať doplnenie v našom kóde, generovať kód podľa zadania či hľadať a opravovať chyby.
Inštalácia pluginu
Pre využitie GitHub Copilot v IntelliJ IDEA je nutné ho najskôr nainštalovať. V ľavom hornom rohu IDE vyberieme možnosť File, kde kliknutím na položku Settings otvoríme okno s nastavením:

V otvorenom menu zvolíme záložku Plugins a kliknutím na tlačidlo Marketplace otvoríme výber pluginov na stiahnutie:

Do vyhľadávacieho poľa zadáme GitHub Copilot a plugin nainštalujeme kliknutím na tlačidlo Install:

Po dokončení inštalácie budeme vyzvaní na reštartovanie IntelliJ IDEA a následne na prihlásenie k nášmu GitHub účtu.
V prípade, že ešte nemáme účet na GitHub, založíme si ho podľa postupu v lekcii Verzovací nástroj Git a IntelliJ IDEA.
Práca s GitHub Copilot
Akonáhle je Copilot aktívny, začne v reálnom čase generovať návrhy na doplnenie kódu. Pokiaľ začneme písať metódu, Copilot sa pokúsi navrhnúť jej logiku. Pri práci s triedami alebo cyklami dokáže generovať celé bloky kódu. Vie sa dokonca učiť z nášho štýlu kódovania a prispôsobiť mu svoje návrhy. Navrhovaný kód potvrdíme stlačením klávesy TAB:

Okrem automatického doplňovania kódu ponúka GitHub Copilot aj chatovacie rozhranie, ktoré umožňuje klásť otázky, získavať vysvetlenie ku kódu alebo generovať celé bloky kódu na základe zadania. V IntelliJ IDEA je chat dostupný po kliknutí na ikonu Copilot Chat v pravom bočnom paneli. Do otvoreného okna môžeme zadať prompt, napríklad na vygenerovanie triedy s funkciou na výpočet kvadratickej rovnice:

Po odoslaní promptu nám GitHub Copilot poskytne hotový kód, ktorý je možné pomocou dvoch tlačidiel v pravom hornom rohu skopírovať alebo priamo vložiť do nášho kódu:

Okrem výberu AI modelu nám ešte chatovacie rozhranie poskytuje možnosť pripojiť konkrétny súbor pomocou ikony +. To je užitočné napríklad pri hľadaní chýb alebo optimalizácii kódu v rámci určitého súboru.
V našom prípade sme pripojili súbor Main.java
a zadali prompt
na nájdenie chýb. Dostali sme nasledujúcu odpoveď s návrhmi opráv:

Claude Artifacts
Chatbotov, ako je ChatGPT, je k dispozícii viac. Medzi ďalšie obľúbené patrí Claude. Podobne ako ChatGPT ho môžeme využiť ako pomocníka pri nasledujúcich úkonoch:
- Programovanie – Generovanie a oprava kódu, návrhy algoritmov, vysvetlenie zložitých konceptov.
- Písanie a editácia textu – Pomoc s tvorbou dokumentov, článkov alebo e-mailov.
- Analýza a zhrnutie informácií – Rýchle spracovanie veľkého množstva textu a jeho prevedenie do stručnej a zrozumiteľnej podoby.
- Asistencia pri rozhodovaní – Pomoc s logickým myslením, plánovaním projektov a brainstormingom.

Artifacts sú potom špeciálne výstupy, ktoré Claude generuje oddelene od hlavného chatu, aby boli prehľadné a ľahko dostupné. Nejde o plnohodnotný editor, ale skôr o spôsob, ako štruktúrovane uchovať kód, dokumenty alebo vizualizácie bez straty v dlhom priebehu konverzácie. Napríklad keď si necháme vygenerovať kód, Claude ho automaticky uloží ako Artifact. Môžeme ho potom kedykoľvek otvoriť, zdieľať alebo ďalej rozšíriť. Týmto spôsobom máme dôležité informácie vždy na dosah, bez nutnosti sa k nim zložito vracať.
AI nástroje dokážu výrazne pomôcť pri štúdiu programovania - uľahčujú pochopenie ťažké látky a riešenie náročných úloh. Po dohode so zamestnávateľom ich možno uplatniť aj v praxi, kde môžu šetriť čas a zvyšovať produktivitu. Preto je dôležité sa s nimi naučiť efektívne pracovať a využívať ich potenciál naplno.
V nasledujúcom kvíze, Kvíz - Konzoly a premenné v Jave, si vyskúšame nadobudnuté skúsenosti z predchádzajúcich lekcií.