Simulácia inteligentného domu: automatizácia na základoch OOP

Predmety:

Informatika

Ročníky:

SŠ 4. roč.

Trvanie:
6 vyučovacích hodín

Téma / oblasť:
Objekty – dedičnosť

Tento projekt premení abstraktné princípy programovania na atraktívne riešenia zo sveta inteligentných domácností. Pre učiteľa je to jedinečná príležitosť zažiť, ako sa aj náročnejšie OOP koncepty dokážu stať pre študentov tvorivou výzvou.


Predstavenie projektu

V rámci predmetu programovanie študenti pracujú na projekte, počas ktorého každá skupina vytvorí simulačnú aplikáciu inteligentnej domácnosti, ktorá demonštruje využitie technológií na zefektívnenie a zjednodušenie správy domácnosti. Projekt zahŕňa návrh a implementáciu základných funkcií, ako je správa miestností, ovládanie zariadení a simulácia automatizovaných scenárov. Študenti budú pracovať v tímoch, aplikovať koncepty objektovo orientovaného programovania (OOP), ako sú dedenie, rozhrania a abstraktné triedy, a vytvoria grafické používateľské rozhranie v Jave.

Výsledky svojej práce odprezentujú mladším študentom na hodine programovania, kde predvedú funkcie svojej aplikácie a vysvetlia technológie použité pri jej tvorbe. Cieľom je inšpirovať mladších spolužiakov k tvorivému prístupu a poukázať na praktické využitie programovania v každodennom živote.

Kľúčová otázka:

Ako môžeme pomocou technológií urobiť naše domácnosti inteligentnejšími a efektívnejšími?

Záverečný produkt:

Simulačná aplikácia inteligentnej domácnosti, ktorú študenti odprezentujú mladším študentom

Edukačné ciele: 

  1. Aplikovať pojmy OOP: dedičnosť, abstraktné triedy a rozhrania.
  2. Napísať funkčný Java program, ktorý dokáže spravovať viacero zariadení prostredníctvom CLI a GUI.
  3. Riešiť problémy spojené s kódovaním.

 

Projekt navrhol a realizoval účastník PBL Akadémie (text upravený pre potreby zverejnenia).


Materiály, pomôcky, zdroje

  1. Počítače s prístupom na internet (na vyhľadávanie informácií a obrázkov)
  2. Softvérové nástroje (NetBeans, draw.io)
  3. Prezentačné nástroje (MS PowerPoint, Canva)
  4. Návody na programovanie v Jave (online zdroje)
  5. Príklady OOP konceptov
  6. Formuláre na spätnú väzbu

Krok 1: Oboznámenie sa s projektom

Diskusia o kľúčovej otázke

Oboznámenie sa s cieľmi projektu a podmienkami jeho úspešnej realizácie

Ukážky kvalitnej práce 

  • študenti preskúmajú existujúce riešenia inteligentných domácností

Rozdelenie do pracovných skupín 

  • študenti sa rozdelia do pracovných skupín a dohodnú sa na rozdelení úloh

Krok 2: Úvod do dedičnosti, inštruktáž k používaniu dedičnosti

Úvod do dedičnosti, inštruktáž k používaniu dedičnosti

  • inštruktáž prebieha pre všetkých žiakov súčasne, učiteľ vysvetlí koncept dedičnosti pomocou príkladu v reálnom svete (napr. zvieratá - mačka a pes dedičné vlastnosti z triedy zvieratá) a následne pomocou príkladu v Jave, spoločne so žiakmi vytvorí dve triedy: základnú triedu zvieratá a podtriedu pes, vysvetlí, ako podtrieda pes dedí metódy a vlastnosti zo základnej triedy zvieratá (spať, kŕmiť)

Práca v skupinách

  • študenti pridajú vlastné metódy do podtriedy pes (napr. metódu štekať() na vytvorenie špecifického správania pre psa) a experimentujú s rôznymi spôsobmi prepísania metód zo základnej triedy, ako je prepísanie metódy spí(), aby bola pre psa iná ako pre iné zvieratá
  • následne vytvoria aj ďalšie podtriedy, napríklad Macka, a implementujú vlastné metódy a správanie pre každé zviera.
  • počas práce hľadáme odpoveď na nasledujúce otázky: 

Ako sa trieda môže stať podtriedou a čo to znamená pre jej vlastnosti a metódy?

Prečo je dedičnosť užitočná v programovaní? Aké výhody prináša?

Ako sa vytvára podtrieda v Jave pomocou kľúčového slova extends?

Ako môžem pridať nové metódy alebo prepísať metódy zo základnej triedy v podtriede?

Čo všetko dedí podtrieda zo svojej nadradenej triedy?

Aké metódy môžeme vytvoriť na manipuláciu s dátami v triede (gettery a settery)?

Ako sa využívajú rozhrania a abstraktné triedy v OOP?

 

Materiály, pomôcky, zdroje:

  • počítač s pripojením na internet
  • návody na programovanie v Jave (online aj tlačené zdroje)
  • príklady OOP konceptov

Krok 3: Návrh fungovania systému

Návrh UML diagramu

  • študenti pracujú v skupinách a diskutujú o tom, aké triedy budú potrebné a aké budú ich vzťahy, po diskusii nasleduje vedená diskusia, kde učiteľ pomôže študentom správne navrhnúť triedny diagram
  • skupiny vytvoria UML diagram pomocou nástroja draw.io alebo podobného softvéru

Aké triedy budú potrebné na simuláciu inteligentného domu?

Aké vlastnosti (atribúty) budú mať jednotlivé triedy?

Aké metódy musia triedy obsahovať na zabezpečenie potrebnej funkcionality?

Ako budú jednotlivé triedy medzi sebou komunikovať?

Existujú medzi triedami nejaké dedičné vzťahy?

Aké rozhrania alebo abstraktné triedy môžeme použiť?

Diskusia o návrhu systému

 

Materiály, pomôcky, zdroje:

  • počítače
  • softvérové a prezentačné nástroje (draw.io, Canva)

Krok 4: Návrh dizajnu systému

Návrh GUI

  • študenti v skupinách navrhnú základné používateľské rozhranie na papieri alebo digitálne, nakreslia návrh hlavného rozhrania, ktoré bude obsahovať všetky potrebné ovládacie prvky a indikátory, výstupom bude skica GUI, ktorú budú používať pri programovaní aplikácie

Aké prvky bude obsahovať základné GUI?

Budú potrebné tlačidlá napríklad na ovládanie (zapnutie/vypnutie) svetla?

Potrebujeme indikátory na zobrazenie stavu zariadení (napr. LED indikátor)?

Ako zobrazíme stav senzora a lampy používateľovi?

Kde umiestnime jednotlivé prvky, aby bolo rozhranie prehľadné a intuitívne?

Aké farby použijeme, aby rozhranie pôsobilo príjemne a prehľadne?

Potrebujeme viacero okien alebo postačí jedno hlavné okno?

Diskusia o návrhu systému

 

Materiály, pomôcky, zdroje:

  • počítače s pripojením na internet
  • vývojové prostredie NetBeans
  • návody na programovanie v Jave (online aj tlačené zdroje)

Krok 5: Práca na základných triedach

Práca na základných triedach

  • skupiny implementujú základné triedy, napríklad vytvoria triedy ako Lamp, Sensor a Controller v Jave
  • po implementácii základných metód (napr. turnOn(), turnOff()) otestujú tieto metódy a zabezpečia ich správnu funkčnosť

Ako začať s programovaním základných tried?

Aké triedy a metódy musíme najskôr implementovať, aby začala fungovať základná funkcionalita?

Ako vytvoriť základné triedy a nastaviť ich atribúty?

Ako implementovať základné metódy ako napriklad turnOn(), turnOff() alebo detectMotion()?

Aké typy dát budú používané (boolean pre stav svetla, integer pre čas alebo stav senzora)?

Potrebujeme nejaké testovacie metódy pre triedy, aby sme overili ich funkčnosť?

Aké problémy môžu nastať pri implementácii základných tried?

Ako zvládnuť dedičnosť medzi triedami (napr. ak existuje základná trieda, ktorá má spoločné atribúty pre svetlá a senzory)?

Ako správne implementovať metódy, aby medzi triedami prebiehala správna interakcia?

Ako sa vyhnúť zbytočnému duplikovaniu kódu pri implementácii podobných metód pre rôzne objekty?

 

Materiály, pomôcky, zdroje:

  • počítač s pripojením na internet 

Krok 6: Implementácia GUI

Implementácia GUI

  • skupiny vytvoria základné GUI s tlačidlami a indikátormi v Java Swing, implementácia GUI bude zahŕňať akcie pre tlačidlá (napr. zapnúť/vypnúť svetlo) a zobrazenie stavu senzora, po dokončení základného GUI žiaci pripoja akcie z tlačidiel k metódam v triedach (napr. turnOn(), turnOff())
  • dôležité otázky pre túto fázu projektu: 

Ako navrhnúť GUI v Jave?

Aké komponenty GUI budeme potrebovať na ovládanie svetiel a senzora?

Ako implementovať tlačidlá pre zapínanie a vypínanie svetiel?

Ako zobrazíme stav zariadení, ako je LED indikátor pre svetlá?

Aké grafické komponenty použijeme na zobrazenie stavu senzora (napr. zelená/červená farba pre aktivitu detekcie)?

Aké interakcie budú potrebné, aby používateľ mohol jednoducho ovládať aplikáciu?

Ako zabezpečiť funkčnosť GUI?

Ako pripojíme akcie (ako kliknutie na tlačidlo) k metódam, ktoré ovládajú svetlá a senzory?

Ako testovať a overovať, že interakcie s GUI spúšťajú správne akcie?

Aké výzvy môžu nastať pri spájaní GUI a implementácie tried, a ako ich môžeme vyriešiť?

 

Materiály, pomôcky, zdroje:

  • počítač s pripojením na internet 

Krok 7: Testovanie aplikácie a hodnotenia aplikácií iných skupín

image

Vzájomné testovanie aplikácií 

  • skupiny si navzájom testujú svoje aplikácie, vytvoria checklist funkčnosti a dávajú si spätnú väzbu

Diskusia o silných a slabých stránkach

Spoločné hodnotenie dodržania nastavených podmienok projektu

 

Materiály, pomôcky, zdroje:

  • počítač s pripojením na internet 

Krok 8: Prezentácia výsledkov

image

Prezentácia aplikácií

  • skupiny prezentujú svoje aplikácie mladším študentom
  • odpovedajú na doplnkové otázky publika

 

Materiály, pomôcky, zdroje:

  • počítače
  • prezentačné nástroje (MS PowerPoint, Canva)

Krok 9: Reflexia a hodnotenie projektu

Vyplnenie formulárov k reflexii

Čo som sa naučil/a?

Čo bolo pre mňa najzaujímavejšie/najťažšie/najľahšie?

Ako by som zhodnotil/a svoju prácu a prácu mojej skupine na projekte?

 

Materiály, pomôcky, zdroje:

  • formulár na spätnú väzbu

Zverejnené 6.4.2026 | Posledná zmena 6.4.2026

Autor

Projekt navrhol a zrealizoval účastník PBL Akadémie. Text bol ďalej upravený pre potreby zverejnenia.