Náplň cvičení
Je uvedena na společných stránkách cvičtní viz: link
Různé odkazy
Odkaz na rozcestník design guidelines s návodem, jak psát kód hezky.
Odkaz na MicroBenchmark
Postup na zprovoznění MSTestu
- Do resources v projektu testů přidat původní projekt
- Do zdrojového kódu přidat řádek [assembly: System.Runtime.CompilerServices.InternalsVisibleTo()], doplnit assably name pro projekt testů
- V testech lze používat using s původním namespacem
- V testech používat Assert ( Microsoft.VisualStudio.TestTools.UnitTesting.Assert )
Materiály k unit testům:
Z MS stránek. 0 1 2 3 4 Vzorové solution od Pavla Ježka Včetně unit testů
Nevěřte slepě návodům na internetu.
Viz stále první odpověd na Stack overflow
Užitečné odkazy k Visual Studiu
Visual Studio get the key shortcut
Požadavky na zápočet
Pro získání zápočtu je třeba splnit tři povinnosti:
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:
- Specifikace: 12.7.2024
- Osobní předvedení finální (plně funkční - dle specifikace) verze, včetně slidů, uživatelské a programátorské dokumentace.
-
- deadline: 9.8.2024
-
- deadline: 6.9.2024
-
Na předvedení si připravte pár slidů shrnujících hlavní funkce programu + hlavní řešené problémy + nástin architektury.
Jeden zápočtový program je možné použít pro splnění povinnosti z více předmětů o C# a .NET, pokud bude zápočtový program dostatečně rozsáhlý a sice takto:
- Požadavky na NPRG035:
- Předvedeno do 1. deadline: 30kB zdrojového kódu
- Předvedeno po 1. deadline: 45kB zdrojového kódu
- Předvedeno po 2. deadline: 60kB zdrojového kódu
- Požadavky na NPRG035 + NPRG038, Advanced .NET Programming II:
- Předvedeno do 1. deadline: 45kB zdrojového kódu
- Předvedeno po 1. deadline: 60kB zdrojového kódu
- Předvedeno po 2. deadline: 90kB zdrojového kódu
Zdrojový kód se počítá jen ten, který jste napsali vy sami a v jazyce C#. Kód musí být rozumný, včetně rozumných komentářů.
Zápočtový program pro návazné předměty (NPRG038, Advanced .NET Programming II) vyžadují navíc netriviální použití technologií probíraných na těchto předmětech. Pokud má navíc program netriviální grafické rozhraní, lze jej uznat i pro předmět Programming User Interfaces in .NET.
-
- vlastní operátory, variantní rozhraní, delegáti, vlákna, Sockets [síťování], LINQ, Reflection, generování kódu, …
-
- unsafe kód, spolupráce s nativním kódem, pointery, Span, práce s databázemi [ADO.NET, Entity Framework], RPC [WCF, GRPC], serializace, skriptování pomocí Roslyn, spolupráce s Python/JavaScript, …
-
Programming User Interfaces in .NET:
- Desktop App: WPF, WinForms, WinUI, Uno, Avalonia
- Mobile App: Xamarin, MAUI, Uno
- Web App: ASP.NET MVC, Blazor Server, Blazor Client
- Game: Unity, MonoGame
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ů, podle toho, jestli se cvičení účastníte. K uznání povinnosti je třeba získat alespoň 80b.
Získání většího množství bodů vám může pomoct získat body i ke zkoušce z NPRG035 (vizte bližší informace na webu přednášky).
» dosažená úroveň « | » body z úkolů « | » extra body | při zkoušce « |
---|---|---|---|
min potřebných | silné | slabé | |
“Passing” | 80 | 0 | 0 |
“Tricky” | 100 | 1.25 | 0 |
“Hardcore” | 120 | 2 | 0 |
“Nightmare!” | 150 | 2 | 0.5 |
“Mission Impossible” | 200 | 2 | 1 |
Domácí úkoly se budou postupně objevovat v systému ReCodEx. Do tohoto systému také nahrajte své řešení a systém vám sám řešení ohodnotí. Standardní deadline je 7 dní, do začátku příštího cvičení. Kromě bodů přiřazených ReCodExem dostanete bonusové body podle kvality návrhu, četnosti komentářů a dalších estetických vlastností řešení, které ReCodEx ohodnotit nemůže.
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!
Uzná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 splněnou docházku, 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, opět po explicitním požádání vám může zkoušku uznat Pavel Ježek. Toto je iniciativa vyučujících tohoto předmětu a nelze ji požadovat po studijním oddělení!