Chybovník

Chyby v programu a jeho zdrojovém kódu

Kód Označení chyby Stručný popis Ztráta
— Chyby neslučitelné se získáním zápočtu —
P001 Nezpochybnitelně prokázané plagiátorství Student beze vší pochybnosti odevzdal program, který vznikl funkčně nepodstatnou úpravou programu jiného studenta nebo veřejně dostupného na Internetu. Plagiátorství bylo prokázáno kontrolním systémem, vizuální kontrolou nebo cílenými dotazy ke struktuře zdrojového kódu. -70
P002 Rušení činnosti automatického odevzdávacího a kontrolního systému Program svojí činností záměrně narušuje správnou funkci automatického odevzdávacího a kontrolního systému na serveru amos.fav.zcu.cz, případně úmyslně poškozuje práce ostatních studentů (také tím, že server úmyslně přetěžuje). -70
P003 Program pouze předstírá požadovanou činnost Program neobsahuje algoritmy řešící zadaný problém, pouze předstírá požadovanou činnost, např. výpisem řešení pro jeden konkrétní příklad vstupu. -70
P004* Program nevykonává zadanou činnost Program žádným způsobem neřeší zadaný problém. Zajištění jeho správné činnosti by vyžadovalo zásadní a rozsáhlé úpravy zdrojového kódu, které však nebyly autorem provedeny. -70
— Velmi závažné chyby —
P101 Podezření z plagiátorství Program se nápadně podobá dílu jiného studenta nebo programu, který je k dispozici na Internetu. Autor se dostaví osobně k pohovoru. (osobně)
P102* Systematické neuvolňování paměti Nikde v programu se neuvolňuje alokovaná paměť. Autor nezná základní vlastnosti jazyka C a mylně předpokládá přítomnost Garbage Collectoru. -20
— Závažné chyby —
P201 Chybí dokumentační komentáře V hlavičkových souborech nejsou u prototypů funkcí a definic datových typů zapsány dokumentační komentáře (pro nástroj Doxygen nebo podobný). Chybou je také umístit tyto komentáře jen do .c souborů (protože ty mohou být při případné distribuci knihovny přeložené do binární podoby). -10
P202 Neadekvátně dlouhý běh programu Program pracuje sice správně, ale tak dlouho, že je zřejmé, že byl zvolen naprosto nevhodný algoritmus řešení problému. -10
P203 Nevhodná nebo nedostatečná dekompozice programu Program není vhodně rozdělen do funkcí a samostatných překladových modulů. Program je příliš monolitický. Není dodržena koncepce "Single Responsibility Principle", tzn. že každý překladový modul (resp. i funkce) se stará pouze o jednu dedikovanou konkrétní část funkcionality programu – jednoduše řečeno modul či funkce se nemá starat o několik věcí najednou. -10
P204 Nesprávné použití pointerů V programu se vyskytují konstrukce, kde je nesprávně použitý pointer, tj. pokusy o alokaci/uvolnění statických oblastí paměti, zbytečné sekvence získávání adresy a dereference, ztráta reference dynamické proměnné, apod. -8
P205 Nevhodný algoritmus V programu se objevuje nevhodný (většinou příliš složitý) postup řešení nějakého dílčího problému. Při řádném provedení analýzy problému by autor takový přístup jistě nepoužil. -8
P206 Nestandardní či potenciálně nebezpečné konstrukce V programu se objevují konstrukce, které sice nejsou vyloženě syntakticky chybné, ale program komplikují, znepřehledňují, případně činí ještě méně bezpečným, než už beztak program v jazyce C je. Jedná se například o bezdůvodné či příliš složité přetypovávání (např. konverze ne/znaménkových celočíselných typů, která může vést k přetečení, typicky size_t a int), bezdůvodné narušování typové kontroly, úmyslné využívání chyb a nedostatků překladače, apod. -8
P207 Výkonný kód v headeru V headeru (souboru .h) se vyskytuje výkonný kód programu, tj. těla funkcí či deklarační příkazy, nikoliv pouze definice a prototypy. -10
P208 Vkládání výkonného kódu namísto headeru Pomocí makra preprocesoru #include je vložen zdrojový text s výkonným kódem, tj. soubor .c. -10
P209* Syntaktická chyba Ve zdrojovém kódu programu se vyskytuje syntaktická chyba, která znemožňuje překlad. Autor programu, odevzdaného v tomto stavu, ignoruje nejen varování, ale i chybová hlášení překladače – taková praxe je zcela nepřijatelná. -10
P210 Významová chyba Ve zdrojovém kódu programu se vyskytuje konstrukce, která je sice syntakticky správně, a proto jí překladač neindikuje jako chybu, ale která má jiný význam, než autor programu zamýšlel. -8
P211 Neošetřené argumenty programu Program nijak neověřuje počet a/nebo správnost zadaných argumentů na příkazové řádce. Pokud jsou to např. soubory, pokouší se je otevírat, aniž by se přesvědčil, zda existují, apod. -8
P212 Neošetřené argumenty funkce Po vstupu do podprogramu se nijak neověřuje, zda hodnoty předaných argumentů jsou smysluplné a lze s nimi provádět následné operace uvnitř podprogramu. -8
P213 Úmyslné využívání vedlejších efektů funkcí Funkce programu modifikuje globální proměnné, které jí nebyly předány jako parametry odkazem (prostřednictvím ukazatele), tedy vytváří tzv. vedlejší efekt (side effect). -8
— Méně závažné chyby —
P301 Magická čísla V programu se vyskytují přímo zapsané číselné konstanty nejasného původu a účelu. Často slouží jako "opravné koeficienty" nesprávného výpočtu. Nejsou definovány na jediném místě ve zdrojovém kódu (např. pomocí příkazu preprocesoru #define nebo deklaračního modifikátoru const). -5
P302 Zcela chybějící* nebo nesprávně napsaný Makefile Makefile chybí úplně nebo není funkční, případně je závislý na použitém vývojovém či operačním prostředí. Pravidla jsou zapsaná tak, že při změně jediného zdrojového souboru je nutné překládat celý zdrojový kód projektu (tj. např. jediné dlouhé pravidlo pro výsledný spustitelný soubor, které má v závislostech všechny zdrojové soubory). -5
P303 Nesystematický zápis jazyka Stejné konstrukce jsou zapsány pokaždé trochu jinak (např. if(i > 10) ... oproti if␣(i > 10) ...), program není zapsán jednotným programátorským stylem. Např. také když jsou víceslovné identifikátory někde psány stylem camelCase a někde s podtržítky (mojeFunkce vs moje_funkce). -4
P304 Používání nesrozumitelných zkratkovitých konstrukcí V programu se objevují např. operátory in-/dekrementace v přiřazovacích příkazech, operátor postupného vyhodnocení (čárka), vícenásobně zanořený ternární rozhodovací operátor, apod. -5
P305 Obtížně čitelný zdrojový kód Program je zapsán tak, že je jeho čtení velmi obtížné. Zdrojový kód je nepřehledný a neuspořádaný. -5
P306 Málo komentářů V programu se vyskytují komenáře jen velmi zřídka – složité a nejasné konstrukce nejsou komentovány nebo jsou komentovány nedostatčně nebo jen někdy. -5
P307 Nevhodné pojmenování identifikátorů Identifikátory v programu jsou nesrozumitelné – není z nich jasné, co daná proměnná nebo struktura znamená – nebo zavádějící (jejich význam je jiný, než naznačuje název), případně jsou to přímo nesmysly. -5
P308 Málo obecný algoritmus Použitý algoritmus sice nějak problém řeší, ale není dostatečně obecný. V případě např. většího množství dat by selhal (typicky je tato chyba indikována v případě, že se pracuje s daty, u nichž nelze predikovat velikost, a přitom je použit statický přístup). -5
P309 Program není multiplatformní Zatímco v některém z operačních prostředí, použitých k testování, funguje program bez závad, v ostatních tomu tak není. -5
P310 Nadužívání globálních proměnných V programu jsou zbytečně deklarovány málo bezpečné globální proměnné, ačkoliv by v dané situaci k zamýšlené činnosti bylo možné využít předávání lokálních proměnných mezi volanými funkcemi jako jejich argumentů. -5
— Drobné chyby —
P401 Příliš "hustý" zápis zdrojového kódu Program je zapsán s nedostatečným množstvím mezer, tabulátorů a odsazení. -2
P402 Bezdůvodné použití extern Modifikátor extern je použit v situaci, kdy symbol není skutečně externí, tj. není připojen linkerem z jiného přeloženého modulu (knihovny). -2
P403 Nekvalitní výstup Výstup práce je sice formálně správný, ale není dostatečně kvalitní (např. není správně formátovaný, v hlášeních programu jsou gramatické chyby, překlepy, apod., výsledné obrázky/grafy mají nízké rozlišení, atp.). -2
P404 Nesrozumitelné komentáře Komentáře, které se v program vyskytují, jeho pochopení neusnadňují, ale naopak komplikují. -2

Chyby označené * jsou eliminovány automatickým odevzdávacím a kontrolním systémem, a proto by se v pracích, které byly odevzdané předepsaným způsobem pomocí uploadu na server, neměly vůbec vyskytovat. Jsou zde uvedeny jen pro úplnost a pro případné hodnocení individuálně odevzdávaných semestrálních prací (nestandardní zadání).

Chyby dokumentace


Kód Označení chyby Stručný popis Ztráta
— Typografické chyby a problémy s úpravou —
D101 Podtrhávání V dokumentaci se objevuje podtržení nadpisů nebo úseků textu, které mají být vysázeny zvýrazňovacím řezem. -1
D102 Odchylky od normy V dokumentaci např. chybí mezery za interpunkčními znaménky, z vnějšku závorek, neslabičné předložky nejsou svázány s následujícími slovy pevnou mezerou, nezvládnutá sazba kalendářního data, apod. -2
D103 Řeky, absence dělení slov V dokumentu se vyskytují řeky – většinou z důvodů nepoužití dělení slov. -2
D104 Chybí zvýrazňování V dokumentaci jsou názvy souborů, klávesové zkratky, příkazy programovacího jazyka, atp. v souvislém textu sázeny stejným řezem písma jako ostatní text. -2
D105 Chybí číslování stránek Stránky v dokumentu nejsou očíslované, případně jsou očíslované nesmyslně. -2
D106 Číslo stránky na titulce Na titulní straně je číslo stránky. -1
D107 Nevhodná úprava titulky Titulní strana není vhodně typograficky upravena, chybí podstatné údaje, apod. -1
D108 Nevhodný font V dokumentaci je použit font, který zásadním způsobem negativně ovlivňuje její čitelnost (např. fonty kaligrafické, ozdobné, destrukční, nebo i jen bezpatkový font pro odstavcový text). -4
D109 Nesystematická práce s fontem V dokumentaci je bez zjevného důvodu měněn font nebo je použit nevhodný pro daný úsek textu nebo je použito mnoho fontů současně. -1
D110 Problematické vložené objekty Do textu jsou nesprávným způsobem vloženy objekty (obrázky, tabulky, apod.), které "vyčnívají" přes okraje textu, případně způsobují různě velký proklad bezprostředně sousedících řádek nebo podobné problémy. -2
— Technické chyby —
D201* Nevhodný formát dokumentace Dokument není ve vhodném formátu pro elektronické publikování, tj. není to PDF nebo PS. -2
D202 Nevhodný formát vložených obrázků Dokument obsahuje obrázky, které jsou v příliš nízkém rozlišení nebo jsou rastrové, ačkoliv obsahují grafiku v podstatě vektorového charakteru. -2
D203 Nesprávná hierarchie obsahu V obsahu dokumentace se vyskytují bloky nižší úrovně, aniž by byly součástí bloků vyšší úrovně. Jednoduše řečeno, v číslech oddílů se objevuje 0. -2
D204 Nesprávně provedené citace zdrojů V dokumentu jsou části textu nebo obrázky, jejichž autorem není autor dokumentu, a přitom nejsou správně (nebo vůbec) označeny jako citace, není uveden vůbec nebo je uveden nesprávně zdroj původního textu či obrázku, původní autor nebo další náležitosti. -5
D205 Nesprávně provedená sazba vzorců Matematické vzorce, které se v dokumentu vyskytují, jsou vysázeny výrazně hůře, než to dovoluje použitý nástroj. Typicky je to třeba situace, kdy je ve vzorečku použita hvězdička ('*') jako symbol násobení (přitom v běžně používané matematické notaci hvězdička znamená konvoluci dvou funkcí). -2
— Gramatické a stylistické chyby —
D301 Překlepy V dokumentaci se vyskytují překlepy, ačkoliv je možné použít spell-checker a takových chyb se vyvarovat. -2
D302 Nesrozumitelný text Z textu (nebo jeho částí) není ani při opakovaném čtení jasné, co chce autor sdělit. Čtenář se neorientuje ve struktuře sdělení. Sdělení jsou nekonzistentní, navzájem si odporují, autor uvádí neznámé termíny, apod. -5
D303 Hrubé gramatické chyby Dokument obsahuje hrubé gramatické chyby, např. nezvládnutou shodu podmětu s přísudkem, chyby ve valenci, konjugaci či deklinaci, chyby v psaní měkkých a tvrdých i/y, atp. -3
D304 Čeština pláče V dokumentu se vyskytují podivné novotvary ("zasejvovat", "uploadnout") nebo přímo patvary a zkomoleniny, které naše krásná řeč nezná (naštěstí). -2
— Obsahové chyby —
D401 Faktické chyby V dokumentu se vyskytují nepravdivá tvrzení (např. že velikost integeru jsou 2 byte, apod.) nebo tvrzení, která jsou v rozporu se skutečností danou podobou zdrojového kódu práce, tj. že něco jiného je napsáno v dokumentaci a něco jiného je opravdu naprogramováno. -5
D402 Nevhodná nebo chybějící analýza úlohy V dokumentaci není řádně provedena analýza úlohy, chybí některé její podstatné části, problémy nejsou správně identifikovány, rozhodnutí nejsou správně zdůvodněna. -5
D403 Nevhodný nebo chybějící popis implementace V dokumentaci není řádně popsán postup implementace odevzdané práce. Uvědomte si, že podle popisu implementace by měl být jiný programátor schopen Vaši práci např. upravit, doplnit o nové funkce, atp. -5
D404 Nevhodný nebo chybějící uživatelský manuál V dokumentaci není řádně popsán postup překladu, instalace, spouštění programu a jeho výstupy, ovládání, prostě činnost z pohledu uživatele. -5
D405 Nevhodný nebo chybějící úvod/závěr V dokumentaci není řádný úvod a/nebo závěr. Chybí např. zhodnocení dosažených výsledků, atd. -3
D406 Nevhodný rozsah dokumentace Dokumentace je příliš krátká. Nemá předepsaný minimální počet stránek původního textu. -3
D407 Chybí obrázky Technický dokument bez obrázků je podezřelý – grafické vyjádření řešení problému je nezbytnou součástí dokumentace. -2
D408 Nevhodné formulace V dokumentu se objevují výrazy zavádějící, netechnické, v daném kontextu nesprávné, apod. Příkladem může být např. nazývání funkcí metodami (ty jsou jen v objektově orientovaném programování). -2