Lekce 4 - Využití umělé inteligence při studiu programování Nové
V minulé lekci C# kurzu, Proměnné, typový systém a parsování v C# .NET, jsme si ukázali základní datové
typy, byly to int
, string
a float
.
V tomto tutoriálu se naučíme využívat AI při studiu programování. Ukážeme si, jak pomocí umělé inteligence lépe pochopit složité koncepty a zrychlit řešení úkolů, na kterých běžně trávíme spoustu času.
Pozor: AI je dobrý pomocník, ale zlý pán! Tato lekce ti ukáže, jak ti AI najde chybu ve tvém kódu nebo jednoduché úlohy vyřeší zcela za tebe. Prvně ale musíš nad úlohou přemýšlet a zkoušet ji sám, než požádáš o pomoc AI. Nebudeš jinak schopný v zaměstnání řešit komplexnější úlohy, se kterými ti AI nepomůže, protože ji nemůžeš poslat celý firemní projekt. Ve svém vlastním zájmu používej AI jen jako pomocníka, když nevíš, jak dál, a již jsi vyplýtval všechny možnosti.
Využití AI při studiu programování
Učení se programování může být občas náročné. Budeme se setkávat se spoustou nových konceptů a nezvyklých problémů. Dnešní doba nám však poskytuje AI nástroje, které nám práci i studium velmi ulehčí. Stačí se je naučit správně používat. Nerozumíme nějakému tématu? ChatGPT nám danou problematiku na základě našich otázek znovu vysvětlí a pomůže nám si dané téma osvojit. Narazili jsme na problém v nějaké úloze? Nástroj Canvas ji s námi rozebere a v případě potřeby doporučí další postup, opraví chyby a podobně. Strávili jsme hodinu luštěním našeho kódu a nakonec jsme zjistili, že celý problém zapříčinila chybějící závorka? Nejsme první ani poslední – toto je skutečně více než běžné. Když si osvojíme používání AI nástrojů, bude řešení podobných problémů otázkou několika sekund.
AI je nápomocná v mnoha dalších oblastech. Jak ji správně využívat, se učíme v kurzech Umělá inteligence.
Potřebuješ poradit? ChatGPT ti pomůže rychleji než lektor
Skvělým parťákem, a to nejen při studiu, pro nás bude zejména ChatGPT. Srozumitelně nám vysvětlí složitější látku, prodiskutuje s námi náročnější koncepty a dokáže navrhnout i řešení technických problémů v našem počítači. Pro studenty našich rekvalifikačních kurzů jsou samozřejmě k dispozici konzultace s lektory.
Ve většině případů však můžeme náš problém či dotaz vyřešit pomocí ChatGPT mnohem rychleji a stejně efektivně jako s lektorem.
ChatGPT je k dispozici prostřednictvím mobilní aplikace nebo online na adrese chatgpt.com. V řešení problémů umí být opravdu vynalézavý a zeptat se ho můžeme prakticky na cokoli:

Při komunikaci s chatbotem se dozvíme spoustu zajímavých informací a pochopíme i složité koncepty, kterých je v programování mnoho:

Můžeme se například zeptat na látku, která nám není jasná a kterou bychom potřebovali dovysvětlit:
Vysvětli, k čemu slouží v C# konstruktor.
Odpověď od ChatGPT
V C# (a obecně v objektově orientovaném programování) konstruktor slouží k inicializaci nově vytvořeného objektu třídy. Jinými slovy, je to speciální metoda, která se automaticky zavolá, když je vytvořen nový objekt pomocí klíčového slova new.
🧱 Základní účel konstruktoru
- Inicializace dat: Nastaví výchozí hodnoty pro proměnné (vlastnosti) objektu.
- Příprava prostředí: Může například otevřít soubor, navázat spojení, ověřit vstupy apod.
- Zajištění konzistence: Konstruktor může zabránit vytvoření neplatného objektu (např. vyžaduje určité parametry).
🛠️ Syntaxe konstruktoru
Konstruktor:
- má stejný název jako třída,
- nemá návratový typ ani void.
Příklad:
public class Osoba { public string Jmeno; public int Vek; // Konstruktor public Osoba(string jmeno, int vek) { Jmeno = jmeno; Vek = vek; } }
Vytvoření objektu:
Osoba osoba = new Osoba("Jan", 30);
🔄 Typy konstruktorů
1. Výchozí konstruktor (bez parametrů):
public Osoba() { Jmeno = "Neznámý"; Vek = 0; }
2. Parametrizovaný konstruktor:
- Použit k zadání hodnot při vytváření objektu (viz příklad výše).
3. Statický konstruktor:
- Slouží k inicializaci statických členů třídy.
class Nastaveni { public static string Verze; static Nastaveni() { Verze = "1.0.0"; } }
Volá se pouze jednou – při prvním použití třídy.
✅ Shrnutí
Konstruktor v C#:
- je speciální metoda volaná při vytvoření objektu,
- slouží k inicializaci proměnných a přípravě objektu,
- může mít více variant (tzv. přetížení),
- zvyšuje bezpečnost a přehlednost kódu.
Dále se můžeme také zeptat na praktické využití určitého konceptu, například dědičnosti:
Vysvětli, co je dědičnost v C#, k čemu se používá v praxi, a uveď jednoduchý příklad s kódem.
Odpověď od ChatGPT
Dědičnost v jazyce C# je klíčový princip objektově orientovaného programování (OOP), který umožňuje vytvářet nové třídy na základě již existujících tříd. Dědičnost podporuje znovupoužitelnost kódu, rozšíření funkcionality a lepší organizaci softwaru.
🔍 Co je dědičnost?
V C# může jedna třída (potomková nebo odvozená třída) dědit vlastnosti a metody jiné třídy (tzv. základní nebo nadřazená třída). Dědičnost je jednostranná – potomková třída přebírá členy základní třídy, nikoli naopak.
Používá se klíčové slovo :
, kterým se určuje, že jedna
třída dědí od jiné.
🎯 K čemu se dědičnost používá?
- Znovupoužití kódu: Sdílení společných vlastností a metod bez nutnosti jejich opakovaného psaní.
- Rozšíření funkcionality: Potomková třída může
přidávat nové vlastnosti nebo přepisovat stávající (pomocí
override
). - Polymorfismus: Umožňuje pracovat s různými typy objektů prostřednictvím jednotného rozhraní.
🧪 Jednoduchý příklad v C#
// Nadřazená třída public class Zviratko { public string Jmeno { get; set; } public void Zvuk() { Console.WriteLine("Dělám obecný zvířecí zvuk."); } } // Potomková třída public class Pes : Zviratko { public void Stekej() { Console.WriteLine("Haf haf!"); } } // Použití ve třídě Program class Program { static void Main(string[] args) { Pes mujPes = new Pes(); mujPes.Jmeno = "Rex"; mujPes.Zvuk(); // Metoda zděděná ze Zviratko mujPes.Stekej(); // Specifická metoda třídy Pes } }
✅ Výstup programu:
Dělám obecný zvířecí zvuk. Haf haf!
🧩 Shrnutí
Dědičnost umožňuje vytvářet hierarchie tříd, kde nižší úrovně
(potomci) přebírají chování vyšších (rodiče). Tento princip dělá kód
modulární, přehlednější a snáze rozšiřitelný. V reálných projektech
se často používá pro modelování vztahů typu "je typem" – například
Auto
je Vozidlo
.
Chceš i příklad s přepisem metody (override
) nebo třeba se
třídou abstract
?
Kvalita odpovědi závisí především na našem dotazu, tzv. promptu. Jak správně strukturovat prompt, se učíme v lekci Vytváříme efektivní prompty pro excelentní výstupy.
Nefunguje ti kód? Vyzkoušej nástroj ChatGPT Canvas
Při práci s ChatGPT lze využít rozšíření Canvas, které nabízí mimo jiné i rozhraní pro interaktivní práci s kódem. Na rozdíl od běžného chatovacího okna umožňuje organizovat odpovědi a návrhy kódu do bloků, což je ideální pro složitější úlohy, jako je návrh architektury aplikace nebo ladění rozsáhlejších projektů. Díky vizuálnímu uspořádání je možné lépe sledovat jednotlivé kroky návrhu, experimentovat s různými přístupy a snadno se vracet k předchozím verzím řešení. Nástroj spustíme tlačítkem Canvas v menu ChatGPT, které se nám otevře po kliknutí na tři tečky v chatovacím okně:

Nyní chatbotu předáme náš kód a začneme na něm pracovat:
Console.Write("Zadej své jméno: "); string jmeno = Console.ReadLine(); if (jmeno.Length <= 3 && jmeno.Length >= 10) { Console.WriteLine("Normální jméno"); } else { Console.WriteLine("Máš moc krátké nebo moc dlouhé jméno!"); } Console.ReadLine();
Nástroj nám v kódu vyhledá a opraví chyby:

Při správně zadaném promptu můžeme v našem kódu jednoduše doplnit chybějící funkcionalitu:
Přidej do kódu validaci vstupu. Chci, aby nešlo zadat prázdné jméno.

GitHub Copilot – Pomocník přímo ve tvém IDE
GitHub Copilot je AI asistent vyvinutý společnostmi GitHub a OpenAI. Ve Visual Studiu je k dispozici jako rozšíření, které je schopné navrhovat doplnění v našem kódu, generovat kód dle zadání či hledat a opravovat chyby.
Pozor: Nepoužívej nástroj Copilot ve svém IDE, protože bez důkladného zvládnutí základů programování se nenaučíš samostatně vytvářet funkční kód a v zaměstnání budeš snadno nahraditelný.
AI nástroje dokážou výrazně pomoci při studiu programování – usnadňují pochopení obtížné látky a řešení náročných úloh. Po dohodě se zaměstnavatelem je lze uplatnit i v praxi, kde mohou šetřit čas a zvyšovat produktivitu. Proto je důležité se s nimi naučit efektivně pracovat a využívat jejich potenciál naplno.
V následujícím kvízu, Kvíz - C# .NET, konzole a proměnné, si vyzkoušíme nabyté zkušenosti z předchozích lekcí.