FINÁLNÍ VÝPRODEJ KREDITŮ na ITnetwork je tady. Využij poslední šanci a získej až 80 % extra kreditů ZDARMA na náš interaktivní e-learning. Zjisti více:
NOVINKA: Kurz kybernetické bezpečnosti s akreditací MŠMT, nyní již od 0 Kč. Staň se žádaným profesionálem. Zjisti více:

Lekce 2 - Využití umělé inteligence při studiu programování

V minulé lekci, Úvod do C# a .NET Frameworku, jsme si řekli něco o jazyce jako takovém a také jsme pochopili, co je to .NET Framework.

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.

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:

Prompt pro ChatGPT - Základní konstrukce jazyka C# .NET

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:

Odpověď ChatGPT na zadaný prompt - Základní konstrukce jazyka C# .NET

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.
Chceš i příklad s dědičností a voláním konstruktoru předka?

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ě:

Zapnutí Canvasu v ChatGPT - Základní konstrukce jazyka C# .NET

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:

Editace kódu v Canvasu - Základní konstrukce jazyka C# .NET

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.

Editace kódu v Canvasu – doplnění funkcionality - Základní konstrukce jazyka C# .NET

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.

Shrnutí lekce

AI může při studiu programování pomáhat s vysvětlováním složitých témat, hledáním chyb v kódu a návrhy řešení. ChatGPT se hodí hlavně na dotazy a dovysvětlení látky, zatímco Canvas pomáhá přehledně pracovat s kódem, opravami a doplňováním funkcí. AI ale nemá nahrazovat vlastní přemýšlení, protože nejdřív je potřeba zkusit úlohu řešit samostatně. Správně použitá AI šetří čas a usnadňuje učení i běžnou práci programátora.

V příští lekci, Visual Studio a Copilot, si ukážeme práci s Visual Studiem a nainstalujeme si GitHub Copilota.


 

Předchozí článek
Úvod do C# a .NET Frameworku
Všechny články v sekci
Základní konstrukce jazyka C# .NET
Přeskočit článek
(nedoporučujeme)
Visual Studio a Copilot
Článek pro vás napsal Adam Straňovský
Avatar
Uživatelské hodnocení:
179 hlasů
Autor se zabývá výukou a vzděláváním dospělých, zejména v oblasti výpočetní techniky, programování a tvorby webových stránek. Ve volném čase se rád věnuje hudbě a hře na kytaru.
Aktivity