Programování v jazyce C# - NPRG035
Anglický název: Programming in C# Language
Zajišťuje: Katedra distribuovaných a spolehlivých systémů (32-KDSS)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2022
Semestr: zimní
E-Kredity: 5
Rozsah, examinace: zimní s.:2/2, Z+Zk [HT]
Počet míst: neomezen
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: vyučován
Jazyk výuky: čeština, angličtina
Způsob výuky: prezenční
Způsob výuky: prezenční
Další informace: http://d3s.mff.cuni.cz/teaching/nprg035
Garant: Mgr. Pavel Ježek, Ph.D.
Třída: Informatika Bc.
Informatika Mgr. - volitelný
Kategorizace předmětu: Informatika > Programování
Neslučitelnost : NPRX035
Prerekvizity : NPRG031
Záměnnost : NPRX035
Je korekvizitou pro: NPRG064, NPRG038, NPRG057, NPRX038
Je neslučitelnost pro: NPRX035, NPRG048
Je záměnnost pro: NPRX035, NMMB202
Ve slož. korekvizitě pro: NPRG024
Ve slož. prerekvizitě: NSWI152, NSWI202, NSWX152
Výsledky anket   Termíny zkoušek   Rozvrh ZS   Nástěnka   
Anotace -
Poslední úprava: doc. RNDr. Petr Hnětynka, Ph.D. (30.04.2019)
Cílem předmětu je posluchače detailně seznámit s klíčovými principy platformy .NET, s jazykem C# a jeho pokročilejšími konstrukcemi. Po úspěšném absolvování předmětu by měli být studenti schopni efektivně využívat výhod platformy .NET. Předpokládá se znalost objektově orientovaného a událostmi řízeného programování a základních rysů jazyka C# na úrovni předmětu "NPRG031 Programování 2".
Literatura -
Poslední úprava: Mgr. Pavel Ježek, Ph.D. (04.09.2013)

Mark Michaelis, Eric Lippert: Essential C# 5.0, 4th Edition, Addison-Wesley Professional, 2012

Jeffrey Richter: CLR via C#, 4th Edition, Microsoft Press, 2012

Jon Skeet: C# in Depth, 3rd Edition, Manning Publications, 2013

Christian Nagel et al., Professional C# 2008, Wrox, 2008

Microsoft Developer Network Library, http://msdn.microsoft.com/library/

Zdrojové kódy knihoven platformy .NET, http://referencesource.microsoft.com/

Sylabus -
Poslední úprava: Tajemník Katedry (16.05.2012)

Rozdíly mezi prekladem/behem nerízeného (C++) a rízeného kódu (C#/.NET, Java).

Základní principy JIT prekladu, funkce virtuálního stroje CLR, koncept safe/unsafe kódu, prehled jazyku pro .NET (C#, VB.NET, F#, C++/CLI, IronPython), výhody a nevýhody platformy .NET.

Implementace platformy .NET: Microsoft .NET Framework, Mono.

Vývojové nástroje, základy merení výkonu aplikací, dokumentování kódu.

Hodnotové vs. referencní typy (srovnání s jazyky Java a C++).

Alokace pameti na halde, základní principy Garbage Collection.

Trídy a struktury, rozhraní, dedicnost, virtuální metody, (statické) class konstruktory (srovnání s jazyky Java a C++).

Práce s retezci

Mutable vs. immutable datové typy.

Generické typy (srovnání s generickými typy v jazyce Java a se šablonami v C++).

Variance datových typu (kovariance a kontravariance).

Extension metody, pretežování operátoru, anonymní metody a lambda funkce, iteracní metody (srovnání s C++).

Delegáti a události.

Standardní knihovny .NET (soubory, kolekce, atd.).

Finalizace objektu, pokrocilé principy Garbage Collection, princip generacního Garbage Collectoru.