Kurs Object Oriented Programming in Python

Kurs Object Oriented Programming in Python objašnjava zašto je dobro programirati objektno i kreirati i koristiti klase, kao i koji su njeni članovi, koja je razlika između polja klase i njenih metoda i šta oba pojma predstavljaju, šta se podrazumeva pod instanciranjem jedne klase, odnosno pravljenjem njenih objekata. 

Objektno programiranje, kao najzastupljeniji oblik programiranja danas, prisutno je i veoma korišćeno i u Python programiranju, pa se tokom ovog kursa ono detaljno proučava u kontekstu ovog jezika. Kroz kurs obnavljaju se svi prethodno naučeni gradivni blokovi i dopunjuju novim, objektno orijentisanim programskim elementima. Detaljno je objašnjen koncept kompozicije podataka u objekte. Razjašnjava se pojam klase u objektnom programiranju, njenih komponenti, načina na koje se može koristiti – kao samostalna jedinica sistema ili kao šablon za kreiranje različitih objekata.

Takođe se obrađuju i napredne tehnike u objektnom programiranju, predstavlja se koncept nasleđivanja, prave se kompleksne hijerarhijske objektne strukture, vrši prepisivanje i preopterećenje metoda, a različitim članovima klase dopušta ili zabranjuje upotreba kontrolom pristupa. 

Programabilno se analiziraju objekti i klase u potrazi za njihovim članovima kroz tehnike refleksije. 

Pažnja je posvećena i paralelnom izvršavanju programa, kroz rad sa nitima. Ovom oblašću obuhvaćeno je pokretanje delova programa koji se izvršavaju paralelno sa glavnim programom, pristupanje različitim resursima programa iz takvih procesa, rešavanje problema konkurentnosti u takvim operacijama, pokretanje i zaustavljanje paralelnih procesa. 

Tokom kursa proučava se i nepisano veoma važna oblast objektnog programiranja – dizajn šabloni. Ova oblast, osim što je neizostavna na gotovo svakom konkursu za posao, olakšava razumevanje i pamćenje programskih rešenja, naročito u objektnom programiranju. Njenim dobrim savladavanjem lako se usvajaju i drugi koncepti, poput upravljanja događajima.

Zanima vas ovaj kurs? Možete ga pohađati u okviru ovih ITAcademy programa: Python Development Program.

Opis i ciljevi kursa Object Oriented Programming in Python

Misija ovog kursa je da polaznika u potpunosti osposobi za prevazilaženje svih mogućih izazova u Python programiranju. Nakon njegovog kompletiranja, uz usvojeno njegovo gradivo i gradivo prethodnih Python kurseva, polaznik može sa razumevanjem ispratiti bilo koji Python projekat i učestvovati u njegovoj izradi ili modifikaciji. 

Može da kreira sopstvenu objektnu infrastrukturu koristeći klase i njihove članove i implementira različite šablone programiranja u različitim projektima. Poznaje sve koncepte, pravila i karakteristike programskog jezika Python i upotrebljava ih produkciono.

Uspešno kontroliše izuzetke u programu, manipuliše paralelnim izvršavanjem aplikacije, poznaje upravljanje memorijom i resursima i uspešno uklanja greške u programu i debaguje ga. 

Kurs Object Oriented Programming in Python će vam odgovoriti na pitanja:

1. Šta je objektno programiranje?

Objektno programiranje je vrsta programiranja u kojoj se kao gradivni blokovi koriste objekti. S obzirom na to da postoji više varijanti objektnog programiranja, postoje i različiti oblici postojanja i tretiranja objekata. Objekti najčešće poseduju svojstva i metode. Svojstva su osobine objekata. Njihovim vrednostima kontroliše se način na koji će objekti biti prezentovani svetu oko sebe. Metode su funkcionalnosti objekata.

To je ono što objekat može da radi. Na primer, trenutni kanal na TV uređaju jeste njegovo svojstvo. Menjanje kanala je metoda TV uređaja. Upotrebom funkcionalnosti za menjanje kanala menjamo kanal, čime se menja ono što trenutno gledamo. Objektno programiranje je jedan od najčešćih tipova programiranja danas, zbog čega je njegovo poznavanje neizbežno u gotovo svakoj grani programiranja. A Python, kao potpuno objektni jezik, zahvaljujući svojoj jednostavnosti, odlično je sredstvo za ulazak u ovu oblast.

2. Šta je objekat, a šta klasa?

U objektnom programiranju često srećemo ova dva pojma. I oni su najčešće povezani. Klasa je nacrt po kome pravimo objekte, a objekti su elementi koji učestvuju u izvršavanju programa i svojim osobinama i funkcionalnostima čine da on isporuči željene rezultate.

U jeziku u kome postoje klase postoje i objekti, ali je moguće da u nekom jeziku postoje objekti, ali ne i klase. Python ima mogućnost kreiranja sopstvenih klasa, a predefinisano sadrži i mnoštvo ugrađenih. U zavisnosti od pristupa programera, kao i njegovog stila kodiranja, u ovom jeziku moguće je kreirati sopstvene klase i raditi potpuno objektno ili raditi tradicionalnim, proceduralnim tehnikama.

3. Šta su to tipovi programiranja i koji sve postoje?

Postoje mnoge klasifikacije programiranja koje se uzajamno razlikuju u zavisnosti od ugla posmatranja. Neke su u vezi sa samim načinom pisanja koda (kodiranja), poput imperativnog i deklarativnog programiranja, neke su u vezi sa realizacijom koda, poput pair programminga, dok su neke jednostavno deo nekog generalnog koncepta, poput test-driven ili agile programiranja. Ipak, kada govorimo o tipovima programiranja, najčešće mislimo na razlike između imperativnog i deklarativnog programiranja.

Imperativno programiranje je iterativno, sekvencijalno i okrenuto funkcionalnostima, implementaciji detalja i kontroli toka programa. Deklarativno programiranje je posvećeno definiciji ciljeva pre nego samoj implementaciji. Mogli bismo reći da bi, analogno konstrukciji automobila, imperativno programiranje bilo poput pravljenja motora i određivanja toga kako motor treba da radi, dok bi deklarativno programiranje bilo nalik određivanju toga gde motor treba da stoji i šta treba da radi.

Kurs Object Oriented Programming in Python

4. Šta je to dibaging?

Dibaging je proces pronalaženja nepravilnosti i grešaka u nekom programu. Ovaj proces se sastoji od mnogih koraka koji nisu uzajamno povezani. Na primer, pažljivo čitanje koda u potrazi za logičkim greškama može biti tretirano kao dibaging. Takođe, izvođenje automatskog testa nad kodom može biti smatrano dibagingom. 

Pojam dibaginga obuhvata i izvršavanje programa liniju po liniju. Ovakva opcija je dostupna u gotovo svim okruženjima za izgradnju programa, pa tako i u onima u kojima se pišu Python programi. Dibaging je važan koliko i samo pravljenje programa, jer proporcionalno rastu programa pronalaženje grešaka postaje sve teže, a i njihove posledice dobijaju na težini.

5. Da li je Python objektni jezik?

Python je objektno orijentisan programski jezik. Ima pun objektno orijentisani kapacitet koji podrazumeva klase, objekte, nasleđivanje, polimorfizam i sve ostale karakteristike modernih programskih jezika. Sa druge strane, iako je sve u ovom programskom jeziku bazirano na objektima, on se može koristiti proceduralno ili funkcionalno. 

S obzirom na jednostavnu sintaksu i moćni objektni model koji ovaj jezik sadrži, lako se usvaja i koristi. U Pythonu je svaki podatak realizovan kao objekat – bez obzira na to da li je reč o prostom tipu, poput broja ili karaktera, ili kompleksnom tipu, poput objekata za rad sa nitima ili vremenom.

6. Šta su metode, a šta funkcije?

Pojam funkcije u programiranju može se okarakterisati kao potprogram čije je izvršavanje inicirano nekim drugim programom. U zavisnosti od implementacije jezika, ovaj potprogram može u manjoj ili većoj meri biti „svestan” elemenata glavnog programa. Najčešće se funkcijama prilikom startovanja prosleđuju neke informacije, a nakon izvršavanja se od njih uzimaju neki rezultati. Ponekad se funkcije nazivaju i porukama, jer pomoću njih jedan deo programa šalje poruku nekom drugom delu programa.

Metode su tehnički isto što i funkcije. Imaju mogućnost startovanja, prihvataju neke parametre i mogu da vrate neke vrednosti, a razlika je u tome što se one mogu naći isključivo u objektima. Možemo reći da je metoda zapravo funkcija u sastavu objekta. Metode najčešće imaju mogućnost da vide elemente objekta unutar koga se izvršavaju i koriste se upravo za izmene karakteristika tog objekta.

7. Šta su to dizajn šabloni (design patterns)?

Iako reč dizajn asocira na to da se možda radi o nekoj grafičkoj komponenti aplikacije, dizajn šabloni su, zapravo, veoma daleko od toga. To su, u stvari, čisto programski oblici, koji imaju veze isključivo sa programskom strukturom aplikacije.

Dizajn šablon predstavlja standardno rešenje nekog opštepoznatog problema u programiranju. Do ovih rešenja se došlo tokom decenija upotrebe programskih jezika i može se reći da korišćenjem ovakvog šablona standardizujemo rešenje nekog čestog problema.

Iako reč šablon asocira da je to nešto što možemo primeniti po pristupu Copy/Paste, to nije tako. Šablon prikazuje kako se neki problem rešava, ali na nama je da ga pravilno integrišemo u objektnu strukturu konkretne aplikacije. Količina dostupnih šablona je velika; u kursu ćemo obraditi neke od najpoznatijih i najčešće korišćenih u Pythonu.

Plan i program predavanja

Modul 1 – Uvod u objektno orijentisano programiranje

  • Tipovi programiranja
  • Koncepti objektno orijentisanog programiranja

Modul 2 – Klase i objekti

  • Klase i objekti
  • Članovi klase, polja i metode
  • Statički i instancni članovi klasa
  • Dekoratori
  • Enkapsulacija, nasleđivanje, polimorfizam
  • Apstraktne klase

Modul 3 – Dibagovanje i rukovanje greškama

  • Upravljanje datumom i vremenom
  • Upravljanje greškama i izuzecima

Modul 4 – Napredno objektno programiranje

  • Refleksija
  • Generički tipovi
  • Upravljanje nitima i procesima
  • Upravljanje događajima
  • Dizajn šabloni

Polaznici kursa

3 načina da dobijete odlično plaćen posao

Spremili smo dokument koji otkriva tri pouzdana načina za dolazak na dobro plaćenu poziciju za stručan rad sa računarima. Preuzmite izveštaj ovde.

Da li ima mesta? Upisni rok je otvoren!

Da saznate sve o upisu, kliknite ovde