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

ნიკოლოზ კუჭუხიძე
განათლება: ივანე ჯავახიშვილის სახელობის თბილისის სახელმწიფო უნივერსიტეტი – კომპიუტერული მეცნიერებების ბაკალავრი
არაფორმალური განათლება:
“TBC x USAID – ტექნოლოგიური განათლებისთვის” – ტრენერთა ტრენინგი (ToT);
თიბისი IT აკადემია – .NET Core
სამუშაო გამოცდილება:
Software Developer at IT & Banking Systems Development Departament (PASHA Bank in Georgia);
.NET Developer (Service Agency of MIA of Georgia);
Software Developer at The Software Architecture and Data Exchange Division (Georgia Revenue Service)
მოკლე აღწერა:
| შეხვედრების რაოდენობა | 24 შეხვედრა 22 ლექცია (2სთ 30წთ) შუალედური გამოცდა (Live coding) ფინალური პროექტის წარდგენა |
| სასწავლო კურსის მიზანი | კურსის მიზანია პროგრამირების შესწავლა C#-ის გამოყენებით, რაც სტუდენტებს დაეხმარებათ გაიგონ რა არის პროგრამირება, როგორ ასრულებს კომპიუტერი ადამიანის დაწერილ ბრძანებებს, როგორ გამოიყურება C#-ის სინტაქსი და რა ხელსაწყოები გვჭირდება პროგრამის შესაქმნელად. C#-ის შესწავლის შემდეგ სტუდენტები მზად იქნებიან აირჩიონ პროგრამირების ნებისმიერი განხრა და შეისწავლონ საჭირო ფრეიმვორკები და ტექნოლოგიები. C# თანამედროვეობაში ერთ-ერთი პოპულარული ენაა, რომელიც თითქმის ყოველწლიურად ვითარდება და გვთავაზობს მეტ შესაძლებლობას. მისი დახმარებით შეგვიძლია შევქმნათ ვებ აპლიკაციები, კონსოლ აპლიკაციები, დესკტოპ აპლიკაციები, თამაშები და კიდევ ბევრი სხვა ტიპის პროგრამა. ეს ენა დიდ შესაძლებლობებს იძლევა, ასევე განვითარებადია და მოთხოვნადი ბაზარზე, ასე რომ C#-ის საფუძვლიანად შესწავლა ადამიანს აქცევს მოთხოვნად დეველოპერად. |
| სწავლის შედეგი | კურსის ბოლოს სტუდენტები ეცოდინებათ: -C# პროგრამირების ენა -ობიექტზე ორიენტირებული პროგრამირება (OOP) -საძიებო სისტემებისა და AI chatbot-ების გამოყენება ცოდნის გასაღრმავებლად -Git, Github -პროგრამირების სხვადასხვა განხრის შესახებ, რომლის სწავლასაც სამომავლოდ გააგრძელებენ სრული სტეკის შესავსებად. |
სილაბუსი:
| # | კურსის შინაარსი | ძირითადი მიგნებები |
| 1 . | შესავალი პროგრამირებაში -რა არის პროგრამირება -რა არის Visual Studio -რა არის C# -რა არის .NET -პირველი კონსოლ აპლიკაციის შექმნა -რა არის solution, project და .cs ფაილი -Namespace -Main ფუნქცია -მონაცემთა მარტივი ტიპები -ცვლადები -ბეჭდვა კონსოლში -როგორ ასრულებს კომპიუტერი ადამიანის ბრძანებებს -GIT & GITHUB მიმოხილვა დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით. GITHUB-ის გამართვა დეტალური ინსტრუქციების მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ | პროგრამირება სამუშაო გარემო პროგრამირების ენა აპლიკაციის ტიპები მონაცემი კომპიუტერის მუშაობა ვერსიის კონტროლი |
| 2. | შესავალი C#-ში -string ტიპი -მათემატიკური ოპერატორები -null -string-ის კონსოლიდან შეტანა -Console კლასი -Convert კლასი -Parse -string-ის მეთოდები -Runtime -Compile Time დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ | ინფორმაციის დაყოფა მონაცემებად მომხმარებლის გამოცდილება |
| 3. | C# Conditions & Loops -if, elseif, else Condition -switch -for ციკლი -while ციკლი -do while ციკლი -break, continue -ტერნარული ოპერატორი დავალება: გავლილი ლექციების შემაჯამებელი პროექტი -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ | პროგრამის დამოკიდებულება პროგრამისტზე ალგორითმის შემუშავება კოდის შექმნამდე |
| 4. | დავალების შეჯამება & მეთოდი -საუკეთესო და არაოპტიმალური კოდის ფრაგმენტების გარჩევა დავალებებიდან -მეთოდი -return -void -DRY principle -Single-responsibility principle დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ. | პერფორმანსი სუფთა კოდი |
| 5. | მასივები -მასივი -მრავალგანზომილებიანი მასივი -ჩადგმული მასივი (მასივის მასივი) -Array კლასი დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ. | სიმრავლე |
| 6. | C# class & OOP basic concepts (ნაწილი პირველი) -ობიექტი -კლასი -კონსტრუქტორი -Field -Properties -წვდომის მოდიფიკატორები (Public, Private, Internal) -new keyword -Encapsulation -Compile Time Polymorphism (method overloading) დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ. | ობიექტი ობიექტზე ორიენტირებული პროგრამირება წვდომა რესურსებზე პროგრამირების პარადიგმა |
| 7. | OOP basic concepts (ნაწილი მეორე) -Object class -Runtime Polymorphism (method overriding) -მემკვიდრეობა -წვდომის მოდიფიკატორები (Protected) -abstract class -static class დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ | ობიექტის წარმოდგენა კოდში |
| 8. | OOP basic concepts (ნაწილი მესამე) -Abstraction -interface -Upcasting -Downcasting -Reference type -Value type დავალება: გავლილი ლექციების შემაჯამებელი პროექტი -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ | კომპიუტერის მეხსიერება მონაცემის საცავი |
| 9. | Exception Handling -Exception -try catch finally -Custom Exception -throw -re-throw -Stack trace დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ. | შეცდომა პროგრამაში შეცდომის გამოკვლევა |
| 10. | დავალების შეჯამება & პარამეტრების გადაცემის ტექნიკები -საუკეთესო და არაოპტიმალური კოდის ფრაგმენტების გარჩევა დავალებებიდან -out -ref -in -params -default parameters -TryParse დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ. | აუდიტორია სიცხადე უკუკავშირი |
| 11. | Live Coding სტუდენტებს ლაივში მიეცემათ ამოცანა, რომლის შესასრულებლადაც ექნებათ შეზღუდული დრო და დამოუკიდებლად უნდა შეიმუშაონ პროგრამა პრობლემის გადასაჭრელად. | საკუთარი სისუსტეების პოვნა რეალურ გარემოში. |
| 12. | Live Coding-ის შეჯამება & მონაცემთა სტრუქტურები (ნაწილი პირველი) -საუკეთესო და არაოპტიმალური კოდის ფრაგმენტების გარჩევა დავალებებიდან -ArrayList -Enumerable -Foreach დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვი. -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ | მონაცემთა სტრუქტურები |
| 13. | მონაცემთა სტრუქტურები (ნაწილი მეორე) -Generic -List -Collection -Dictionary დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ | როგორ გავხადოთ კოდი მრავალჯერ გამოყენებადი და შესაბამისი სხვადასხვა შემთხვევებისთვის |
| 14. | მონაცემთა სტრუქტურები (ნაწილი მესამე) -Stack -Queue -KeyValuePair -Tuple დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ. | |
| 15. | სუფთა კოდის ტექნიკები -Liskov Substitution Principle -Interface segregation Principle -readonly -const -init დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ. | დიზაინ პატერნი |
| 16. | სხვა ტიპები და keyword-ები -enum -record -struct -ოპერატორების გადატვირთვა -virtual დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ. | |
| 17. | დელეგატები -Func -Action -Predicate -Expression დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ. | |
| 18. | LINQ დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ. | |
| 19. | ფაილებთან მუშაობა (I/O) -StreamReader -StreamWriter -FileStream -Dispose -using -File -MemoryStream დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ. | რა არის სტრიმი |
| 20. | Garbage Collector დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ. | მეხსიერების ოპტიმიზაცია |
| 21. | ასინქრონული პროგრამირება -Thread -Task -CancellationToken -Async await დავალება: დამოუკიდებლად შესასრულებელი ამოცანები დაფარული მასალის მიხედვით -პროექტის იდეების მოფიქრება -დამატებითი ინფორმაციის მოძიება დაფარული მასალის შესახებ | ასინქრონული პროგრამირება |
| 22. | პროექტის იდეების განხილვა და იმპლემენტაციის დაწყება ამოცანის შემუშავება, დაგეგმვა და კოდში რეალიზება | |
| 23. | პროექტების პროგრესის განხილვა პროექტის მართვა | |
| 24. | პროექტის წარდგენა პროექტის პრეზენტაცია პროექტის დოკუმენტაცია |