Hodnocení předmětu

Vnitrosemestrální povinnosti

Pro získání známky je nutno splnit vnitrosemestrální povinnosti. Splnění těchto podmínek ještě nestačí na úspěšné ukončení předmětu, nesplnění však bude hodnoceno známkou X.

Podmínky

Nutným požadavkem pro úspěšné ukončení předmětu zkouškou nebo zápočtem je splnění všech následujících podmínek:

  • Nanejvýše 2 absence ze cvičení bez řádné omluvy vložené studijním oddělením.

  • Alespoň 330 bodů z odpovědníků a domácích úkolů.

  • Alespoň 4 domácí úkoly s kladným hodnocením.

    Tuto podmínku lze splnit i šestým bonusovým úkolem.

  • Alespoň jeden průchod zkouškovým drilem s úspěšností nejméně 90 %.

Odpovědníky ze cvičení jsou popsané v dokumentu Cvičení, domácí úkoly v dokumentu Domácí úkoly.

Zkouškový dril

Cílem drilu je ukázat studentům ještě před zkouškou, na kterých oblastech musí více zapracovat. Pro odpovědník s drilem platí tyto podmínky:

  • V odpovědníku je 20 otázek, na které lze odpovědět pouze Ano nebo Ne.

  • Na vypracování je 10 minut času.

  • Počet průchodů je neomezený.

    Dril lze skládat i po splnění podmínky pro další procvičování.

  • Odpovědník lze vypracovávat kdykoliv od zveřejnění. Vypracování není vázáno na cvičení.

  • Pro úspěšné splnění je nutno správně odpovědět na alespoň 90 % (18) otázek.

Ukončení předmětu zkouškou

Podmínky

Pro úspěšné ukončení předmětu zkouškou je nutno splnit všechny následující podmínky:

  • Splnění vnitrosemestrálních povinností.

  • Úspěšné složení praktické části zkoušky.

    Ta se skládá z testu minimálních znalostí a programovacího příkladu.

  • Vypracování závěrečného testu v teoretické části zkoušky.

  • Alespoň 380 bodů z celého semestru v součtu s hodnocením teoretického zkušebního termínu.

Body z neúspěšného pokusu o složení zkoušky se do dalšího pokusu nijakým způsobem nezapočítávají.

Praktická část

Praktická část zkoušky se skládá ze dvou podčástí, a to testu minimálních znalostí a programovacího příkladu. Obě části probíhají ve stejném termínu.

  • Řádný termín

    Datum řádného termínu bude znám ve 4. týdnu semestru

    Vypracovaný programovací úkol se hodnotí v diskusi s cvičícími skupiny. Proto bude řádný termín probíhat hromadně ve dnech, pro které studijní oddělení rezervuje učebny, a studenti budou na tyto termíny přihlášeni automaticky s ohledem na časové vytížení cvičících.

  • Opravné termíny

    K dispozici budou i opravné termíny. Studenti, kteří se řádného termínu nezúčastní bez omluvy na studijním oddělení, mohou tyto termíny využít i jako řádné, formálně se však vzdají práva dvou opravných termínů.

  • Náhradní termíny

    Studentům, kteří se řádného termínu neúčastní a absenci budou mít řádně omluvenou na studijním oddělení, bude umožněno složit praktickou část v náhradním řádném termínu.

  • Hodnocení

    Z této části se žádné body neudělují, hodnocení je pouze splněno nebo nesplněno.

Klauzule o formálním vzdávání se opravných termínů existuje pro případ, že nebude možné z různých důvodů vypsat více než tři termíny (nedostatek učeben, opravujících, atd.). Pokusíme se vypsat více termínů, pokud to bude třeba, ale nelze to garantovat.

Praktická část: Test minimálních znalostí

Cílem testu je ověřit minimální znalosti, které se očekávají od úspěšných absolventů předmětu.

  • Odpovědník lze vypracovat pouze na fakultním počítači v učebně.

  • V odpovědníku bude 5 otázek s více možnostmi, přičemž je vždy právě jedna správná.

  • Na vypracování bude 10 minut času.

  • Pro úspěšné splnění je nutno správně odpovědět na alespoň 3 otázky.

Studenti, kteří test nesplní, jsou automaticky hodnoceni nevyhovujícím stupněm a druhé části praktické zkoušky se neúčastní.

Praktická část: Programovací příklad

Vypracování programovacího příkladu probíhá ihned po úspěšném složení testu znalostí. Příklad na řádném termínu hodnotí obvykle cvičící skupiny daného studenta nebo studentky.

  • Příklad lze vypracovat pouze na fakultním počítači v omezeném zkouškovém prostředí.

  • Před začátkem bude vyhrazeno 5 minut na přečtení zadání. Po tuto dobu bude zakázáno programovat.

  • Na vypracování příkladu bude 80 minut čistého času.

  • Výsledek programovací části závisí od diskuse s cvičícím, která proběhne po odevzdání řešení.

  • První neúspěšná diskuse nebude hodnocená. Netýká se nesplnění odpovědníku ani odchodu před diskusí.

Při vypracování příkladu je:

  • Povoleno používat manuálové stránky a dokumentaci jazyka C.

    Budou k dispozici offline na počítači.

  • Povoleno používat materiály z přednášek.

  • Zakázáno používat online materiály.

  • Zakázáno používat cizí kódy, a to včetně vzorových řešení domácích úkolů a cvičení.

  • Zakázáno spolupracovat na řešení s jinými osobami, nehledě na způsob komunikace.

  • Zakázáno používat mobilní telefony nebo jiné komunikační prostředky.

Fatální chyby

Jádrem předmětu je práce se zdroji, tedy pamětí a soubory. Tyto koncepty proto představují nutné (ale ne postačující) minimum pro splnění praktického termínu. Následující přehled popisuje oblasti, ve kterých i jediná chyba bude znamenat bezpodmínečné nesplnění praktické části zkoušky.

  • Alokace paměti

    Jak se liší obsah paměti alokovaný malloc() a calloc()? Jaké parametry mají tyto funkce? Jaký je význam návratové hodnoty? Za jakých okolností selžou? Kdy není nutno selhání kontrolovat?

  • Realokace paměti

    Co dělá funkce realloc()? Jaký je význam její návratové hodnoty? Za jakých okolností lze garantovat, že uspěje? Pokud máme na blok jediný platný ukazatel ptr typu T, co je špatně na příkazu tvaru ptr = realloc(ptr, /* new memory block size */);?

  • Uvolňování paměti

    Program musí na konci uvolnit všechnu alokovanou paměť.

  • Variable Length Array

    Proč je použití této konstrukce místo explicitní alokace špatně?

  • Práce se soubory

    Jak lze otevřít a zavřít soubor? Jak se ze souboru čte? Jak se do něj zapisuje? Kdy lze předpokládat, že se otevření souboru povede? Lze někdy kontrolu otevření souboru vynechat?

Pozor na implikaci!

Neplatí, že řešení, které se chyb ve výše uvedených konceptech nedopustí, bude automaticky úspěšně obhájeno.

Minimalistické nebo velmi nekompletní řešení, příliš mnoho jiných chyb, nebo výrazné nedostatky ve znalostech odhalené při diskusi, mohou být důvodem pro neúspěšné hodnocení.

Praktická část: Diskuse

Studentům, kteří po vypracování příkladu odejdou bez diskuse s cvičícími, bude z praktické části uděleno hodnocení „nesplněno“.

Po vypracování příkladu budou studenti postupně diskutovat svoje řešení s opravujícími. Pro řádný termín to budou pravděpodobně cvičící skupiny.

Při diskusi se může od studentů požadovat prokázání následujících znalostí nebo schopností:

  • Vysvětlení použitého algoritmu, konstrukce nebo funkce v kódu.

  • Práce se zdroji (paměť, soubory).

  • Úprava části programu i nad rámec zadání.

  • Ukázka ladění, zejména pokud řešení nefunguje podle zadání.

Pokud opravující při diskusi nebude schopen s jistotou rozhodnout o výsledném hodnocení, může se zeptat i na řešení některého odevzdaného řešení domácího úkolu.

Teoretická část

  • Test lze vypracovat pouze na fakultním počítači v omezeném zkouškovém prostředí.

  • Zkouškový test bude obsahovat 35 náhodně vybraných otázek.

  • Na vypracování bude 80 minut čistého času.

Test bude obsahovat tři kategorie otázek. Každá kategorie bude na samostatné straně testovacího odpovědníku; návrat na předchozí strany bude povolen.

Bodování otázek ( +N za správnou odpověď, 0 za žádnou a -N za špatnou) bude následující:

Teoretické znalosti I
  • 15 otázek, celkem za 30 bodů

  • +2 b 0 b -2 b

  • Otázky s více možnostmi, vždy pouze jedna správná.

Teoretické znalosti II
  • 15 otázek, celkem za 45 bodů

  • +3 b 0 b -3 b

  • Otázky s více možnostmi, vždy pouze jedna správná.

Prakticky zaměřené otázky
  • 5 otázek, celkem za 25 bodů

  • +5 b 0 b -5 b

  • Otázky s ukázkami kódu s více možnostmi. Vždy bude alespoň jedna správná.

    V tomto typu otázky může být i více správných odpovědí.

  • Hodnocení otázky bude přibližně poměrně rozděleno mezi odpovědi, lze tedy získat i část bodů.

Ukončení předmětu zápočtem

Pro úspěšné ukončení předmětu zápočtem je nutno splnit všechny následující podmínky:

Podmínky semestrových povinností je nutno splnit v celém rozsahu, včetně zkouškového drilu, a to i přesto, že se teoretická část zkoušky při ukončení zápočtem neskládá.

Bodování

Body ze semestru

Typ Rozložení Součet

domácí úkoly (bez bonusů za rozšíření)

5 × 100 bodů

500 bodů

bonusový domácí úkol

100 bodů

odpovědníky z přednášky

10 × 6 bodů

60 bodů

bonusové body (KontrCoins)

0 - 20 bodů

body k zápočtu (mezisoučet)

≥ 660 bodů

závěrečný zkouškový test

100 bodů

celkový počet bodů

≥ 760 bodů

Známky

Pokud splníte podmínky pro zkouškový termín, pak se známka určí ze součtu

  • celkového počtu bodů ze semestru,

  • počtu bodů z posledního úspěšného zkouškového termínu,

  • bodů z přepočtených KontrCoins.

Podmínky Zkouška Zápočet

≥ 540 bodů

A

Z

≥ 500 bodů

B

≥ 460 bodů

C

≥ 420 bodů

D

≥ 380 bodů

E

< 380 bodů

F

nesplněné vnitrosemestrální povinnosti

X