ობიექტზე ორიენტირებული პროგრამირების ენა C# (გაღრმავებული კურსი)

ლექტორის შესახებ:

ნიკოლოზ ვარამაშვილი

განათლება: ფიზიკის მაგისტრი – ივანე ჯავახიშვილის სახელობის თბილისის სახელმწიფო უნივერსიტეტი

არაფორმალური განათლება:
Epam Systems _ .NET -ის გაღრმავებული კურსი;
TBC IT აკადემია, .NET ბუთკამპი;
GITA _ Backend Development (c#) კურსი

სამუშაო გამოცდილება:
სახელმწიფო სტრუქტურებში ინფორმაციული ტექნოლოგიები – პროექტების დაგეგმვა და მათი იმპლემენტაცია, ტექნოლოგიების სწავლებები;
მოწვეული ლექტორი – ინფორმაციული ტექნოლოგიები და პროგრამირება

მოკლე აღწერა:

სილაბუსი:

#კურსის შინაარსიძირითადი მიგნებები
1 . კოლექციები

-კოლექციების კონცეფცია და არსი
-კოლექციის კლასების  მიმოხილვა: ArrayList, Stack, Queue, Hashtable, SortedList

საკლასო სამუშაო: 

https://docs.google.com/document/d/1gjEB-QFUmi9LNzouHZigePYxo28Dnhxn/edit?usp=sharing&ouid=116141115684822310651&rtpof=true&sd=true
List –  სია

Singly Linked List – ცალმხრივი სია

Doubly Linked List – ორმხრივი სია

ArrayList – მასივური ტიპის სია

Stack – სტეკი, დასტა

Queue – რიგი

Binary Tree – ორობითი ხისებრი სტრუქტურა
2.ასინქრონული პროგრამირება

-ასინქრონული პროგრამირების არსი
-ასინქრონული ნაკადები
-პარალელიზმი და კონკურენცია
-ამოცანების ბიბლიოთეკა (TPL)
-Async/Await რეზერვირებული სიტყვა
-ასინქრონულ ფაილებთან მუშაობა და შეტანა/გამოტანის ოპერაციები


საკლასო სამუშაო:
https://docs.google.com/document/d/17yNZ9JbPee5y-QV6eOWkY9XOZVHfDpYG

ნაკადის ცნება

რა არის Task

async/await რეზერვირებული სიტყვები

ნაკადებს შორის კონკურენცია
3. მეხსიერების მენეჯმენტი

-ობიექტების სასიცოცხლო ციკლი
-ნაგვის შემგროვებლის კონცეფცია
-ნაგვის შემგროვებლის თაობების კონცეფცია
-System.GC კლასი
Finalizer და Finalize() მეთოდი
-Dispose() მეთოდი და IDisposable ინტერფეისი

საშინაო დავალება: 
https://docs.google.com/document/d/1TCt7mV7Q5guHPYw1PecvaNu_trXgKHRy9yEKSwQpulA/edit?usp=sharing

Garbage Collector – ნაგვის 
შემგროვებელი

Managed & Unmanaged Heap 

GC თაობები

Finalize() და Dispose() მეთოდები
4. დავალების წარდგენა
5. დელეგატები (ნაწილი 1)

-დელეგატის ცნება
-დელეგატზე Subscribe და Unsubscribe
-unicast vs multicast დელეგატები
-დელეგატის გამოძახება
-ფუნქციისთვის ფუნქციის პარამეტრად გადაცემის საჭიროება
-დელეგატების გამოყენება მაღალი დონის ფუნქციებში (higher order functions)

საკლასო სამუშაო:

https://docs.google.com/document/d/1sdrfCxZeUg_K9exY3pvOLd0hlBCP06dPCJRswrx16nU/edit?usp=sharing
დელეგატის ცნება

unicast დელეგატები

multicast დელეგატები
6. დელეგატები (ნაწილი 2)

-ანონიმური მეთოდები
-ლამბდა გამოსახულებები
-ჯენერიკ დელეგატები
-ინფორმაციის გაგზავნა დელეგატების 
მეშვეობით
-ივენთები

საკლასო სამუშაო:

https://docs.google.com/document/d/1rpJT0WJ5V1sL8QbBNmr5kIxiLUmyyzSLdIG91xPfuHA/edit?usp=sharing
ივენთები

ანონიმური მეთოდები
7. Meta მონაცემები და რეფლექცია

მეტა მონაცემების საჭიროება
-რეფლექციის არსი
-მეთოდების რეფლექცია
-ველების რეფლექცია
-property-ების რეფლექცია
-რა არის ატრიბუტი
-ატრიბუტების გამოყენება
-ატრიბუტების შექმნა
-ატრიბუტები და რეფლექცია

საკლასო სამუშაო:

https://docs.google.com/document/d/1su4Ost7FGt0qImMAvylwWY2TRzoiuzviJvpADLNENZs/edit?usp=sharing
რეფლექცია

ატრიბუტი

მეტა მონაცემები
8. ფინალურ პროექტზე მუშაობა, ჯგუფური კონსულტაციები
9. ფინალურ პროექტზე მუშაობა, ჯგუფური კონსულტაციები
10. ფინალური პროექტის წარდგენა