Moderní metody programování (FSI-SR3)

Akademický rok 2018/2019
Garant: RNDr. Rudolf Hlavička, CSc.  
Garantující pracoviště: ÚM všechny předměty garantované tímto pracovištěm
Jazyk výuky: čeština
Cíle předmětu:
Cílem kursu je naučit studenty principům vývoje aplikací pro Microsoft .NET Framework.
Výstupy studia a kompetence:
Nejdůležitější témata: Architektura .NET Framework, řízené prostředí CLR, Jazyk C#, Common Type System (CTS), .NET komponenty (assemblies), Framework Class Library. Také práce s XML, tvorba grafického uživatelského rozhraní s knihovnou Windows Forms.
Prerekvizity:
Je požadována jistá praktická znalost programování a principů objekově orientovaného programování. Formální základy informatiky nejsou nutné.
Obsah předmětu (anotace):
Architektura platformy .NET Framework, řízené prostředí CLR, Jazyk C#, Common Type System (CTS), .NET komponenty (assemblies), knihovna tříd Framework Class Library(FCL).
Metody vyučování:
Předmět je vyučován formou přednášek, které mají charakter výkladu základních principů a teorie dané disciplíny. Cvičení je zaměřeno na praktické zvládnutí látky probrané na přednáškách.
Způsob a kritéria hodnocení:
Klasifikovaný zápočet se uděluje na základě následujících podmínek: 30% týdenní úlohy na programování, 70% samostatný projekt. Za aktivní přínos ve výuce lze získat zvláštní ohodnocení.
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky:
Účast na přednáškách je žádoucí, účast ve cvičeních je povinná.
Typ (způsob) výuky:
    Přednáška  13 × 1 hod. nepovinná                  
    Cvičení s počítačovou podporou  13 × 2 hod. povinná                  
Osnova:
    Přednáška 1. Platforma .NET Framework
2. Common language Runtime (CLR); Common Language Specification (CLS); Jazyková integrace
3. Vývojové prostředí Visual Studia .NET
4. Úvod do jazyka C#
5. Objektově orientované prvky platformy .NET
6. Prostory jmen; Ošetření výjimek
7. Společný typový systém
8. Delegáty a eventy
9. Atributy
10. Pole a kolekce
11. Práce s řetězci; Regulární výrazy
12. Správa paměti a zdrojů
13. Vstup/Výstup; Práce s XML; Serializace
14. Windows Forms
    Cvičení s počítačovou podporou 1. Mezijazyk (IL); .NET model spouštění
2. Primitivní datové typy; Výčty; Výrazy; Příkazy
3. Řídící struktury (if, for, while, do..while, foreach)
4. Vývojové prostředí Visual Studio .NET
5. Třídy a rozhraní; Konstruktory, metody, položky, konstanty; Dědičnost a polymorfismus
6. Prostory jmen; Ošetřování vyjímečných stavů
7. System.Object, rovnost, hashové kódy, kopírování; Hodnotové & referenční typy; Typové konverze a přetypování
8. Delegáty a násobné delegáty; Eventy
9. Použití attributů; Vytváření uživatelských atributů
10. Pole; Schodovité vs. vícerozměrné pole; Kolekce a enumerátory; Seznamy, slovníky, hashové tabulky
11. Řetězce, manipulace (StringBuilder), formátování; Unicode, kódování, globalizace and internacionalizace, Regulární výrazy
12. Řízená halda a garbage collection; Destruktory a finalizéry
13. Proudy, readers/writers; soubory a adresáře; Asynchronní vstup/výstup
14. Programovací model Windows Forms; Formuláře a dialogy; Události
Literatura - základní:
1. Joseph Albahari: C# 7.0 in a Nutshell: The Definitive Reference, O'Reilly Media 2017 ISBN: 1491987650 1090 stran
2. Joseph Albahari: C# 7.0 Pocket Reference: Instant Help for C# 7.0 Programmers, O'Reilly Media 2017 , ISBN: 1491988534, 234 stran
3. Anders Hejlsberg: The C# Programming Language, Addison-Wesley 2010 ISBN 0-321-74176-5, 704 stran
4. Karniadakis George, Robert Kirby: Parallel Scientific Computing in C++ and MPI, Cambridge University Press 2003, ISBN 0521520800, 630 stran
Literatura - doporučená:
1. Paul Deitel, Harvey Deitel: C# 6 for Programmers, Deitel & Associates 2016, ISBN: 0134596327, 768 stran
2. Joe Pitt-Francis, Jonathan Whiteley,: Guide to Scientific Computing in C++ Springer 2012, ISBN 978-1-4471-2736-9, 250 stran
Zařazení předmětu ve studijních programech:
Program Forma Obor Spec. Typ ukončení   Kredity     Povinnost     St.     Roč.     Semestr  
B3A-P prezenční studium B-MAI Matematické inženýrství -- kl 4 Povinný 1 2 L