პროგრამირება C#-ით: პრაქტიკული გზამკვლევი

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

ნიკოლოზ კუჭუხიძე

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

არაფორმალური განათლება:
“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) 

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

სილაბუსი:

#კურსის შინაარსიძირითადი მიგნებები
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.პროექტის წარდგენა

პროექტის
პრეზენტაცია

პროექტის
დოკუმენტაცია