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

ნიკოლოზ ვარამაშვილი
განათლება: ფიზიკის მაგისტრი – ივანე ჯავახიშვილის სახელობის თბილისის სახელმწიფო უნივერსიტეტი
არაფორმალური განათლება:
Epam Systems _ .NET -ის გაღრმავებული კურსი;
TBC IT აკადემია, .NET ბუთკამპი;
GITA _ Backend Development (c#) კურსი
სამუშაო გამოცდილება:
სახელმწიფო სტრუქტურებში ინფორმაციული ტექნოლოგიები – პროექტების დაგეგმვა და მათი იმპლემენტაცია, ტექნოლოგიების სწავლებები;
მოწვეული ლექტორი – ინფორმაციული ტექნოლოგიები და პროგრამირება
მოკლე აღწერა:
| შეხვედრების რაოდენობა | 10 შეხვედრა ლექცია 7 (2 საათი) საკონსულტაციო შეხვედრა 2 (2 საათი) ფინალური პროექტის წარდგენა |
| სასწავლო კურსის მიზანი | დღევანდელ სამყაროში ჩვენს გარშემო უკვე უამრავი ჭკვიანი მოწყობილობა და აპლიკაციაა, რომელთა გამოყენებაც ფაქტობრივად ადამიანებისთვის ყოველდღიურობას წარმოადგენს. ხსენებულ სმარტ გარემოსთან მუდმივი კომუნიკაცია ბუნებრივად აუცილებელია, რისი მიღწევაც შესაძლებელია ისეთი სფეციფიკური, ხელოვნური ენების გამოყენებით, რომელთაც პროგრამირების ენებს ვუწოდებთ. დღეისათვის, მათგან ერთ-ერთი გამორჩეული და პოპულარული ენა არის c#, რომლის გაღრმავებული სწავლებაც ჩვენი კურსის მიზანს წარმოადგენს. იგი გამოირჩევა მარტივი სინტაქსით, არის ობიექტზე ორიენტირებული პარადიგმის, ასევე თავსებადი მრავალ ოპერაციულ სისტემასთან (ქროსპლატფორმული) და უსაფრთხო. C# გამოიყენება ყველა ტიპის აპლიკაციის შესაქმნელად, როგორიცაა: windows ფორმები, კონსოლური, ვებ, მობილური, Cloud და Azure აპლიკაციები, თამაშები, საგნების ინტერნეტი (IoT) და სხვა. კურსის პრაქტიკული ხასიათიასაა, კურსის ბოლოს სტუდენტებს ექნებათ შესაბამისი ცოდნა შექმნან კონსოლური ტიპის თამაშის აპლიკაცია. |
| სწავლის შედეგი | დღევანდელ სამყაროში ჩვენს გარშემო უკვე უამრავი ჭკვიანი მოწყობილობა და აპლიკაციაა, რომელთა გამოყენებაც ფაქტობრივად ადამიანებისთვის ყოველდღიურობას წარმოადგენს. ხსენებულ სმარტ გარემოსთან მუდმივი კომუნიკაცია ბუნებრივად აუცილებელია, რისი მიღწევაც შესაძლებელია ისეთი სფეციფიკური, ხელოვნური ენების გამოყენებით, რომელთაც პროგრამირების ენებს ვუწოდებთ. დღეისათვის, მათგან ერთ-ერთი გამორჩეული და პოპულარული ენა არის c#, რომლის გაღრმავებული სწავლებაც ჩვენი კურსის მიზანს წარმოადგენს. იგი გამოირჩევა მარტივი სინტაქსით, არის ობიექტზე ორიენტირებული პარადიგმის, ასევე თავსებადი მრავალ ოპერაციულ სისტემასთან (ქროსპლატფორმული) და უსაფრთხო. C# გამოიყენება ყველა ტიპის აპლიკაციის შესაქმნელად, როგორიცაა: windows ფორმები, კონსოლური, ვებ, მობილური, Cloud და Azure აპლიკაციები, თამაშები, საგნების ინტერნეტი (IoT) და სხვა. კურსის პრაქტიკული ხასიათიასაა, კურსის ბოლოს სტუდენტებს ექნებათ შესაბამისი ცოდნა შექმნან კონსოლური ტიპის თამაშის აპლიკაცია. |
სილაბუსი:
| # | კურსის შინაარსი | ძირითადი მიგნებები |
| 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. | ფინალური პროექტის წარდგენა |