Python Development

კურსის მიზანი

კურსის მიზანია სტუდენტებს შეასწავლოს Python პროგრამირების საფუძვლები ინტერაქციული და პრაქტიკული გაკვეთილებით. სტუდენტები ისწავლიან პროგრამირების საბაზისო კონცეპტებს, სხვადასხვა ტიპის მონაცემებთან მუშაობას და ასევე საშუალება ექნებათ გაეცნონ პროგრამირების გავრცელებულ პარადიგმებს, როგორიცაა ობიექტზე ორიენტირებული პროგრამირება და ფუნქციონალური პროგრამირება. სტუდენტები შეძლებენ შეძენილი ცოდნის გამოყენებას რეალურ აპლიკაციებში და ექნებათ საკმარისი ცოდნა იმისთვის რომ განაგრძონ სწავლა ისეთი მიმართულებებით, როგორიცაა ვებ დეველოპმენტი, მონაცემთა მეცნიერება და ავტომატიზაცია.

საბაზისო ცონის მიღებასთან ერთად, სტუდენტები ისწავლიან თუ როგორ იფიქრონ როგორც პროგრამისტებმა  — კურსში ყურადღება ექცევა პრობლემების გადაჭრის ზოგად პრინციპებს, რაც ყველა პროგრამირების ენას საერთო აქვს. ეს მიზანი მიიღწევა პითონის მონაცემთა სტრუქტურების საფუძვლიანი შესწავლით, მოდულარული დიზაინისა და სხვა პროგრამირების პრინციპების შესახებ პრაქტიკული მაგალითების განხილვით. მიღებული ცოდნის გამოყენება მყისიერად ხდება სავარჯიშოებსა და პროექტებში, რაც სტუდენტებს დაეხმარება უკეთ დასწავლაში და გაზრდის მათ თავდაჯერებას. კურსის განმავლობაში სტუდენტები ისწავლიან თანამედროვე დეველოპმენტის ხელსაწყოების გამოყენებას და აუცილებელ უნარებს, როგორიცაა Git ვერსიის კონტროლი, რითაც ისინი შეძლებენ უფრო დიდ პროექტებზე მუშაობას და განაგრძნობენ ზრდას პროგრამული უზრუნველყოფის დეველოპმენტის მუდმივად ცვალებად სფეროში.

  • პითონში ავტომატიზაციის სკრიპტების დაწერა და REPL-ის ეფექტურად გამოყენება;
  • ცვლადების, ოპერატორების, პირობითი ბრძანებების, ციკლების და ფუნქციების გამოყენება;
  • ძირითად მონაცემთა სტრუქტურებთან მუშაობა (strings, lists, dictionaries, sets);
  • კოდის ორგანიზაცია და დიზაინის პრინციპები, კლასებთან მუშაობა, OOP პრინციპების გამოყენება;
  • შეცდომებთან გამკლავება, Debugging და Profiling, კოდის რეფაქტორინგი, IDE-ში მუშაობა;
  • პროექტების მართვა Git/GitHub-ით და კოლაბორაცია;
  • API-ებთან მუშაობა და მათი გამოყენება რეალურ პროექტებში;
  • მონაცემთა მეცნიერების საბაზისო ბიბლიოთეკების გამოყენება;
  • ფინალური პროექტი შექმნა, რომელიც აერთიანებს მათ მიერ შეძენილ ყველა უნარს.

ლექცია 1: პირველი ნაბიჯები

  • რა არის პროგრამირება? რა არის პითონი?
  • რატომ არის პითონი პოპულარული, მისი გამოყენებები (ვები, მონაცემთა მეცნიერება, ავტომატიზაცია და ა.შ.)
  • პითონის ინსტალაცია და გარემოს გამართვა
  • IDE-ების გაცნობა (VSCode, PyCharm, Jupyter Notebook)
  • Python REPL-ის საბაზისო გამოყენება და “Hello, World!”
  • პითონის ინტერპრეტატორისა და სკრიპტების განსხვავება
  • დახმარების მიღება

ლექცია 2: საბაზისო ცოდნა

  • კოდის ორგანიზაცია: ინდენტაცია და კოდის ბლოკები
  • Print ოპერაცია და კომენტარები
  • საბაზისო ტიპები (Integers, Floats, Strings, Booleans)
  • ცვლადები და სახელდების კონვენციები
  • სტრიქონების საბაზისო ფორმატირება
  • input()-ის გამოყენება
  • ტიპებს შორის კონვერტაცია (Casting)

ლექცია 3: ოპერატორები და გამოსახულებები

  • არითმეტიკული ოპერატორები
  • შედარების ოპერატორები
  • ლოგიკური ოპერატორები
  • მინიჭების შემოკლებული ფორმები
  • ოპერაციების მიმდევრობა

ლექცია 4: პროგრამის დინების კონტროლი

  • if, elif, else პირობითი ბრძანებები
  • ჩადგმული პირობითი ბრძანებები
  • ლოგიკური ოპერატორების გამოყენება პირობაში
  • while ციკლი
  • for ციკლი, range(), enumerate()
  • ციკლის კონტროლი: break, continue

ლექცია 5: მონაცემთა სტრუქტურები - ნაწილი 1

  • ობიექტები პითონში
  • id() მეთოდი
  • სტრიქონები და სიმბოლოებთან მუშაობა
  • მასივები (Lists)
  • თაფლები (Tuples)
  • ლექსიკონები (Dictionaries)
  • სიმრავლეები (Sets)

ლექცია 6: მონაცემთა სტრუქტურები - ნაწილი 2

  • მიმდევრობებთან მუშაობა
  • ინდექსები და სლაისები
  • Unpacking და Assignment
  • Mutable vs. Immutable ტიპები
  • ზედაპირული vs. ღრმა კოპირება
  • List Comprehensions
  • None-ის მნიშვნელობა

ლექცია 7: ფუნქციები და სქოუფები

  • ფუნქციების განსაზღვრა
  • არგუმენტები და დაბრუნებული მნიშვნელობები
  • Default და Keyword არგუმენტები
  • ლოკალური და გლობალური ცვლადები
  • *args და **kwargs
  • DocStrings
  • ჩაშენებული ფუნქციები: abs, round, min, max და სხვ.

ლექცია 8: ფაილები, ნაკადები და სერიალიზაცია

  • ფაილების წაკითხვა და ჩაწერა
  • with და as ბრძანებები
  • os და pathlib
  • pickle, json, csv სერიალიზაცია

ლექცია 9: პროექტი #1

  • პროექტზე მუშაობის დაწყება და პრეზენტაცია

ლექცია 10: Git და GitHub

  • ვერსიების კონტროლი და GitHub
  • რეპოზიტორიის შექმნა და ბრძანებები
  • Branching, Merging, Rebasing
  • Pull Request და საუკეთესო პრაქტიკები

ლექცია 11: მოდულები და პაკეტები

  • საკუთარი მოდულების შექმნა
  • სტანდარტული ბიბლიოთეკა: math, random, datetime და სხვ.
  • pip-ის გამოყენება
  • პროექტის სტრუქტურა

ლექცია 12: შეცდომები, ლოგირება და დებაგინგი

  • შეცდომების ტიპები და try / except
  • finally, raise, as, საკუთარი exception-ები
  • debugging რჩევები
  • პროფაილინგი: timeit, cProfile

ლექცია 13: გენერატორები

  • Iterators vs. Iterables
  • __iter__, __next__, yield
  • Generator Expressions

ლექცია 14: ობიექტზე ორიენტირებული პროგრამირება (OOP) - ნაწილი 1

  • კლასები და ობიექტები
  • __init__, self, ატრიბუტები
  • კლასური და ინსტანციური მეთოდები

ლექცია 15: პროექტი #2

  • საშუალო დონის პრაქტიკული პროექტი

ლექცია 16: ობიექტზე ორიენტირებული პროგრამირება (OOP) - ნაწილი 2

  • მემკვიდრეობა, პოლიმორფიზმი, კომპოზიცია
  • სპეციალური მეთოდები: __str__, __repr__ და სხვ.

ლექცია 17: ფუნქციონალური პროგრამირება

  • Lambda, Pure Functions, Decorators
  • filter, map, reduce
  • რეკურსია

ლექცია 18: “პითონური” კოდი

  • კოდირების სტანდარტები და კონვენციები
  • Duck Typing, Type Hints

ლექცია 19: კოდის რეფაქტორინგი

  • DRY, KISS პრინციპები
  • Code Smells
  • დეკომპოზიცია და რეფაქტორინგი

ლექცია 20: დეველოპმენტ გარემო

  • Command-Line, ვერსიების მენეჯმენტი
  • ვირტუალური გარემოები და პაკეტების მენეჯმენტი
  • PyCharm დიბაგერი, Copilot

ლექცია 21: ვებთან და API-ებთან მუშაობა

  • HTTP და requests ბიბლიოთეკა
  • Postman, JSON და API parsing

ლექცია 22: პროექტი #3

  • საშუალო-მაღალი დონის პროექტი

ლექცია 23: მონაცემთა მეცნიერების შესავალი

  • Jupyter, NumPy, Pandas
  • გრაფიკები matplotlib ან plotly
  • Machine Learning-ზე გადასასვლელი ბილიკი

ლექცია 24: ფინალური პროექტი

  • დამოუკიდებელი მუშაობა და პრეზენტაცია
  • ლუკა ნადირაძე უკვე 2 წელია წამყვან დეველოპერად მუშობს The Works Research Institute-ში, სადაც სამეცნიერო კვლევების განხორციელებისთვის ყოველდღიურად იყენებს Python-ს;
  • ლუკას აქვს კომპიუტერული ინჟინერიის ბაკალავრის ხარისხი და ამჟამად მუშაობს სამაგისტრო ნაშრომზე ნეირომეცნიერებების მიმართულებით;
  • მას აქვს გამოცდილება თამაშების დეველოპმენტში, Full-Stack დეველოპმენტში და რობოტიკაში;
  • ლუკას სტუდენტებთან მუშაობის გამოცდილებაც აქვს, მენტორისა და ლექტორის ასისტენტის როლებში.
  • სასურველია ინგლისურის ენის საბაზისო დონეზე ცოდნა
  • პითონში ავტომატიზაციის სკრიპტების დაწერა და REPL-ის ეფექტურად გამოყენება;
  • ცვლადების, ოპერატორების, პირობითი ბრძანებების, ციკლების და ფუნქციების გამოყენება;
  • ძირითად მონაცემთა სტრუქტურებთან მუშაობა (strings, lists, dictionaries, sets);
  • კოდის ორგანიზაცია და დიზაინის პრინციპები, კლასებთან მუშაობა, OOP პრინციპების გამოყენება;
  • შეცდომებთან გამკლავება, Debugging და Profiling, კოდის რეფაქტორინგი, IDE-ში მუშაობა;
  • პროექტების მართვა Git/GitHub-ით და კოლაბორაცია;
  • API-ებთან მუშაობა და მათი გამოყენება რეალურ პროექტებში;
  • მონაცემთა მეცნიერების საბაზისო ბიბლიოთეკების გამოყენება;
  • ფინალური პროექტი შექმნა, რომელიც აერთიანებს მათ მიერ შეძენილ ყველა უნარს.

ლექცია 1: პირველი ნაბიჯები

  • რა არის პროგრამირება? რა არის პითონი?
  • რატომ არის პითონი პოპულარული, მისი გამოყენებები (ვები, მონაცემთა მეცნიერება, ავტომატიზაცია და ა.შ.)
  • პითონის ინსტალაცია და გარემოს გამართვა
  • IDE-ების გაცნობა (VSCode, PyCharm, Jupyter Notebook)
  • Python REPL-ის საბაზისო გამოყენება და “Hello, World!”
  • პითონის ინტერპრეტატორისა და სკრიპტების განსხვავება
  • დახმარების მიღება

ლექცია 2: საბაზისო ცოდნა

  • კოდის ორგანიზაცია: ინდენტაცია და კოდის ბლოკები
  • Print ოპერაცია და კომენტარები
  • საბაზისო ტიპები (Integers, Floats, Strings, Booleans)
  • ცვლადები და სახელდების კონვენციები
  • სტრიქონების საბაზისო ფორმატირება
  • input()-ის გამოყენება
  • ტიპებს შორის კონვერტაცია (Casting)

ლექცია 3: ოპერატორები და გამოსახულებები

  • არითმეტიკული ოპერატორები
  • შედარების ოპერატორები
  • ლოგიკური ოპერატორები
  • მინიჭების შემოკლებული ფორმები
  • ოპერაციების მიმდევრობა

ლექცია 4: პროგრამის დინების კონტროლი

  • if, elif, else პირობითი ბრძანებები
  • ჩადგმული პირობითი ბრძანებები
  • ლოგიკური ოპერატორების გამოყენება პირობაში
  • while ციკლი
  • for ციკლი, range(), enumerate()
  • ციკლის კონტროლი: break, continue

ლექცია 5: მონაცემთა სტრუქტურები - ნაწილი 1

  • ობიექტები პითონში
  • id() მეთოდი
  • სტრიქონები და სიმბოლოებთან მუშაობა
  • მასივები (Lists)
  • თაფლები (Tuples)
  • ლექსიკონები (Dictionaries)
  • სიმრავლეები (Sets)

ლექცია 6: მონაცემთა სტრუქტურები - ნაწილი 2

  • მიმდევრობებთან მუშაობა
  • ინდექსები და სლაისები
  • Unpacking და Assignment
  • Mutable vs. Immutable ტიპები
  • ზედაპირული vs. ღრმა კოპირება
  • List Comprehensions
  • None-ის მნიშვნელობა

ლექცია 7: ფუნქციები და სქოუფები

  • ფუნქციების განსაზღვრა
  • არგუმენტები და დაბრუნებული მნიშვნელობები
  • Default და Keyword არგუმენტები
  • ლოკალური და გლობალური ცვლადები
  • *args და **kwargs
  • DocStrings
  • ჩაშენებული ფუნქციები: abs, round, min, max და სხვ.

ლექცია 8: ფაილები, ნაკადები და სერიალიზაცია

  • ფაილების წაკითხვა და ჩაწერა
  • with და as ბრძანებები
  • os და pathlib
  • pickle, json, csv სერიალიზაცია

ლექცია 9: პროექტი #1

  • პროექტზე მუშაობის დაწყება და პრეზენტაცია

ლექცია 10: Git და GitHub

  • ვერსიების კონტროლი და GitHub
  • რეპოზიტორიის შექმნა და ბრძანებები
  • Branching, Merging, Rebasing
  • Pull Request და საუკეთესო პრაქტიკები

ლექცია 11: მოდულები და პაკეტები

  • საკუთარი მოდულების შექმნა
  • სტანდარტული ბიბლიოთეკა: math, random, datetime და სხვ.
  • pip-ის გამოყენება
  • პროექტის სტრუქტურა

ლექცია 12: შეცდომები, ლოგირება და დებაგინგი

  • შეცდომების ტიპები და try / except
  • finally, raise, as, საკუთარი exception-ები
  • debugging რჩევები
  • პროფაილინგი: timeit, cProfile

ლექცია 13: გენერატორები

  • Iterators vs. Iterables
  • __iter__, __next__, yield
  • Generator Expressions

ლექცია 14: ობიექტზე ორიენტირებული პროგრამირება (OOP) - ნაწილი 1

  • კლასები და ობიექტები
  • __init__, self, ატრიბუტები
  • კლასური და ინსტანციური მეთოდები

ლექცია 15: პროექტი #2

  • საშუალო დონის პრაქტიკული პროექტი

ლექცია 16: ობიექტზე ორიენტირებული პროგრამირება (OOP) - ნაწილი 2

  • მემკვიდრეობა, პოლიმორფიზმი, კომპოზიცია
  • სპეციალური მეთოდები: __str__, __repr__ და სხვ.

ლექცია 17: ფუნქციონალური პროგრამირება

  • Lambda, Pure Functions, Decorators
  • filter, map, reduce
  • რეკურსია

ლექცია 18: “პითონური” კოდი

  • კოდირების სტანდარტები და კონვენციები
  • Duck Typing, Type Hints

ლექცია 19: კოდის რეფაქტორინგი

  • DRY, KISS პრინციპები
  • Code Smells
  • დეკომპოზიცია და რეფაქტორინგი

ლექცია 20: დეველოპმენტ გარემო

  • Command-Line, ვერსიების მენეჯმენტი
  • ვირტუალური გარემოები და პაკეტების მენეჯმენტი
  • PyCharm დიბაგერი, Copilot

ლექცია 21: ვებთან და API-ებთან მუშაობა

  • HTTP და requests ბიბლიოთეკა
  • Postman, JSON და API parsing

ლექცია 22: პროექტი #3

  • საშუალო-მაღალი დონის პროექტი

ლექცია 23: მონაცემთა მეცნიერების შესავალი

  • Jupyter, NumPy, Pandas
  • გრაფიკები matplotlib ან plotly
  • Machine Learning-ზე გადასასვლელი ბილიკი

ლექცია 24: ფინალური პროექტი

  • დამოუკიდებელი მუშაობა და პრეზენტაცია
  • ლუკა ნადირაძე უკვე 2 წელია წამყვან დეველოპერად მუშობს The Works Research Institute-ში, სადაც სამეცნიერო კვლევების განხორციელებისთვის ყოველდღიურად იყენებს Python-ს;
  • ლუკას აქვს კომპიუტერული ინჟინერიის ბაკალავრის ხარისხი და ამჟამად მუშაობს სამაგისტრო ნაშრომზე ნეირომეცნიერებების მიმართულებით;
  • მას აქვს გამოცდილება თამაშების დეველოპმენტში, Full-Stack დეველოპმენტში და რობოტიკაში;
  • ლუკას სტუდენტებთან მუშაობის გამოცდილებაც აქვს, მენტორისა და ლექტორის ასისტენტის როლებში.
  • სასურველია ინგლისურის ენის საბაზისო დონეზე ცოდნა

1350 ₾

(განვადებით თვეში 30 ლარიდან)

გჭირდება რჩევა?
ჩვენი ოპერატორი კავშირზეა