Programování v C#
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BI-CS1 | KZ | 4 | 3C | česky |
- Garant předmětu:
- Pavel Štěpán
- Přednášející:
- Cvičící:
- Pavel Štěpán, Helena Wallenfelsová
- Předmět zajišťuje:
- katedra softwarového inženýrství
- Anotace:
-
Student se seznámí s principy, na kterých je založena platforma .NET a s požadavky na vytváření programů pro tuto platformu. Poté se učí programovací jazyk C#. Zde jsou vyloženy základní konstrukce jazyka - typy a definice proměnných, operátory, pole, cykly, definice a volání funkcí. Značná pozornost je věnována implementaci objektového programování v C# - definice a instancování tříd, konstruktory, metody, vlastnosti, statické členy a Garbage Collector. Dále se posluchači seznámí s dědičností a polymorfizmem v C#. Naučí se též pracovat s kolekcemi, delegáty a generikami a práci s komponentami. Důležitou součást představuje i ladění a zpracování výjimek. V neposlední řadě se student naučí základům práce se soubory i zpracováním vstupů z myši a klávesnice. Konečně se zde zabýváme i novějšími partiemi programování na této platformě a to nullable typy, autoimplemented vlastnostmi (property), anonymními a lambda funkcemi (výrazy), enumerovatenými typy, functory, anonymními typy, typem var, extension metodami, partial metodami a stručně se dotkneme i expression trees.
Upozornění: Výuka předmětu je organizována tak, aby poskytla základ pro programování v jazyce C# na platformě .NET. Rozhodně tedy není určena těm, kteří již nějakou na .NETu pracují a chtěli by se seznámit pouze s některými specialitami a nástavbami.
- Požadavky:
-
Předpokládá se schopnost algoritmizace a jistá praxe s vytvářením alespoň menších programů. Samozřejmě se předpokláda i schopnost zacházet s počítačem, vybaveným operačním systémem Windows (alespoň na uživatelské úrovni). Výhodou (i když nikoli nezbytným předpokladem) je znalost principů objektového programování.
- Osnova přednášek:
-
1. Úvod: Základna pro aplikace - .NET Framework,
- Intermediate Language
- Common Language Runtime
- Base Class Library
- Namespaces,
- struktura assemblies
- nadstavby .NET: ADO.NET, ASP.NET, web services, WCF, WF, WPF, Silverlight, Card Space, LINQ, Entity Framework
2. Vývojové prostředí Visual Studio: seznámení, základní controls (TextBox, Label, Button a další), úpravy kódu a formátování, tvorba jednoduchého programu
3. Základy WPF (Windows Presentation Foundation)
4. Formát programu, datové typy, proměnné a konstanty, referenční a hodnotové typy, pole, kolekce, struktury, výrazy a operátory, řídící, přiřazovací a další příkazy jazyka, funkce - definice a volání
5. Tvorba objektů: objektové programování - základní informace, Encapsulation, Methods, Fields, Properties, definice tříd, overloading, property procedury, vytváření instancí (objektů), statické vlastnosti, metody, konstruktory a třídy
6. Inicializace a rušení objektů: konstruktory tříd, Garbage Collector - správa paměti
7. Odvozování objektů: Inheritance (dědičnost), definice a používání interface, abstraktní třídy a metody
8. Přetěžování operátorů
9. Polymorfismus: principy a využití, virtual, override
10. Nadstavbové možnosti objektového programování:
- třída object; boxing/unboxing;
- indexery, iterátory
- Generics (prototypy), typované kolekce
- partial classes
- anonymní metody
- aplikace, tvořená více assembly - komponenty, reference
11. Delegáty a událostní programování: delegáty - „bezpečné pointery“ (single/multicast), definování událostí (eventů), používání eventů
12. Ladění (debugging): ladící prostředky C# a jejich používání
13. Zpracování Run-Time Errors (Exceptions): strukturované zpracování výjimek, Exception Class, příkazy Try, Catch a Finally
14. Základy práce se soubory: třída Stream, typy souborů, operace se soubory, operace s adresáři
15. Zpracování vstupů (klávesnice, myš) a validace
16. Security - hlavní možnosti v .NET
17. Paralelní programování v .NET frameworku (základy)
18. Základy serializace
19. Další: vybrané třídy; základy instalace programů
- Osnova cvičení:
- Cíle studia:
- Studijní materiály:
-
Hlavní studijní materiál představují programy, vytvářené v průběhu semestru. Je však možné použít i následující literaturu (i když jde o poněkud příliš rozsáhlé publikace):
Christian, N. a kolektiv „C# 2008 programujeme profesionálně“. Nakladatelství Computer Press, 2009. ISBN: 978-80-251-2401-7
MacDonald, M., Freeman A., Szpuszta, M. „ASP.NET 4.0 a C# 2010“. Nakladatelství Zoner Press, 2011, ISBN: 978-80-7413-131-8
Sharp J. „Visual C# 2010“. Nakladatelství Computer Press, 20121, ISBN: 978-80-251-3147-3
- Poznámka:
-
Informace o předmětu a výukové materiály naleznete na https://moodle-vyuka.cvut.cz/course/search.php?search=BI-CS1
- Další informace:
- https://moodle-vyuka.cvut.cz/course/search.php?search=BI-CS1
- Rozvrh na zimní semestr 2024/2025:
-
06:00–08:0008:00–10:0010:00–12:0012:00–14:0014:00–16:0016:00–18:0018:00–20:0020:00–22:0022:00–24:00
Po Út St Čt Pá - Rozvrh na letní semestr 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Bc. program Informatika, pro fázi studia bez oboru, 2015-2020 (volitelný předmět)
- Bc. obor Bezpečnost a informační technologie, 2015-2020 (volitelný předmět)
- Bc. obor Teoretická informatika, 2015-2020 (volitelný předmět)
- Bc. obor Počítačové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Informační systémy a management, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Softwarové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Webové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Počítačová grafika, 2015-2020 (volitelný předmět)
- Bc. obor Znalostní inženýrství, 2018-2020 (volitelný předmět)
- Bc. specializace Informační bezpečnost, 2021 (volitelný předmět)
- Bc. specializace Manažerská informatika, 2021 (volitelný předmět)
- Bc. specializace Počítačová grafika, 2021 (volitelný předmět)
- Bc. specializace Počítačové inženýrství, 2021 (volitelný předmět)
- Bc. program, pro fázi studia bez specializace, 2021 (volitelný předmět)
- Bc. specializace Webové inženýrství, 2021 (volitelný předmět)
- Bc. specializace Umělá inteligence, 2021 (volitelný předmět)
- Bc. specializace Teoretická informatika, 2021 (volitelný předmět)
- Bc. specializace Softwarové inženýrství, 2021 (volitelný předmět)
- Bc. specializace Počítačové systémy a virtualizace, 2021 (volitelný předmět)
- Bc. specializace Počítačové sítě a Internet, 2021 (volitelný předmět)
- Study plan for Ukrainian refugees (volitelný předmět)
- Bc. specializace Informační bezpečnost, 2024 (volitelný předmět)
- Bc. program, pro fázi studia bez specializace, 2024 (volitelný předmět)
- Bc. specializace Manažerská informatika, 2024 (volitelný předmět)
- Bc. specializace Počítačová grafika, 2024 (volitelný předmět)
- Bc. specializace Softwarové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Webové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Počítačové sítě a Internet, 2024 (volitelný předmět)
- Bc. specializace Počítačové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Počítačové systémy a virtualizace, 2024 (volitelný předmět)
- Bc. specializace Umělá inteligence, 2024 (volitelný předmět)
- Bc. specializace Teoretická informatika, 2024 (volitelný předmět)