Programovanie (1) v C/C++
1-INF-127, ZS 2024/25
Zimný semester, skúška
Odporúčame tiež si preštudovať pravidlá predmetu.
Obsah
Termíny, prihlasovanie
Boli zverejnené predbežné termíny skúšok
- piatok 20.12. 13:10 predtermín (koná sa len pri dostatočnom záujme, viď nižšie)
- štvrtok 9.1. 13:00 riadny termín
- štvrtok 23.1. 9:00 riadny termín alebo prvý opravný termín
- piatok 31.1. 9:00 prvý opravný alebo druhý opravný termín
- koncom skúškového ešte bude v prípade potreby druhý opravný termín
Prihlasovanie
- Na termín skúšky sa prihlasujte v AIS/Votr
- Na termín sa prihlasujte / odhlasujte najneskôr 24 hodín pred začiatkom termínu
- Prihlasujte sa čím skôr, termíny majú limitovanú kapacitu
- Na predtermín 20.12. sa treba prihlásiť aspoň týždeň dopredu, do piatku 13.12. 13:10. Ak na predtermín 20.12. nebude prihlásených aspoň 10 študentov, predtermín sa nebude konať
- Opravnú písomku môžete na tomto predmete písať aj po skúške
- Celkovo budú iba uvedené štyri termíny plus prípadný predtermín. Každý sa môže zúčastniť na najviac troch z nich, ďalšie termíny neplánujeme pridávať
Ak zistíte konflikt našej skúšky s hromadnou skúškou alebo písomkou iného predmetu, dajte nám vedieť čím skôr. Na poslednú chvíľu už nedokážeme nájsť riešenie.
Základné pokyny
- Prineste si ISIC a index, písacie potreby na písanie pracovných poznámok, ťahák v rozsahu jedného listu A4. Žiadne ďalšie pomôcky nie sú povolené.
- Stretávame sa vždy desať minút pred začiatkom skúšky pred počítačovou miestnosťou, kde sa dozviete pokyny a rozsadenie
- Skúška: 2 hodiny práca pri počítačoch
- Za špeciálnych pravidiel môže byť čas predĺžený o 30 minút, viď pravidlá nižšie
- Počas skúšky vám nebudeme pomáhať hľadať chyby vo vašom programe. Môžete sa však spýtať na nejasnosti v zadaní. Dajte nám tiež vedieť v prípade technických problémov alebo ak si myslíte, že v zadaní / kostre / vstupoch je chyba.
Po skúške
- Po skúške vyučujúci obodujú vaše programy. Výsledky nájdete na testovači, známky v AIS.
- Ak máte výhrady k prideleným bodom, kontaktujte vyučujúcich najneskôr do týždňa po skúške.
- Spravidla na druhý deň po skúške bude vyhradený čas, kedy môžete prísť si dať zapísať známku do indexu a tiež sa porozprávať o tom, čo ste mali v programe dobre alebo zle.
- Na takéto stretnutie odporúčame prísť aj tým, ktorí skúšku nespravili. Môžeme vám poradiť, ako postupovať na opravnom termíne.
- Ak chcete iba zapísať známku, index môžete poslať aj po spolužiakovi alebo prísť po inom termíne skúšky. Známky však zapisujeme iba v časoch na to určených, nie keď zrovna idete okolo. Známku si potrebujete dať do indexu zapísať najneskôr do konca skúškového.
- Ak niekto skúšku ukončí v dostatočnom predstihu pred koncom 2-hodinovej doby skúšky a priebeh skúšky to umožní, skúšajúci môžu jeho programy obodovať už počas skúšky a priamo aj udeliť známku a zapísať ju do indexu.
Technické detaily
- Skúška bude v Linuxe, rovnaké prostredie ako na cvičeniach
- Odovzdávanie prostredníctvom špeciálnej verzie testovača
- Okrem testovača nebude k dispozícii internet
- Budete používať špeciálne skúškové konto, takže nebudete mať k dispozícii žiadne svoje súbory alebo nastavenia
- Pri reštarte počítača sa stratia všetky súbory, používajte testovač ako zálohu (odovzdajte aj nedokončený program)
- Môžete použiť Kate, valgrind, Netbeans, ale aj iné nástroje, ktoré bežia v Linuxe v učebniach a nepotrebujú internet. Prípadné problémy s použitím iného softvéru vám však nebudeme pomáhať riešiť
- Nebudeme používať SVGdraw
- Môžete používať aj črty C/C++, ktoré sme nebrali. Používajte len štandardné súčasti jazyka. Vaše programy by mali fungovať na testovači bez zvláštnych nastavení kompilátora a pod.
- Odporúčame používať iba tie časti jazyka, s ktorými máte dostatočné skúsenosti. Príkazy, ktoré si nepamätáte, si dajte na ťahák.
Opravné termíny
- Opakovanie skúšky sa riadi študijným poriadkom fakulty. Máte nárok na dva opravné termíny (ale len v rámci termínov, ktoré sme určili).
- Ak po skúške pri počítači máte nárok na známku E alebo lepšiu, ale chceli by ste si známku ešte opraviť, musíte sa dohodnúť so skúšajúcimi pred zapísaním známky do indexu.
- Ak po skúške pri počítači píšete opravnú písomku, je potrebné prísť zapísať známku v termíne určenom vyučujúcimi.
- Ak sa zo závažných dôvodov (napr. zdravotných, alebo konflikt s inou skúškou) nemôžete zúčastniť termínu skúšky alebo písomky, dajte o tom vyučujúcim vedieť čím skôr.
Príklady
Na skúške budete riešiť dva príklady za rovnaký počet bodov
Prvý príklad
- V prvom príklade budete mať za úlohu samostatne napísať celý program, ktorý rieši zadanú úlohu. Typicky bude treba načítať dáta, spracovať ich a vypísať výsledok.
- V tomto príklade môžete použiť ľubovoľný postup.
- Budú však zakázané polia pevných veľkostí. Polia alokujte dynamicky cez new, alebo použite štruktúry, ktoré menia veľkosť podľa potreby (napr. string, vector). Alokovanú pamäť odalokujte.
- Predtým ako začnete programovať, si poriadne rozmyslite, aké dátové štruktúry (polia, matice, struct-y a pod.) chcete v programe použiť.
Druhý príklad
- V druhom príklade dostanete kostru programu, pričom vašou úlohou bude doprogramovať niektoré funkcie.
- V tomto príklade môžete mať v zadaní predpísaný spôsob, ako máte niektoré časti naprogramovať.
- Budú sa vyžadovať aj zložitejšie časti učiva, ako napríklad zoznamy, stromy a rekurzia.
Hodnotenie
Aby ste mali šancu úspešne ukončiť predmet, aspoň jeden z príkladov vám musí prejsť všetky testy na testovači
- Túto podmienku nebudeme považovať za splnenú, ak váš program nerieši zadanú úlohu (t.j. jeho myšlienka nie je v zásade správna)
- Podmienku však považujeme za splnenú, ak váš program prejde všetky vstupy, má v zásade správnu myšlienku, ale nedostane plný počet bodov napríklad kvôli chýbajúcemu uvoľneniu pamäte, statickým poliam, menšej chybe, ktorá sa neprejavila na daných vstupoch a pod.
- Dobre si rozmyslite, s ktorým príkladom chcete začať a snažte sa ho dokončiť, kým nedostanete OK na testovači. Potom ho môžete ešte vylepšovať alebo sa snažiť vyriešiť aspoň časť príkladu, ktorý ste ešte neriešili.
Bodové hodnotenie
- V prvom rade budeme hodnotiť správnosť myšlienky vášho programu. Predtým, ako začnete programovať, si dobre prečítajte zadanie a rozmyslite, ako budete úlohu riešiť.
- Ďalej je veľmi dôležité, aby sa program dal skompilovať (v štandardnom prostredí) a aby správne fungoval na všetkých vstupoch spĺňajúcich podmienky v zadaní.
- V druhej úlohe budeme jednotlivé funkcie hodnotiť zvlášť, takže môžete získať čiastočné body, ak ste niekoľko funkcií napísali správne.
- Na hodnotenie môže mať menší vplyv aj úprava a štýl programu (komentáre, mená premenných, odsadzovanie, členenie dlhšieho programu na funkcie,...)
- Na tejto skúške nezáleží na rýchlosti vášho programu. Radšej napíšte jednoduchý, prehľadný a hlavne správny pomalší program, než rýchlejší, ale zbytočne zložitý, či nesprávny.
Predĺženie času
- Ak v riadnom čase 2 hodiny nemáte na testovači OK ani z jedného príkladu, zo skúšky by ste mali dostať Fx.
- Dovolíme vám však predĺžiť čas skúšky o najviac 30 minút.
- Ak zostanete na predĺženie, budeme vám rátať do výsledku body iba z jedného príkladu. Konkrétne z toho, za ktorý ste dostali OK na testovači (ak z oboch, tak z toho, za ktorý ste mali OK skôr)
Ukážkové príklady na skúšku pri počítači
Niektoré ukážkové príklady na skúšku budú k dispozícii na testovači, môžete si ich v rámci tréningu vyriešiť a odovzdať. Pre realistickejší tréning si vždy prečítajte zadanie tesne predtým, ako príklad začnete riešiť, aby ste odhadli, koľko času vám príklad zaberie vrátane čítania zadania a rozmýšľania nad riešením.
Špeciálne pravidlá pre predtermín
- Na predtermín sa v AIS da prihlásiť / odhlásiť najneskôr týždeň vopred, po tomto termíne iba pri závažných okolnostiach emailom B. Brejovej.
- Ak sa zúčastňujete predtermínu, body za tréningové príklady môžete dostať iba ak ich vyriešite do 20.12. 23:55. (toto neplatí, ak po predtermíne ešte idete na opravný termín skúšky)
- Výsledky oznámime najneskôr v pondelok 23.12., ale známky do indexov budeme zapisovať až v januári po prvom riadnom termíne. Prípadné reklamácie bodov alebo známok z predtermínu nám dajte vedieť najneskôr do 7.1.
- Počas predtermínu spravidla nebudeme zapisovať známky do indexov (ani pri skoršom odovzdaní), vzhľadom na to, že nebude ukončené vyhodnotenie poslednej DÚ, DÚ pre pokročilých a tréningových príkladov.