Programování v jazyce C++

V semestru podzim 2019 je předmět vypisován pouze v omezeném režimu a je určen primárně pro studenty, kteří předmět opakují z důvodu neúspěchu. Změny v organizaci související s omezeným režimem jsou vyznačeny červeně. Počínaje semestrem jaro 2020 bude předmět vypisován pouze v jarních semestrech.

Základní informace

Cílem předmětu je seznámit studenty se základy moderního C++ podle standardu C++14. Absolvent kurzu by měl být schopen ovládat syntax C++, používat prostředky standardní knihovny, rozumět principům správy zdrojů v C++ a principům objektově orientovaného programování s přihlédnutím k jeho implementaci v C++.

Výuka v semestru podzim 2019 je organizována ve speciálním režimu určeném primárně pro opakující studenty. Přednášky ani cvičení se nekonají. Místo přednášek budou ve studijních materiálech zveřejněny videozáznamy z minulého roku. Místo cvičení budou probíhat konzultace (oficiálně vypsány jako jediná seminární skupina v ISu).

Sedmý týden semestru se bude konat vnitrosemestrální písemka. Přesný termín konání písemky bude oznámen na diskusním fóru nejméně dva týdny předem. Z vnitrosemestrální písemky je možno získat maximálně 20 bodů.

Místo účasti na cvičení budou studenti řešit týdenní miniúkoly. Tyto miniúkoly budou zveřejněny vždy začátkem týdne a odevzdávat se budou koncem následujícího týdne. Úkolů bude celkem 10, hodnoceny budou 3 body za úkol. Za miniúkoly je tedy možno získat maximálně 30 bodů za semestr.

Koncem semestru se bude řešit zápočtový příklad. Přesný termín konání zápočtového příkladu bude oznámen na diskusním fóru nejméně dva týdny předem. Studenti budou muset v časovém limitu (cca hodina) vypracovat řešení zadaného příkladu. Tento příklad se neboduje, hodnotí se pouze stylem ANO/NE. Pro neúspěšné bude začátkem zkouškového období vypsán náhradní termín zápočtu.

Kromě miniúkolů studenti v průběhu semestru řeší celkem čtyři domácí úlohy. Tyto úlohy budou mít vždy určený deadline, do nějž musí být odevzdány. Za každou úlohu je možno získat až 15 bodů, celkem tedy 60 bodů. Systém bodování a odevzdávání úloh je podrobněji vysvětlen níže.

Kromě čtyř domácích úloh bude v průběhu semestru zadána ještě pátá bonusová úloha. Smyslem této úlohy je dát možnost doplnění bodů pro účely zápočtu, případně pro zlepšení výsledné známky. Tuto úlohu bude možné odevzdávat celý semestr (od okamžiku zadání zhruba v polovině semestru) včetně zkouškového. Pro účely získání zápočtu je ovšem třeba bonusovou úlohu odevzdat minimálně týden před zkouškovým termínem. Vylepšení známky funguje i zpětně, ovšem kromě známky F, ta se pátou úlohou zpětně vylepšit nedá.

Závěrečná zkouška se koná ve zkouškovém období a je za ni možno získat maximálně 80 bodů. Zkouška probíhá písemnou formou, podobně jako vnitrosemestrální písemka. Nutnou podmínkou k umožnění účasti na zkoušce je úspěšné získání zápočtu.

Kromě výše zmíněných tzv. tvrdých bodů je možno v průběhu semestru získávat i tzv. měkké body za bonusová rozšíření domácích úkolů, upozornění na chyby apod. Tyto měkké body se nepočítají do limitu bodů pro zápočet, resp. pro úspěšné ukončení předmětu, mohou tedy pouze vylepšovat výslednou známku.

Bodové hodnocení

Zápočet je udělen za splnění následujících podmínek:

K úspěšnému složení zkoušky je třeba získat v součtu (miniúkoly + úlohy + vnitro + zkouška) alespoň 95 tvrdých bodů. Hodnocení známkou se pak počítá podle součtu měkkých a tvrdých bodů takto:

Odevzdávání a bodování úkolů

Týdenní miniúkoly i velké domácí úlohy se odevzdávají prostřednictvím systému kontr, přičemž odevzdané soubory musí být uloženy ve studentově repozitáři na fakultním serveru GitLab. Více o použití kontru a fakultního GitLabu se můžete dočíst v sekci Návody.

Pravidla

Bodování

Týdenní miniúkoly jsou kontrem hodnoceny automaticky max. 3 body. Počet odevzdání miniúkolů je omezen na maximálně tři pokusy.

Řešení velkých domácích úloh procházejí nejdříve automatizovanými testy kontru. Studenti mají šest pokusů (poslední dva ovšem s penalizací, viz níže) pro odevzdání řešení. Nerozlišujeme odevzdání naostro a odevzdání nanečisto. Existuje pouze jeden druh odevzdání. Pokud se však při odevzdání stane, že se testy vůbec nezkompilují, toto odevzdání se nepočítá do výše uvedeného limitu. I přesto silně doporučujeme psát si vlastní testy a zkusit si vše nejprve zkompilovat (ideálně na stroji aisa). Nadměrné zatěžování kontru opakovanými odevzdáními kódu, který se s testy nezkompiluje, může být penalizováno ztrátou bodů.

Kromě hodnocení kontrem jsou úkoly hodnoceny opravujícími, a to i v případě, že hodnocení kontrem není za plný počet bodů. V případě, že student nezískal od kontru plný počet bodů, ale přitom mu ještě zbývají nějaká odevzdání, nemusí čekat na kontrolu opravujícím, ale může odevzdat znovu. Opravující má na opravu maximálně týden od posledního odevzdání. Opravující hodnotí zejména kvalitu kódu a dodržování zásad na škále 0 až 3 body. Pokud není kvalita kódu dostatečná (méně než 3 body), ale přitom student od kontru získal plný počet bodů za testy, má student možnost jednou své odevzdání opravit bez ztráty bodů za počet odevzdání, pokud bude řešení funkční.

Pokud student začne odevzdávat řešení dostatečně brzo před finálním deadline, získá další body navíc (viz níže).

Domácí úlohy jsou celkem hodnoceny max. 15 body, které jsou rozděleny takto:

Následující tabulka shrnuje celý systém bodování:

Body od kontru 0–7 podle testů v kontru zapíše kontr automaticky
Body za kvalitu kódu 0–3 podle kvality kódu a dodržení zásad (omezeno shora dle bodů od kontru) zapíše opravující
Body za počet odevzdání 3 | 2,5 | 1,5 | 0 | -50% | -75% podle počtu odevzdání (procentuální položky se počítají ze součtu bodů od kontru a za kvalitu); pro kladné body je třeba mít 7 bodů od kontru a alespoň 2 body za kvalitu kódu zapíše kontr automaticky (po skončení odevzdávání; penalizace za 5. a 6. odevzdání se zapisuje rovnou)
Body za včasné odevzdání p krát (body od kontru + body za kvalitu), kde p je 0,2 | 0,15 | 0,1 | 0,05 | 0 podle toho, kdy bylo provedeno první nenulové odevzdání zapíše kontr automaticky (po skončení odevzdávání)

Jednotlivé domácí úlohy mohou toto bodování upravit ve svém zadání. Toto se bude zejména týkat bonusové domácí úlohy.

poslední změna: 2019-09-02 15:23