Název:

Seminář C#

Zkratka:ICS
Ak.rok:2018/2019
Semestr:letní
Studijní plán:
ProgramObor/
specializace
RočníkPovinnost
BIT-2.povinně volitelný - skupina T
IT-BC-3BIT2.povinně volitelný - skupina T
Vyučovací jazyk:čeština
Informace veřejné:http://www.fit.vutbr.cz/study/courses/ICS/public/
Kredity:4 kredity
Ukončení:klasifikovaný zápočet
Výuka:
hod./sempřednáškasem./cvič.lab. cvič.poč. cvič.jiná
Rozsah:0260013
 zkouškatestycvičenílaboratořeostatní
Body:0000100
Garant:Pluskal Jan, Ing. (UIFS)
Zástupce garanta:Ryšavý Ondřej, doc. Ing., Ph.D. (UIFS)
Přednášející:Pluskal Jan, Ing. (UIFS)
Cvičící:Dybal Martin (FIT)
Jašek Roman, Ing. (UPGM)
Jašek Tibor, Ing. (FIT)
Jež Adam, Ing. (FIT)
Letavay Viliam, Ing. (UIFS)
Mrnuštík Michal, Bc. (FIT)
Pluskal Jan, Ing. (UIFS)
Fakulta:Fakulta informačních technologií VUT v Brně
Pracoviště:Ústav informačních systémů FIT VUT v Brně
Prerekvizity: 
Základy programování (IZP), UIFS
Navazující:
Programování v .NET a C# (IW5), UIFS
Rozvrh:
DenVýukaTýdenMístnostOdDoPSKSkupiny
PoObhajoba projektu ICS2019-05-06C304 08:0017:50
ÚtObhajoba projektu ICS2019-05-07C304 08:0017:50
 
Cíle předmětu:
  Cílem je naučit studenty základy objektově orientovaného programování v jazyce C#.
Anotace:
  Syntaxe jazyka C#. Objektová orientace. Objektový model, objekty, třídy. Visual Studio. Ladění a profilace. Návrhové vzory. Grafické uživatelská rozhraní, WPF. Asynchronní programování - procesy, vlákna, úlohy. Dotazování nad persistentními daty pomocí LINQ a ORM Entity Framework.
Požadované prerekvizitní znalosti a dovednosti:
  Základní znalosti imperativního programování (jazyk C), algoritmizace a verzování kódu.
Získané dovednosti, znalosti a kompetence z předmětu:
  Studenti se seznámí s moderními přístupy při vývoji software na platformě .NET v jazyce C#. Po úspěšném zvládnutí předmětu budou srozuměni se dobrými programátorskými praktikami, které se v praxi na této platformě využívají. Vybaveni nezbytnou znalostí základních návrhových vzorů a jejich implementací vzhledem ke specifickým rysům jazyka C# a běžně používaných knihoven, absolventi budou připraveni na započetí své kariéry coby .NET vývojáře.
Dovednosti, znalosti a kompetence obecné:
  Práce v týmu naučí studenty vzájemné koordinaci a správnému přístupu k softwarovému vývoji. Základy objektově orientovaného programování, konstruktů používaných v C#, návrhových vzorů a práci s persistentními daty pomocí přístupu ORM.
Proč je předmět vyučován:
  Předmět si klade za cíl zvýšit uplatnění studentů, kteří vidí svoji kariéru coby programátorů, při hledání zaměstnání po studiu. C# se dlouhodobě dostává do popředí s popularizací .NET platformy a nově i .NET Core díky multiplatformnosti. Jedná se o moderní jazyk s vysokou úrovní abstrakce, který není jen objektový, ale obsahuji i prvky funkcionálního programování. Student si během kurzu vyzkouší práci v týmu na projektu, který vyžaduje nejen funkční kód, ale dbá i na správný návrh, týmovou spolupráci při verzování kódu a klade důraz na použití návrhových vzorů. Po absolvování je student schopný samostatně vytvořit desktopovou aplikaci s připojením do databáze za kterou se nebude muset v budoucnu stydět.
Osnova seminářů:
 
  1. Úvod do jazyka C# a platformy .NET, základní syntaxe jazyka, instalace a představení Visual Studia.
  2. Úvod do Objektově Orientované Programování a pokročilé konstrukce v jazyce C# - výjimky, události, delegáty, lambda výrazy a generika.
  3. Představení základních knihovních funkcí (BCL) a dotazování za pomocí vestavěního nástroje LINQ nad datovými zdroji (kolekcemi, XML, MSSQL).
  4. Propojení aplikace s databází pro zajištění persistence pomocí ORM rozšíření Entity Framework s návrhovými vzory UnitOfWork a Repository.
  5. Psaní čistého, udržovatelného kódu s respektováním Clean Code, S.O.L.I.D. zásad. Ukázky refaktorizace a práce s legacy kódem.
  6. Návrhový vzor Model-View-ViewModel (MVVM) a architektura desktopových aplikací. Mapování databázových entit na modelové třídy.
  7. Continous Integration v prostředí Azure DevOps a testování aplikací - smoke, unit, integrační, UI a akceptační testy.
  8. Základní koncepty tvorby uživatelského rozhraní pomocí Windows Presentation Foundation (WPF).
  9. Návrhové vzory pro práci s vytvářením, strukturováním a chováním - Gang of Four (GoF) v kontextu C#.
  10. WPF za pomoci MVVM, tvorba komponenty a stylování aplikací.
  11. Paralelní a asynchroní programování proces, vlákno, úloha z pohledu C# a použitého .NET frameworku.
  12. Multiplatformní programování .NET Standard, .NET Core. Konteinerizace aplikací pomocí Docker a jejich orchestrace Kubernetes, Docker Swarm.
  13. Nástroje pro správu paměti a profilaci výkonu.
Literatura referenční:
 
  • ALBAHARI, Joseph; ALBAHARI, Ben.; C# 7.0 in a Nutshell: The Definitive Reference. O'Reilly Media, Inc., 2017.
Literatura studijní:
 
  • MARTIN, R. C., & MARTIN, M. (2006). Agile principles, patterns, and practices in C. Pearson Education.
  • MARTIN, Robert C. Clean code: a handbook of agile software craftsmanship. Pearson Education, 2009.
  • GAMMA, Erich. Design patterns: elements of reusable object-oriented software. Pearson Education India, 1995.
  • BISHOP, J. (2007). C# 3.0 Design Patterns: Use the Power of C# 3.0 to Solve Real-World Problems. " O'Reilly Media, Inc.".
Kontrolovaná výuka:
  
  • Vypracování týmového projektu v rozsahu 4-5 členů v prostředí Azure DevOps.
  • Cílem je vytvořit plně funkční desktopovou aplikaci, podle OOP principů, komunikující s databází.
  • Hodnocení projektu zohlední správné použití S.O.L.I.D, CleanCode zásad probíraných na přednáškách.
  • V případě řádně ohlášené a doložené překážky ve studiu může student požádat o odložení termínu odevzdání u kterékoliv části projektu.
Průběžná kontrola studia:
  
  • Odevzdání projektu rozdělené do tří částí během semestru.
  • Každá část bude samostatně hodnocena a student obdrží zpětnou vazbu ke své práci, kterou zapracuje do následující fáze.
  • Bodové rozdělení dle fází: 20, 30, 50 bodů.
  • Výsledný projekt bude hodnocený v třetí fázi při obhajobě.
  • Účast na bonusovém cvičení bude odměněna bonusovými body (+2b.)
Podmínky zápočtu:
  
  • Získat nejméně 1 bod z každého odevzdání
  • Získat nejméně 50% bodů z projektu
 

Vaše IPv4 adresa: 107.23.129.77
Přepnout na https