Informácie k odovzdávaniu úloh na kontrolu Nové
V mnohých cvičeniach ku kurzom na sieti je možnosť odovzdať vypracované úlohy podľa zadania a nechať si ich skontrolovať, čím sa potom sprístupní stiahnutie certifikátu. Pozrime sa, ako si možno kód najprv vyskúšať a potom odovzdať na kontrolu na server:
🔍 1 - Ako to funguje
Všetko si ukážeme na prvej úlohe zo základov programovania v Jave. Princíp je potom úplne rovnaký pre všetky jazyky. Úloha vždy obsahuje zadanie s ukážkami obrazovky programu, teda presne, čo má urobiť so vstupmi, ktoré mu sú zadané:
Ak u nás študujete rekvalifikáciu, váš referent uvidí, ako sa vám darí plnenie úloh a prípadne vám môže ďalej poradiť.
Zadanie úlohy vyzerá napríklad takto:
Jednoduchý príklad
Vytvorte program, ktorý si na vstupe nechá zadať meno používateľa a potom jeho vlastnosť. Nakoniec vypíše "meno je vlastnosť", viď obrázok.
Ukážka obrazovky programu:
Vlastnosti Ahoj, ako sa voláš? Bill Gates Aký si? hustodémonicky bohatý Bill Gates je hustodémonicky bohatý
Predpripravený kód
Pod úlohou je následne online editor kódu s pripravenou šablónou kódu, do ktorej sa má program vypracovať:
📜 2 - Práca s predpripraveným kódom
Pozrime sa, ako sa s predpripraveným kódom pracuje:
Pod úlohou je online editor kódu s pripravenou šablónou kódu, do ktorej sa má program vypracovať:
Kód zapísaný do online editoru sa odošle na špeciálny server s bežiacim prostredím pre daný jazyk. Tam je potom niekoľkokrát spustený v rámci rôznych testov, ktoré mu odovzdávajú vstupy a kontrolujú, či vypisuje výstup podľa zadania. Celé to môžeme chápať tak, že si robotický používateľ na serveri program spustí a zadá doň všetko, čo by malo byť potrebné.
🌟 3 - Špeciálne typy príkladov
Nižšie nasledujú ukážky špeciálnych typov príkladov, s ktorými sa v kurze stretnete.
Príklady s variabilným počtom vstupov
Pri niektorých komplexnejších príkladoch server s bežiacim prostredím pre daný jazyk nedokáže takýto kód správne spracovať. Takéto cvičenia možno potom iba odovzdať na kontrolu. Vo videu nižšie je podrobný návod, ako takýto príklad správne odovzdať:
Príklady, ktoré nemajú možnosť odovzdania
Pri niektorých cvičeniach možnosť odovzdať kód chýba. Je tomu tak najčastejšie z dôvodu, že cvičenie je pomerne komplexné. Server s bežiacim prostredím pre daný jazyk nemusí byť schopný takto náročnej interakcie:
Príklady s viacerými súbormi
Niektoré príklady majú viacero súborov so zdrojovými kódmi. Typicky ide o cvičenia v kurze objektovo orientovaného programovania. Pozrime sa, ako si ľahko online vyskúšať a odovzdať na zhodnotenie riešenie, zložené z viacerých súborov:
🏆 4 - Úspešné odovzdanie príkladov
Pozrime sa, ako vyzerá úspešné odovzdanie príkladov. Testov je vždy niekoľko a spúšťajú sa postupne za sebou:
- Prvý test spustí program a odošle mu presne tie vstupy, ktoré sú ukázané v zadaní.
- Niekoľko ďalších testov odovzdáva programu ďalšie vstupy. Tieto ďalšie testy overujú, či program naozaj funguje a nie je vytvorený tak, aby vedel spracovať len ten jediný vstup, ktorý je práve ukázaný v zadaní. Typicky sa tu overujú ďalšie scenáre, ktoré môžu v programe nastať.
Vo videu taktiež popisujeme, ako zistiť, ktoré úlohy už máme odovzdané, a ktoré zatiaľ nie:
💡 5 - Využitie nápovedy
Ak si nevieme rady pri riešení niektorej úlohy, máme k dispozícii vzorové riešenie. Pozrime sa, ako ho môžeme využiť:
📝 6 - Ukážka testov
Predstavme si konkrétnu úlohu, napríklad už použitú s Billom Gatesom. Táto úloha má dva testy, ktoré robia nasledovné:
Test 1 -
Skús zadať osobu z ukážky
Vidíme, že prvý test už podľa názvu overuje presne ten prípad, ktorý je popísaný v zadaní. Jeho scenár je nasledujúci:
- Skontroluj, či je vypísané:
"Ahoj, ako sa voláš?"
- Zadaj vstup
"Bill Gates"
- Skontroluj, či je vypísané:
"Aký si?"
- Zadaj vstup
"hustodémonicky bohatý"
- Skontroluj, či je vypísané:
"Bill Gates je hustodémonicky bohatý"
Test 2 -
Skús zadať inú osobu
Druhý test potom aplikáciu skúša s ďalšími vstupmi, ktoré vymyslel autor úlohy/testu a vy ich už nepoznáte. Tieto testy sú pomenované tak, aby ste v prípade ich zlyhania tušili, kde je problém. Scenár druhého testu je pri tejto úlohe nasledujúci:
- Skontroluj, či je vypísané:
"Ahoj, ako sa voláš?"
- Zadaj vstup
"Tester Testerovič"
- Skontroluj, či je vypísané:
"Aký si?"
- Zadaj vstup
"relatívne testovateľný"
- Skontroluj, či je vypísané:
"Tester Testerovič je relatívne testovateľný"
Výsledok testov
Ak prebehnú všetky testy, tu tieto dva, považuje sa program za funkčný:
Ak nejaký test neprejde a nedôjde k nejakej kritickej chybe, viď nižšie, je vám potom vypísaný názov tohto testu, napr.:
"Skús zadať osobu z ukážky"
alebo
"Skús zadať inú osobu"
Je potom vidieť, či sa robotickému používateľovi na serveri nepodarilo program spustiť ani pre hodnoty zo zadania, alebo či ste niečo zabudli ošetriť a program padne, keď sa mu zadá niečo špecifické. Pri prvom teste podľa ukážky zo zadania je vždy navyše presne vidieť, akú časť jeho scenára sa nepodarilo spustiť.
✗ Zle
Tu konkrétne na obrázku test hovorí, že našiel výstup:
Konzolová aplikácia
Ahoj,ako sa volas
✓ Správne
A v zadaní je pritom:
Konzolová aplikácia
Ahoj, ako sa voláš?
🔧 7 - Najčastejšie chyby a ich oprava
Pozrime sa teraz, ako využiť informácie, ktoré nám chybový výstup poskytuje.
Preklep
Častou chybou je preklep v texte, prípadne nesprávna interpunkcia:
Desatinné čísla
Problémy spôsobujú aj desatinné čísla. Poriadnu neplechu vie narobiť napríklad desatinná čiarka namiesto bodky:
Medzery
Správny počet medzier býva častým zdrojom problémov:
Odriadkovanie
Častou chybou je nevenovanie pozornosti zadaniu pri odriadkovaní textu alebo pri načítaní premenných:
Ďalšie problémy pri odovzdávaní
Ak váš program neprejde, je to z 99% preto, že nespĺňa zadanie. V chybovom hlásení je vždy umiestnená informácia o tom, ako ďalej postupovať, prečítajte si ju celú. Najčastejšie problémy sú tieto.
Iné texty vo výstupe
Vy ste v roli programátora a dostali ste od zákazníka zadanie, kde je presne uvedené:
- Kedy sa má čo vypísať
- Kedy sa má čo zadať
Ak vypíšete napr. namiesto "Zadaj číslo:"
napr.
"Zadajte číslo"
, test neprejde. Zadanie je potrebné
splniť presne na znaky, toleruje sa len diakritika a veľké/malé písmená.
Interpunkcia však musí byť dodržaná a slová samozrejme tiež.
Chybné čakanie na vstup
Programu sa vždy odošlú vstupy presne podľa zadania. Ak napr. vyžaduje 2 čísla a vy načítate vo svojom programe potom ešte tretie alebo tam umiestnite niečo ako "Zadaj čokoľvek pre ukončenie programu", táto hodnota už nikdy zadaná nebude a program zostane na serveri čakať, kým nie je násilne ukončený.
Zacyklenie
Podobné zaseknutie môže nastať, ak sa program zacyklí v nekonečnej slučke. V závislosti od povahy zaseknutia programu server buď program dokáže násilne ukončiť sám, o čom získate informáciu, alebo ho zabije až služba nad ním, čo vyústi do všeobecnejšej hlášky.