NPRG035 Jazyk C# a platforma .NET (ZS 2018/2019)
Informace o předmětu
Semestr | zimní 2018/2019 |
---|---|
Přednášející | Pavel Ježek |
Cvičící | Jan Pacovský |
Informace v SISu | SIS/Předměty/NSWI035 |
Informace k přednášce | Web Přednášky |
Rozvrh přednášky | St 15:40 v S3 |
Rozvrh cvičení | Po 17:20 v SU2 |
Můj mail | pacovsky <zav.> d3s.mff.cuni.cz |
Zásadní informace ke cvičení
Tykejte mi
Informace o zápočtu
Bodové úrovně pro získání zápočtu a bonusovýc bodů ke zkoušce:
Získání, resp. překročení určitého počtu bodů v CodExu implikuje zisk určité výhody (za více bodů můžete získat více výhod) - bodové hranice se liší pro studenty s dostatečnou a nedostatečnou docházkou na cvičeních:
- Studenti s dostatečnou docházkou (<= 3 absence na cvičení):
- 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"
- Studenti s nedostatečnou docházkou (> 3 absence na cvičení) (např. členové virtuálního cvičení):
- min. 110 bodů = úroveň "I Can Win" → splněn jeden z požadavků na zápočet, konkrétně bod "povinnosti ze cvičení"
- min. 130 bodů → získání 1,25 silných bodů do zkoušky z NPRG035
- min. 150 bodů = úroveň "Hardcore" → získání dalších 0,75 silného bodu do zkoušky z NPRG035
- min. 228 bodů = "božská úroveň" → definice viz výše
Deadlines a limity kódu na zápočtové programy:
Termíny NPRG035 (zima), i NPRG038 (léto), NPRG057 (léto), NPRG064 (léto):
- Specifikace: 12. 7. 2019
-
Předvedení finální plně funkční verze (včetně uživatelské a programátorské dokumentace):
- 1. deadline: 2. 8. 2019
- 2. deadline: 13. 9. 2019
- 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#
- 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: 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.
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 5.0
- 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í
- Všechny domácí úkoly postupně najdete v ReCodExu pro NPRG035 (recodex.mff.cuni.cz). Tam je také řešte a odevzdávejte. Vaše řešení se v CodExu překládá s implicitním nastavením Mono C# překladače verze 2.6.1 (= plná optimalizace IL kódu) a spouští na 32-bitové Mono VM s implicitním nastavením (= zapnuté všechny univerzální optimalizace JITu). 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!
- 1. cvičení
Stručný obsah:Podmínky na zápočet ♦ struktury projektu a solution (soubory.csproj
a.sln
), Debug vs. Release konfigurace, dokumentační komentáře (a nástroj Sandcastle), základní možnosti ladění ve Visual Studiu, Intellisense ♦ zadání úloh: Počítání slov a Četnosti slov • přehled základních tříd a metod:System.IO.StreamReader
,string.Split
;Array.Sort
, (Sorted
)Dictionary<K, V>
,SortedList<V>
- 2. cvičení
Stručný obsah:Oprava úkolů, zadání nové úlohyMateriály:-
Link na rozcestník Microsoftu s návodem, jak psát kód hezky: Guidelines
- 3. cvičení
Stručný obsah:Nástroje k porovnání změn: diff, KDiff, V TotalCMD - Files Compare by content. UnitTesty MSTest (součástí VS) nebo nUnit / xUnit. Zadání nové úlohy: zarovnání více souborů, pro její řešení by se mohl hodit design pattern: Factory.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 )
- 4. cvičení
Stručný obsah:Unit testy, TDD - test driven development, programming guidelines, design patterny - Wrapper, Adapter, Factory. MVC - Model-view-controller - 5. cvičení
Stručný obsah:Unit testy, TDD - test driven development, debugging, Huffman, Návrhový vzor Singleton. - 6. cvičení
Stručný obsah:Cvičení 5.11.2018 odpadlo. Optimalizace kódu, mikrooptimalizace, zamyslet se co nastává, jak často. Uvažovat nad designem aplikace, kdy se vyplatí použít polymorfizums a kdy ne. Přemýšlet před tím než začnete programovat. - 7. cvičení
Stručný obsah:Cvičení 12.11.2018 - 8. cvičení
Stručný obsah:Cvičení 19.11.2018 br> - 9. cvičení
Stručný obsah:Cvičení 26.11.2018 - 10. cvičení
Stručný obsah:Cvičení 3.12.2018 - 11. cvičení
Stručný obsah:Cvičení 10.12.2018 Visitor patern, 1. pro lehké přidání nové operace (bez modifikace dll); 2. v codexu zmíněná - visitor pattern - 12. cvičení
Stručný obsah:Cvičení 17.12.2018 - 13. cvičení
Stručný obsah:Cvičení 24.12.2018 odpadlo. - 14. cvičení
Stručný obsah:Cvičení 31.12.2018 odpadlo. - x. cvičení
Stručný obsah:Cvičení 7.1.2019 příprava na test.