Semestr: letní 2025/26
Přednáška: TBA, TBA (TBA)
Cvičení: TBA, TBA (TBA)
Stránka v SIS: NPRG038
Zakončení: Zkouška a zápočet

Table of contents


[in English] This page contains information for czech students of the Advanced C# Programming course. For english version, switch the language in the page header.

Náplň přednášek

Doporučená literatura

Případně

Náplň cvičení

Informace o zkoušce

Zkouška probíhá primárně písemnou formou, a v každé zkouškové písemce je kolem 6 až 8 otázek (některé obsahují podotázky). U každé otázky, případně podotázky, je dole uvedeno, jaký maximální počet bodů (=N) lze za správně odpovězenou otázku/podotázku získat: N bodů získáte v případě, že je odpověď na otázku správně; 0,5 * N bodu získáte, pokud odpověď není zcela kompletní, ale jinak je správná (tj. nějaká malá část odpovědi chybí nebo je nepřesná); v ostatních případech získáte 0 bodů (tj. pokud v odpovědi chybí větší část, nebo je odpověď na otázku plně nebo i jen z části nesprávná).

Celkem lze z každé písemky získat maximálně 10 bodů. Mapování získaných bodů na výslednou známku je následující:

Body z písemky Výsledná známka
10 – 8,5 1
8 – 6,5 2
6 – 5 3
4.5 – 0 4

Každá zkoušková písemka trvá 150 minut, tj. ideálně 20 minut na každou otázku + 30 minut bezpečnostní rezerva. Písemka bývá většinou opravena ještě ten den. Ve výjimečných případech může být student pozván vysvětlit některé odpovědi nebo odpovědět na doplňující otázky. Tahle nepovinná ústní část je většinou online formou, přes platformu Zoom. Základem hodnocení je ale vždy písemná část, tedy u otázky bez odpovědi nebo se špatnou odpovědí nelze ani po ústní části získat více než 0 bodů.

Níže budou pro ilustraci uvedena zadání vybraných písemek z již proběhlých termínů:

Doplňkové informace o zkoušce

Kromě informací uvedených ve slidech z první přednášky navíc pro zkoušky z NPRG035, NPRG038, a NPRG057 platí následující 2 body:

Modelový příklad 1:

Student X získá na 1. termínu známku 2 a odmítne ji. Na 2. termínu získá známku 3 a odmítne ji. Na 3. termínu získá známku 1. Aktuální stav studenta X: 1. termín = propadlý, 2. termín = propadlý, 3. termín = 1, tj. student X zkoušku splnil s hodnocením 1.

Modelový příklad 2:

Student Y získá na 1. termínu známku 3 a odmítne ji. Na 2. termínu získá známku 4. Aktuální stav studenta Y: 1. termín = propadlý, 2. termín = 4, tj. pokud chce zkoušku splnit, musí student Y přijít na 3. termín. Pokud na 3. termínu opět získá známku 4, tak zkoušku nesplnil.

Modelový příklad 3:

Student Z se nedostaví na 1. termín, na 2. termínu získá známku 3 a odmítne ji, na 3. termínu získá známku 4. Aktuální stav studenta Z: 1. termín = propadlý, 2. termín = propadlý, 3. termín = 4, tj. student Z zkoušku nesplnil.

Informace o zápočtu

Pro získání zápočtu je nutné dvě podmínky:

1. Domácí úkoly

Během semestru bude zadáno několik (10-12) domácích úkolů. Náročnost těchto úkolů se může různit. Za správné vypracování úkolu dostane student značku OK. Pokud se v řešení vyskytnou nějaké problémy (např. chybějící implementace nějaké malé části úkolu), dostane student značku OK-. Naopak, pokud bude řešení velmi kvalitní nebo jinak nadstandardní, dostane student značku OK+. Kladné značky umí odmazávat mínuska u negativních značek. Pro splnění této podmínky je nutné získat alespoň 5 značek OK, z nichž alespoň 2 jsou na téma více-vláknového programování; nebo alespoň 1 na více-vláknové programování a alespoň 1 na dobrovolné pokročilé (extended track) koncepty. Domácí úkoly se hodnotí individuálně. Pokud si nejste celkovým hodnocením jistí (např. máte nemálo značek OK-), zeptejte se svého cvičícího.

Každá další značka OK nad 5 přidává +0.25 bodů ke zkoušce. Bonusové body ke zkoušce se počítají pouze pro první pokus zkoušky.

Domácí úkoly nemají formální specifikaci. Je na zodpovědnosti studenta správně úkolu porozumět ptaním se otázek během cvičení. Domácí úkoly se odevzdávají prostřednictvím MFF GitLabu. Je nutné nahrávat celá řešení (samotné .cs soubory nemusí v některých případech stačit, např. pokud zadání vyžaduje připravení NuGetích balíčků). Často dostanou studenti k dispozici kostru řešení (projekt bez implementace), který si můžou z upstream repositáře merge-nout. Součástí připravených GitLab repozitářů je i automatická pipeline, která otestuje základní vlastnosti řešení (ve smyslu, že je řešení odevzdané, že jde přeložit a že vrací nějaký výstup). Na rozdíl od systému ReCodEx se nejedná o potvrzení správnosti implementace. Je na studentech samotných, aby si řešení rigorózně otestovali.

Upozornění: Domácí úkoly jsou samostatnou prací, jejímž cílem je zhodnotit schopnost studenta samostatně vypracovat složitější program v jazyce C#. Pokud bude zjištěno, že některý student odevzdal cizí řešení (např. několik studentů odevzdalo různé instance stejného řešení některého domácího úkolu, apod.), bude to považováno za pokus o podvod. Všichni takoví studenti nesplní předmět NPRG038 v tomto akademickém roce a případně bude disciplinární komisi UK MFF doporučeno jejich vyloučení ze studia!

2. Zápočtový program

Termíny:

Jeden zápočtový program může být použit pro splnění povinností z vícero předmětů o C#, pokud je program dostatečně rozsáhlý.

Zdrojové kódy musí být ručně psané (nevygenerované) a rozumné, včetně rozumných komentářů.

Zápočtový program vyžaduje rozumné a netriviální použití nějakých technologií probíraných na přednáškách a cvičeních (např. vlastní operátory, variantní rozhraní, delegáti, vlákna, WebAPI, LINQ, reflection, generování kódu).

Osobní předvedení je součástí odevzdání. Na předvádění si připravte několik slides shrnujících hlavní funkce programu, hlavní řešené problémy a nástin architektury.

Uznávání povinností z minulých let

Pokud jste tento předmět měli zapsaný loňský akademický rok a splnili jste pouze některé z povinností potřebných pro udělení zápočtu, může vám je po explicitním požádání (např. při předvádění zápočtového programu) uznat váš letošní cvičící (lze uznat domácí úkoly, odevzdaný a schválený zápočtový program). Téma zápočtového programu (pokud ho ještě nemáte dokončený) nemusí být novým cvičícím uznáno. Pokud jste v loňském roce úspěšně složili zkoušku, ale nepodařilo se vám získat zápočet, lze opět po explicitním požádání požádat o uznání zkoušky. Toto je iniciativa vyučujících tohoto předmětu a nelze ji požadovat po studijním oddělení!