Programovanie (1) v C/C++
1-INF-127, ZS 2024/25

Úvod · Pravidlá · Prednášky · Softvér · Testovač
· Kontaktujte nás pomocou e-mailovej adresy E-prg.png (bude odpovedať ten z nás, kto má príslušnú otázku na starosti alebo kto má práve čas).
· Prosíme študentov, aby si pravidelne čítali e-maily na @uniba.sk adrese alebo aby si tieto emaily preposielali na adresu, ktorú pravidelne čítajú.


Zimný semester, skúška

Z Programovanie
Verzia z 22:03, 10. december 2019, ktorú vytvoril Brona (diskusia | príspevky)
Skočit na navigaci Skočit na vyhledávání


Odporúčame tiež si preštudovať pravidlá predmetu.

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.