STEAM INVENT LogoSTEAM INVENT
Softversko inženjerstvoSrednji nivo

C#: Srednji nivo

Od osnovnog C# programiranja do ozbiljnog objektno-orijentisanog razvoja

C#: Srednji nivo

O ovom programu

Ovaj kurs predstavlja prirodan nastavak našeg C# kursa za početni nivo i namenjen je polaznicima koji žele da svoje osnovno znanje C# programiranja podignu na viši nivo. Kroz sistematsko upoznavanje sa objektno-orijentisanim programiranjem, polaznici uče kako da programski kod organizuju kroz klase i objekte i kako da grade pregledne, modularne i ponovo upotrebljive softverske komponente. Kurs detaljno obrađuje svojstva, konstruktore, modifikatore pristupa, enkapsulaciju, apstrakciju, nasleđivanje, polimorfizam i interfejse, uz posebno razumevanje razlike između overloading i overriding mehanizama. Polaznici se zatim upoznaju sa exception handling mehanizmima, generičkim tipovima, kolekcijama, delegatima, lambda izrazima i LINQ-om, čime prelaze sa rada na osnovnim konzolnim programima na razvoj struktuisanijih i realnijih C# rešenja. Kroz veliki broj praktičnih zadataka u Visual Studio okruženju polaznici uče da povezuju više koncepata, analiziraju postojeći kod, pronađu i otklone greške i donesu odgovarajuće odluke prilikom projektovanja programa. Stečeno znanje objedinjuju kroz završni projekat u kojem samostalno razvijaju funkcionalnu C# aplikaciju i primenjuju ključne principe objektno-orijentisanog programiranja. Kurs predstavlja čvrstu osnovu za nastavak učenja i prirodan prelazak na razvoj desktop aplikacija kroz WPF i MVVM arhitekturu.

Tehnologije i alati koje savladavamo

C #Visual StudioOOPGenericsCollectionsLINQDelegatesLambda izraziProgramiranje

Detaljan plan i program

Nedelje 1-4

Objektno-orijentisano programiranje, klase i svojstva

U prvom mesecu polaznici prelaze sa proceduralnog načina razmišljanja na objektno-orijentisani pristup programiranju. Upoznaju osnovne principe OOP-a i uče kako se kroz klase i objekte modeluju elementi realnog problema. Detaljno se obrađuju klase, objekti, polja i svojstva, uključujući automatska svojstva, read-only svojstva, private set, init i izvedena svojstva. Polaznici zatim upoznaju modifikatore pristupa i uče kako se kontroliše vidljivost i dostupnost članova klase. Poseban deo posvećen je konstruktorima, njihovim različitim oblicima, preopterećenju, ulančavanju konstruktora, privatnim i statičkim konstruktorima, kao i razumevanju uloge finalizatora u C# jeziku.

Fokus i alati:
OOP osnoveKlase i objektiFields i PropertiesModifikatori pristupaKonstruktori
Nedelje 5-8

Enkapsulacija, nasleđivanje, apstrakcija i polimorfizam

U drugom mesecu polaznici produbljuju razumevanje objektno-orijentisanog dizajna kroz principe enkapsulacije, apstrakcije, nasleđivanja i polimorfizma. Uče kako klase mogu da naslede ponašanje i osobine drugih klasa, kako funkcionišu jednostruko, višestepeno i hijerarhijsko nasleđivanje, kao i kako se u C# jeziku funkcionalnosti višestrukog nasleđivanja realizuju pomoću interfejsa. Obrađuju se base i protected članovi, sealed klase i metode, kao i abstract klase i metode. Kroz virtual i override metode polaznici uče kako se implementira runtime polimorfizam, dok kroz overloading upoznaju compile-time polimorfizam. Poseban akcenat stavljen je na razumevanje razlike između overloading i overriding mehanizama i njihove praktične primene.

Fokus i alati:
EncapsulationApstractInheritancebase keywordProtected membersSealed classes i methodsPolymorphismVirtual methodsOverrideOverloading
Nedelje 9-12

Interfejsi, exception handling i generičko programiranje

Treći mesec uvodi polaznike u naprednije mehanizme organizacije i kontrole programa. Uče kako se pomoću interfejsa definišu ugovori koje klase implementiraju i kako se interfejsi koriste za fleksibilniji i modularniji dizajn aplikacija. Posebno se analizira odnos između abstract class i interface koncepta i kriterijumi za njihov izbor. Zatim se obrađuje exception handling, uključujući try, catch, multiple catch, finally, nested try/catch, throw, hijerarhiju izuzetaka i kreiranje sopstvenih exception klasa. U završnom delu meseca polaznici se upoznaju sa generičkim tipovima i razumeju kako generics omogućavaju bezbedan, fleksibilan i ponovo upotrebljiv kod.

Fokus i alati:
InterfaceAbstract class vs. InterfaceException handlingGenerics
Nedelje 13-16

Kolekcije, delegati, lambda izrazi, LINQ i završni projekat

U završnom mesecu polaznici uče kako da efikasno organizuju i obrađuju veće količine podataka korišćenjem kolekcija. Najpre upoznaju osnovne negeneričke kolekcije kao što su ArrayList, Hashtable, Stack, Queue i SortedList, a zatim prelaze na savremene generičke kolekcije kao što su List<T>, Dictionary<TKey,TValue>, Queue<T>, Stack<T>, HashSet<T>, SortedSet<T>, SortedList<TKey,TValue> i SortedDictionary<TKey,TValue>. Nakon toga se uvode delegati, Action, Func i Predicate, kao i lambda izrazi koji predstavljaju važan deo modernog C# programiranja. Znanje se dalje povezuje kroz LINQ, gde polaznici uče filtriranje, selekciju, sortiranje, pretragu, agregaciju i grupisanje podataka. Na kraju meseca sve naučene koncepte objedinjuju kroz završni projekat, u kojem samostalno projektuju i razvijaju funkcionalnu C# aplikaciju sa jasnom strukturom i objektno-orijentisanim dizajnom.

Fokus i alati:
CollectionsDelegatesLambdaLINQZavršni projekat

Osnovne informacije

Trajanje programa:4 meseca (32 časa)
Nivo složenosti:Srednji
Lokacija nastave:STEAM INVENT

Zainteresovani ste za ovaj program?

Broj mesta u grupama je ograničen kako bismo obezbedili maksimalan kvalitet mentorskog rada i posvećenost svakom polazniku.

Kontaktirajte nas za upis