Přednáška: Čtvrtek, 12:20, N1 (Pavel Ježek)
Cvičení:
Úterý, 9:00, SW2 (Jan Pacovský)
Úterý, 10:40, SW2 (Jan Pacovský)
Úterý, 12:20, SU2 (Filip Kliber)
Úterý, 17:20, SW2 (Jan Pacovský)
Středa, 10:40, SW2 (Martin Blicha)
Středa, 14:00, N11 (Filip Kliber)
Středa, 12:20, SW2 (Pavel Ježek)
Stránka v SIS: NPRG035
Zakončení: Zkouška a zápočet
Table of contents
- Náplň přednášek
- Náplň cvičení
- Informace o zkoušce
- Informace o zápočtu
- Uznávání povinností z minulých let
[in English] This page contains information for Czech students of the Programming in C# Language course. For english, switch the language in the page header.
Náplň přednášek
1. přednáška
- Představení předmětu, zkouška
- Rozdíly v reprezentaci proměnných v paměti v jazycích Python, C++ a C#
- Rozdíly referenčních a hodnotových typů, předávání argumentů hodnotou
- Paměťový overhead u referenčních typů, třída
Type
record (class)
,record struct
Doporučená literatura
- Mark Michaelis with Eric Lippert: Essential C# 5.0, Addison-Wesley, 2013 (lze koupit např. na Amazon UK)
- Jeffrey Richter: CLR via C# (4th Edition), Microsoft Press, December 2012 (lze koupit např. na Amazon UK)
- Jon Skeet: C# in Depth (3rd Edition), Manning Publications, September 2013 (lze koupit např. na Amazon UK)
- blog Erica Lipperta (bývalý člen C# týmu v Microsoftu): Fabulous Adventures In Coding
- C# Language Specification 7.0
Případně
- Christian Nagel, Evjen, Jay Glynn, Karli Watson, Morgan Skinner: Professional C# 4.0 and .NET 4, Wrox, John Wiley & Sons, March 2010 (lze koupit např. na Amazon UK
Náplň cvičení
1. Cvičení
- Informace o předmětu, podmínky získáni zápočtu (k dispozici na této stránce)
- Připomenutí práce s Visual Studio (2019)
- Vyrobení projektu (.NET Framework / .NET Core), struktura projektu
- Konfigurace projektu, Intellisense, Bloková selekce, Dokumentační komentáře, Odsazení
- Překlad, Spuštění, Debugging (základy)
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. Po písemné části následuje ústní část, kde zkoušející se studentem prochází jeho písemku, a případně nepřesností/nejasností u některých odpovědí se ptá na doplňující otázky — na základě toho je určeno finální bodové hodnocení každé otázky. 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ů:
- 13.1.2023 (PDF)
- 9.1.2023 (PDF)
- 16.1.2019 (PDF) [příloha zadání (dokumentace List<T>.RemoveAt)]
- 16.1.2018 (PDF) [příloha zadání (dokumentace List<T>.Insert)]
- 25.1.2017 (PDF)
- 1.2.2016 (PDF)
- 27.1.2016 (PDF)
- 20.1.2016 (PDF)
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:
- Pokud někdo bude zapsán na nějakém z termínů zkoušky a na termín se nedostaví, bude mu tento termín v SISu označen jako propadlý (tj. student přijde o jeden pokus). Cílem tohoto opatření je optimalizace vytíženosti jednotlivých termínů, aby všichni studenti měli možnost přijít až na 3 termíny zkoušky.
- Pokud někdo na zkoušce získá známku 2 nebo 3 a bude si chtít svůj výsledek zlepšit, může explicitně na místě během vyhodnocení zkouškové písemky požádat zkoušejícího o nezapsání známky. Zkušební termín mu pak bude v SISu označen jako propadlý. Takový student může pak později
- požádat o dodatečné zapsání získané známky, nebo
- přijít na jiný termín zkoušky (jakýmkoliv výsledkem této “opravné” zkoušky se ovšem anuluje předchozí získaná známka).
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é splnit tři podmínky:
1. Zápočtový test
Naprogramovat a odladit jeden jednoduchý příklad v časovém limitu 3 hodiny. Koná se během zkouškového období v počítačové laboratoři. Celkem pět pokusu na splnění testu, maximálně však tři během zimního zkouškového období (další pak případně v letním termínu).
2. Zápočtový program
Termíny NPRG035 (zima) i NPRG038 (léto), NPRG057 (léto), NPRG064 (léto):
- Specifikace: X. 7. 2024
- Předvedení finální plně funkční verze (včetně uživatelské a programátorské dokumentace):
-
- deadline: X. 8. 2024
-
- deadline: X. 9. 2024
-
Požadavky na program z NPRG035, NPRG064 (zdrojového kódu v jazyce C# ⇒ nevygenerovaný (ručně psaný) rozumný kód včetně rozumných komentářů):
- Předvedeno do 1. deadline: minimálně 30 kB zdrojového kódu v jazyce C#
- Předvedeno do 2. deadline: minimálně 45 kB zdrojového kódu v jazyce C#
- Předvedeno po 2. deadline: minimálně 60 kB zdrojového kódu v jazyce C#
Požadavky na program z NPRG038, NPRG057 (zdrojového kódu v jazyce C# ⇒ nevygenerovaný (ručně psaný) rozumný kód včetně rozumných komentářů + netriviální a rozumné použití některé z „technologií“ probíraných v NPRG038, resp. NPRG057 [více viz dané předměty]):
- Předvedeno do 1. deadline: minimálně 45 kB zdrojového kódu v jazyce C#
- Předvedeno do 2. deadline: minimálně 60 kB zdrojového kódu v jazyce C#
- Předvedeno po 2. deadline: minimálně 90 kB zdrojového kódu v jazyce C#
Poznámka: Každý zápočtový program, který splňuje požadavky NPRG038, resp. NPRG057, splňuje i požadavky NPRG035 (tj. lze odevzdat jeden program za oba předměty).
Poznámka: rozumný/rozumné = na požádání posoudí cvičící
POZOR! Osobní předvedení je součástí odevzdání. Na předvádění si připravte několik slidů shrnujících: hlavní funkce programu + hlavní řešené problémy + nástin architektury.
3. Domácí úkoly
Na cvičeních se budou postupně zadávat domácí úkoly, za jejichž vyřešení obdržíte body. Povinnost vám bude uznána pokud získáte dostatečné množství bodů. Získání většího množství bodů vám může pomoct získat body i ke zkoušce dle tabulky níže. K uznání povinnosti je třeba získat alespoň 80b.
Všechny domácí úkoly postupně najdete v ReCodExu pro NPRG035. Tam je také řešte a odevzdávejte. POZOR: Na úkoly zadané na cvičení je standardní deadline 7 dní (tj. do začátku příštího cvičení)!
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 NPRG035 v tomto akademickém roce a přicházejí o možnost uznání splněných povinností v roce příštím; případně bude disciplinární komisi UK MFF doporučeno jejich vyloučení ze studia!
Za nadstandardní množství bodů z úkolů je možné získat body ke zkoušce, a sice takto:
- min. 80 bodů = úroveň “I Can Win” → splněn jeden z požadavků na zápočet, konkrétně bod “povinnosti ze cvičení”
- min. 100 bodů → získání 1,25 silných bodů do zkoušky z NPRG035
- min. 120 bodů = úroveň “Hardcore” → získání dalších 0,75 silného bodu do zkoušky z NPRG035
- min. 150 bodů = úroveň “Nightmare!” → získání 0,5 slabého bodu do zkoušky z NPRG035
- min. 200 bodů = úroveň “Mission Impossible” → získání dalšího 0,5 slabého bodu do zkoušky z NPRG035
- min. 228 bodů = “božská úroveň” → na 1 rok propůjčen titul “bohyně veškerého Csharpistva” nebo titul “bůh veškerého Csharpistva”
Celkem lze tedy získat až 2 silné bonusové body a až 1 slabý bonusový bod do zkoušky z NPRG035 (hodnocení zkoušky viz slidy z první přednášky). Pozor — tyto silné bonusové body se budou započítávat pouze při 1. pokusu o složení zkoušky (tj. při svém 2. i 3. pokusu mají všichni 0 silných bonusových bodů). Nerozlišuje se z jakého důvodu student přichází na 2. nebo 3. termín (tj. zda např. odmítl známku na 1. termínu). Slabé bonusové body se budou započítávat při všech pokusech o složení zkoušky, ale pozor: slabé bonusové body nedokáží prorazit bariéru mezi známkou 4 a známkou 3 (tj. pokud po přičtení silných bonusových bodů stále vychází známka 4, tak se slabé bonusové body do výsledku zkoušky nezapočítávají).
Poznámka: Virtuální cvičení je určeno pro studenty, kteří nechtějí chodit na cvičení (např. protože minulý rok nestihli dodělat pouze zápočtový program, splnit zápočtový test, apod.).
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, zápočtový test, 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í!