ݺߣ

ݺߣShare a Scribd company logo
Priprema za
završni
pismeni ispit
Python developer
Sadržaj
• Polaganje ispita i bodovanje
• Ponavljanje gradiva
Polaganje ispita i
bodovanje
Razine pitanja po težini i bodovanje
• Prilikom polaganja ispita polaznik se može susresti sa 4 težine
pitanja:
• lako: 2 boda
• srednje teško: 3 boda
• teško: 4 boda
• jako teško: 5 bodova
Formati pitanja
• Radio button: samo jedan točan odgovor
• Checkbox: više točnih odgovora
• Kratki odgovori
• Dugi odgovori: prazno crtovlje za tekst (esejski oblik odgovora)
Važno!
• Pitanja nemaju ograničeno trajanje.
• Pitanja možete označiti i vratiti se na njih koliko god puta želite, sve dok ne završite ispit
klikom na “Završi ispit”.
• Procjena vremena potrebnog za riješavanje određenih zadataka:
• Pitanja višestrukog odabira: 30 – 60 sekundi
• Pitanja kratkog odgovora: 60 sekundi
• Esejska pitanja: 120 - 180 sekundi
• Problemski zadaci: do 15 minuta
Ukupno vrijeme koje polaznici imaju za polaganje ispita je 90 minuta.
Postotak potreban za prolaz ispita: 50%
Ostala pitanja i odgovori…
• Koji dio gradiva je zastupljen u pismenom ispitu?
• Možete se susresti s gradivom iz svih seminara obrađenih na nastavi.
• Postoji li razlika između polaganja ispita online i u učionici?
• Ne postoji. Bez obzira na to jeste li nastavu slušali u učionici ili online, ispit polažete u
učionicama Algebra centara.
Ostala pitanja i odgovori…
• Što kada položimo i ovaj dio ispita?
• Nakon što položite i pismeni dio ispita, moći ćete preuzeti potvrdu i uvjerenje o
završenom programu obrazovanja, od strane upisnog osoblja, u roku o kojem će
naknadno biti obaviješteni.
Ponavljanje gradiva
Što sadrži termin pripreme za ispit?
• Temelji računalnog razmišljanja, primjena elemenata računalnog
razmišljanja i pseudokod
• Povijest Pythona i uvod u programski jezik Python
• Varijable, tipovi podataka, funkcije u Pythonu i upravljanje greškama
u programskom kôdu
• Moduli u Pythonu
• Baze podataka i SQL
• Python u području IoT
• Python u podatkovnoj znanosti
Važno!
• Jednako kao na nastavi, kako biste riješili određene zadatke
na ispitu koji vas očekuje koristit ćete alat Visual Studio
Code.
• Rješenja iz VSC-a kopirat ćete u ispitnu aplikaciju.
• Više o navedenom možete pronaći u “Uputama za pismeni završni
ispit”.
Uvod u računalno
razmišljanje
Prisjetimo se: Što je kodiranje, a što programiranje?
• Kodiranje: pisanje programskog koda na
osnovu prethodno dobivenih instrukcija,
odnosno zahtjeva.
• Programiranje: širi pojam koji obuhvaća
kodiranje, ali i razradu instrukcija,
odnosno predstavlja razradu svih
potrebnih koraka koji će dovesti do
rješenja problema.
• Kodiranje je dio programiranja.
Računalno
razmišljanje
Informatika
Computer
Science
Programiranje
Računalno razmišljanje
• Računalno razmišljanje je način rješavanja problema koji se može
primijeniti na rješavanje problema iz života, ne samo problema povezanih
s računarstvom.
• To je misaoni proces tijekom kojeg definiramo problem te njegove manje
dijelove na način da se rješenje može opisati kao slijed jednoznačno
definiranih koraka.
• Računalnim razmišljanjem možemo doći do rješenja za kompleksni
problem te isti predstaviti na način kojeg mogu razumjeti osobe, računala
ili oboje.
Koji su ključni elementi računalnog
razmišljanja?
Računalno razmišljanje - ključni elementi
• Dekompozicija – rastavi problem na manje djelove.
• Uočavanje uzoraka - uoči ponavljanja i sličnosti.
• Apstrakcija – identifikacija i fokus samo na važne elemente rješenja.
• Algoritam – uputa korak po korak kako doći do rješenja.
* Provjera kvalitete rješenja - ne ulazi u osnovne elemente, ali je nužan
korak za kvalitetno i ispravno rješavanje problema.
Računalno razmišljanje
Illustration by Freepik Storyset
?
Rastavljanje
Uzorak
Apstrakcija
Algoritam
Primjer: otvaranje trgovine s IT i gaming opremom
Pseudo kod
• Programski kod koji koristi slobodan jezik kako bi opisao neki problem ili
algoritam.
• Nije vezan za određeni programski jezik.
• Pseudo kôd može sličiti programskom kôdu nekog programskog jezika, ali
pseudo kôd NEMA definiranu sintaksu.
Važno je zapamtiti da se programski kôd piše po točno definiranim pravilima i može se
pokretati i izvršavati na računalu, dok pseudo kôd nema nikakva pravila.
Pseudo kod - primjer
Zadatak:
Napisati pseudokod za komponentu
registracije korisnika na neku aplikaciju
(registracija koristi ime, prezime, email,
username i password). Sva navedena polja
su obvezna.
Razmisliti i napraviti određene provjere kako
bi utvrdili da su svi podaci valjani i da je
registracija moguća.
pocetak
upisi ime
upisi prezime
dok nije emailIspravan
upisi email
ako je email validan i email ne postoji u bazi podataka
emailIspravan
inace
ispisi grešku za korisnika da se upisan email ne može registrirati
dok nije usernameIspravan
upisi username
ako username ne postoji u bazi:
usernameIspravan
inace
ispisi neispravn unos za username jer vec postoji u bazi podataka
dok nije passwordIspravan
upisi password
upisi ponoviPassword
ako je password = ponviPassword I password validan
passwordIspravan
inace
ispisi poruku da password ne sadrzava obavezne znakove, duljinu ili se
passwordi ne podudaraju
registraj korisnika
kraj
Zadatak: Pseudo kod
• Napisati pseudo kod za
komponentu dohvata vrijednosti s
meteo stanice (temperatura, tlak
i vlaga) koje dolaze u CSV obliku
iz modula MeteoService.
• Provjeriti ispravnosti podataka i
spremiti ih u txt datoteku.
• Pripaziti na provjere!
Zadatak
Što od navedenog nije točno u vezi računalnog razmišljanja?
(više je odgovora točno)
A) Računalno razmišljanje je najbolje za programe razvijene u Pythonu, ali
može se koristiti i uz druge programske jezike.
B) Računalno razmišljanje je primjenjivo samo na probleme za koje se
mogu izraditi računalni programi.
C) Računalno razmišljanje se može primjenjivati za rješavanje
svakodnevnih problema.
D) Računalno razmišljanje zahtijeva razmišljanje kao računalo, odnosno na
način da se sve može izračunati.
Osnove programiranja
u Pythonu
O Python-u
• Python je programski jezik opće namjene.
• Nastao je krajem 80-tih godina prošlog stoljeća, a prva javna inačica
objavljena je 1991. godine.
• Osmislio ga je programer Guido van Rossum u Nizozemskoj.
• Ime Python proizašlo je iz televizijske serije Monty Python's Flying
Circus.
Izvor: Google Images
Python PEP
• Python Enhancement Proposals
• skup dokumenta i pravila koji definiraju dizajn, pravila i konvenciju
pisanja Python koda napisanih za Python korisnike.
• Postoje tri različita tipa:
• Standards – opisuju nove značajke ili implementacije u Pythonu
• Informational – smjernice i informacije za korisnike
• Process - objašnjenje procesa u Pythonu
Varijable i tipovi podataka
• Varijable – predstavljaju skup podataka korištenih u
programskom kodu, a predstavlju "human readable" nazive
memorije računala kao mjesto gdje se informacija tj. podatak
čuva tijekom izvođenja koda.
• Što čini varijablu?
• Tip (npr. String, Integer, …)
• Podatak (npr. stvarna vrijednost "neki tekst", 5, …)
• Naziv (naziv varijable definiran od osobe koja razvija)
Naziv varijable
• Naziv varijable:
• NE smije biti isti kao neka od
ključnih riječi
• NE smije početi brojkom
• NE smije imati razmak
• NE smije imati posebne
znakove: !, ?, @, #, $, %, …
and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield
Varijable u Pythonu – naziv varijable
• Preporuke za imenovanje varijabli.
• Naziv varijable bi trebao:
• Opisivati podatak koji je pohranjen u
varijabli
• Imati znak „_” (podvlaka ili underscore)
umjesto razmaka.
*Opcionalno bez razmaka tako da
svaka riječ počinje velikim slovom
camelCase
• Imati sve znakove napisane malim
slovima
• Bez (hrvatskih) dijakritičkih znakova
• Zadržati dosljednost pa kako je varijabla
dio programskog kôda, bolje je za naziv
varijable koristiti engleski jezik, ali
nikako NE miješati malo engleski, malo
hrvatski ili neki drugi jezik.
Naziv varijable Podatak koji čuva
$x ’Patar Perić’ – NE
ime_prezime ’Petar Perić’ – DA
A 23,2° C – NE
unutarnja_temperatura 28,9° C – DA
vanjska_temperatura 23,2° C – DA
polumjer kružnice 24.45 – NE
polumjerKruznice* 52 – DA
Primjer
Tipovi podatka
• Osnovni tipovi podataka u Python-u
• String (str) - tekst, pise se unutar ' ili " navodnika
• Integer (int) - cijeli brojevi
• Float (float) - decimalni brojevi
• Boolean (bool) - True/False
Tipovi podatka
• Kolekcije
• Objekti koji mogu poprimiti više različitih objekta i spremiti ih kao cijelinu.
• Omogućuju dohvat i iteraciju kroz objekte da bi im mogli pristupiti.
• Lista
• Definira se preko uglatih zagrada [ ] ili pozivom konstruktora list()
• Promjenjiv tip podatka (možemo naknadno dodavati, mjenjati ili brisati vrijednosti).
• Tuple
• Definira se preko ( ) zagrada i nepromjenjiv je.
Tipovi podatka
• Set
• Definira se preko { } zagrada ili pozivom konstruktora set()
• Set, za razliku od liste, odbija duplikate (ne može spremiti iste vrijednosti ili obriše iste
vrijednosti ako je kreiran iz liste)
• Dictionary
• Definira se preko { } zagrada ili pozivom konstruktora dict()
*Napomena: iako se i dict i set definiraju preko { } zagrada, razlikuju se po tome da set sprema
vrijednosti preko indexa (kao i lista i tuple), dok dict koristi key-value.
Tipovi podatka – kolekcije primjer
Zadatak
• Napišite program
za unos podataka za registraciju
korisnika.
Registracija: ime, prezime, email,
username i password.
• Svaku vrijednost ispišite u novi
red tako da prvo ispišete opis
podatka, a zatim njegovu
vrijednost.
* Za rješenje zadatka koristiti VSC.
Zadatak
• Kreirajte kolekciju (dict) podataka
o očitanju s meteo bazne stanice
s preddefiniranim proizvoljnim
vrijednostima:
Meteo: temperatura, tlak, vlaga,
zrak-kvaliteta.
Svaku vrijednost ispišite u novi
red, tako da prvo ispišete opis
podatka, a zatim njegovu
vrijednost.
Programiranje u
Pythonu
Objektno orijentirano programiranje (OOP)
• Jedan od pristupa računalnog programiranja.
• Princip programiranja gdje je rješenje bazirano na skupu
objekta koji međusobno komuniciraju i na taj način riješavaju
zadan problem.
• OOP se ističe jasnim i definiranim arhitekturama aplikacije,
jasnim i čitljivim kodom, malom količinom redundancije,
odnosno velikom količinom reusabilnog koda.
Klase i objekti
Klasa - korisnički definirani tip podatka kojim se modeliraju objekti
sličnih svojstva.
• Predstavlja predložak, nacrt na temelju kojeg će se definirati varijable unutar
programskog koda.
Objekt – stvarna instanca neke klase (koja se nalazi u memoriji).
• Svaki objekt je definiran stanjem i ponašanjem definiranim u klasi.
Python moduli
• Moduli u Python-u omogućavaju
odvajanje funkcionalnosti u
zasebne cijeline i datoteke.
• Modul može biti jedna datoteka ili jedan
direktorij.
• Postoje ugrađeni moduli (dolaze s Python-
om).
• Module možemo kreirati mi, ali mogu
biti i skinuti s interneta (npr. pip).
• Module koristimo kako bismo imali bolje
orgraniziran kod koje možemo tako lakše
ispravljati, proširiti, debuggirati i lakše se
snalaziti u istom.
Izvor: Freepik Storyset
Zadatak
• Kreirajte klasu Vozilo:
• Atributi:
• jeUpaljeno: bool (default: False)
• Metode:
• upali()
• vozi(brzina: int)
• Metoda upali() postavlja atribut jeUpaljeno na True
• Metoda vozi ispisuje poruku "Vozilo putuje brzinom {brzina} km/h" ako je vozilo upaljeno,
ako vozilo nije upaljeno, a pozvana je metoda vozi() ispisati poruku, "Vozilo nije upaljeno"
š
Zadatak
• Kreirajte klasu koja čuva podatke o računalu:
Svako računalo ima podatke o:
- procesor
- količina RAM memorije
- vrsta diska
- veličina diska
- vrsta (prijenosno/stolno)
- externa grafička kartica (bool)
Omogučiti jednostavni tekstualni prikaz (reprezentaciju) objekta računala u konzoli.
Izmjenu količine RAM memorije i diska riješiti koristeći metode za ažuriranje RAM-a,
odnosno ažuriranje diska (vrsta diska i količina memorije).
š
Programiranje u Pythonu
– rad s bazama podataka
SQLite
• SQLite – mala, jednostavna, brza,
SQL Database aplikacija.
• Ne traži instalaciju.
• Uključen u Python instalaciju i većinu
Linux distribucija, uključujući i
MacOS.
Izvor: Google Images
SQL
Structured Query Language
• Upitni programski jezik visoke
razine.
• Dizajniran za rad s bazama
podataka.
• '*' kao i u Pythonu je zamjena
za "sve".
• CRUD
Zadatak: Registracija korisnika
• Kreirati dvije tablice:
• Tablica gradovi sadrži:
• id, naziv, zip (poštanski broj)
• Sva polja obavezna
• Tablica korisnici treba sadržavati:
• id, ime, prezime, username, password, email, mobitel, grad_id
• sve polja su obavezna osim mobitela
• grad_id je relacija na tablicu gradovi
• ubaciti minimalno 2 grada i minimalno 5 korisnika (minimalno 2 korisnika u
jednom gradu)
• dohvatiti sve korisnike po grad_id (koji ima vise od 1 korisnika)
• dodatno (bonus), dohvatiti sve korisnike prema nazivu grada koristeći join
Zadatak
Koje dva osnovna tipa baza podataka se danas najčešće koriste?
Opišite prednosti i mane svakog od njih.
Dva najzastupljenija tipa baza podataka su:
• Relacijske baze - podaci su podijeljeni u tabele i međusobno su povezani relacijama u
obliku nekih identifikatora. Podaci su konzistentni, ne ponavaljaju se, pohrana podataka
je otporna na ispade sustava.
• NoSQL baze - to su baze primarno namijenjene za visoke performanse, pohranjuju
podatke kao cjelinu, bez da ih podijele po tabelama i povežu relacijama, podaci su
pohranjeni u drugačije oblike od tabela.
Python u području IoT
Koja su područja primjene IoT-a?
Koja su najpoznatija IoT računala?
IoT – Internet of Things
• Naziv za mrežu elektroničkih sustava povezanih putem
interneta.
• Sustavi se sastoje od hardware-a i software-a.
• Komponente u IoT-u:
• Microcontroller (npr. Arduino) ili Single-board computer (npr. Raspberry
Pi)
• Senzori (PIR, ultrazvuk, temperatura, tlak, vlaga i sl.)
• Radio veza (radio moduli – npr. LoRa, Sigfox, XBee)
• Internet (cloud – sa softwareom).
IoT – primjer sustava - flow
• Microcontroller (npr. Arduino) na koji su spojeni
senzori (žicom) ili napravljen custom PCB sa
zalemljenim senzorima na pločici.
• Najčešće upogonjen baterijom gdje je potrebno
paziti kako napraviti implementaciju zbog štednje
energije.
• S obzirom da takvih uređaja može biti mnogo u
sustavu i da spajanje svakog od ovakvih uređaja na
internet može biti skupo ili nemoguće koristi se radio
modul specifičnih frekvencija gdje putem radio
signala svi uređaji (Node-ovi) šalju putem radio
signala digitalne podatke pretvorene iz fizikalnih
veličina (senzori) do centralnog mjesta
(collector/gateway) najčešće Raspberry Pi koji se
napaja iz elektične mreže i ima konekciju na Internet,
da distribuira podatke u Cloud na obradu (od svih
Node-ova iz sustava).
Izvor: Google Images
IoT – Sense HAT
• Kad nismo u mogućnosti raditi s hardware-om postoje razni simulatori s kojima možemo učiti kako rad s
harwareom funkcionira - otprilike :)
• Za zamjenu Raspberry Pi-a koristimo RaspbianOS Desktop inačicu (RaspbianOS kao takav, je stvarni
operacijski sustav koji se koristi na Raspberry Pi uređajima, samo je prilagođen za drugačiju
infrastrukturu ARM).
• Sense HAT – postoji kao stvaran hardware, ali mi koristimo emuliranu software-sku inačicu.
• Da bi Sense HAT povezali s Python-om, importamo modul (unutar RasbianOS-a).
• from sense_emu import SenseHat
• Gdje potom možemo koristiti emulirani hardware preko SenseHat() objekta
• Možemo koristiti:
• humidity, temperature, pressure, joystick, accelerometer, gyroscope, display
Zadatak
Napišite program koji će beskonačno ispisivati vaše ime i prezime na ekranu
SenseHAT emulatora.
Python u podatkovnoj
znanosti
Python u Data science-u
• Python je danas jedan od češće
korištenih programskih jezika u
podatkovnoj znanosti.
• Podatkovna znanost uči nas radu s
podacima, točnije, kako:
• Prilagoditi format podataka
• Očistiti podatke
• Uzorkovati podatke prema odgovarajućoj
skupini
• Komunicirati rezultate kroz vizualizaciju, opis
i sažetu interpretaciju rezultata.
Izvor: Freepik Storyset
Python DS - moduli
• Pandas
• Naziv proizašao iz Panel Data
• Alat za analiziranje podataka u Pythonu
• Podatke sprema u DataFrame, a zanimljiv je jer u DataFrame možemo
ubaciti podatke iz većine poznatih data formata (SQL baza, Excel, CSV
i sl.).
• Matplotlib
• Koristimo za vizualizaciju i izradu grafova
• Jednostavna upraba
• Grafovi visoke kvalitete
• Moguća ugradnja u bilo koji Python GUI.
Matplotlib - primjer
Python DS - moduli
• NumPy
• Numerical Python
• Temeljni paket za znanstvene proračune
• Zanimljv jer daje lakoću pisanja koja dolazi ih high-level jezika Python,
sa snagom i brzinom low-level jezika (poput C-a).
• Primjer: genriraj matricu 5x5 ispunjenu s nasumičnim brojevima u rasponu –500, 500
Zadatak
Koja je razlika između Pandas i NumPy alata?
Pandas je Python biblioteka za obradu heterogenih tipova podataka, a NumPy je
namijenjen za numeričke proračune pa je orijentiran na numeričke tipove podataka.
Zadatak
• Pomoću NumPy-a generirati 100 nasumičnih brojeva u rasponu
1 – 100 i ispisati prosjek istih.
Pitanja?
Hvala na
pažnji!

More Related Content

What's hot (20)

Resenje zavrsnog ispita srpski jezik - 2015-16
Resenje zavrsnog ispita   srpski jezik - 2015-16Resenje zavrsnog ispita   srpski jezik - 2015-16
Resenje zavrsnog ispita srpski jezik - 2015-16
Pavle Zlatic
Osnove programiranja u Pythonu
Osnove programiranja u PythonuOsnove programiranja u Pythonu
Osnove programiranja u Pythonu
Vlatka Pavić
2 - povijest ekonomske misli.pptx
2 - povijest ekonomske misli.pptx2 - povijest ekonomske misli.pptx
2 - povijest ekonomske misli.pptx
AndrianaParancin
Kako PrežIvjeti U šKoli
Kako PrežIvjeti U šKoliKako PrežIvjeti U šKoli
Kako PrežIvjeti U šKoli
zeljkabilic
Uvod u programiranje i programski jezik Python
Uvod u programiranje i programski jezik PythonUvod u programiranje i programski jezik Python
Uvod u programiranje i programski jezik Python
Amar Kalabić
Sablon za asocijacije - Association scheme
Sablon za asocijacije - Association schemeSablon za asocijacije - Association scheme
Sablon za asocijacije - Association scheme
Ivan Ristić
Pitagorina teorema primjena na romb
Pitagorina teorema  primjena na rombPitagorina teorema  primjena na romb
Pitagorina teorema primjena na romb
NevenaLjujic
Svetlosne pojave
Svetlosne pojaveSvetlosne pojave
Svetlosne pojave
Jasna Cvetkovic
Obrada busenjem
Obrada busenjemObrada busenjem
Obrada busenjem
AleksandarPavlovic40
комлексни броеви
комлексни броевикомлексни броеви
комлексни броеви
Gordana Nikolovska
2 odbijanje svetlosti i ogledala
2 odbijanje svetlosti i ogledala2 odbijanje svetlosti i ogledala
2 odbijanje svetlosti i ogledala
Siniša Ćulafić
Историјски-извори
Историјски-извориИсторијски-извори
Историјски-извори
SofijaLuki2

Similar to Python_Priprema za završni ispit_polaznici.pdf (12)

3. for petlja
3. for petlja3. for petlja
3. for petlja
Brankica Jokić
Algoritmi i strukture_podataka_2016-01_v01
Algoritmi i strukture_podataka_2016-01_v01Algoritmi i strukture_podataka_2016-01_v01
Algoritmi i strukture_podataka_2016-01_v01
Leonardo Miljko
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
Stipe Predanic
00 --- UVOD U PYTHON.pptx
00 --- UVOD U PYTHON.pptx00 --- UVOD U PYTHON.pptx
00 --- UVOD U PYTHON.pptx
xili5
Rp1 predavanja 02 - Koncepti objektno orijentiranog programiranja
Rp1 predavanja 02 - Koncepti objektno orijentiranog programiranjaRp1 predavanja 02 - Koncepti objektno orijentiranog programiranja
Rp1 predavanja 02 - Koncepti objektno orijentiranog programiranja
Goran Igaly
Algoritmi i strukture_podataka_2016-03_v01
Algoritmi i strukture_podataka_2016-03_v01Algoritmi i strukture_podataka_2016-03_v01
Algoritmi i strukture_podataka_2016-03_v01
Leonardo Miljko

Python_Priprema za završni ispit_polaznici.pdf

  • 2. Sadržaj • Polaganje ispita i bodovanje • Ponavljanje gradiva
  • 4. Razine pitanja po težini i bodovanje • Prilikom polaganja ispita polaznik se može susresti sa 4 težine pitanja: • lako: 2 boda • srednje teško: 3 boda • teško: 4 boda • jako teško: 5 bodova
  • 5. Formati pitanja • Radio button: samo jedan točan odgovor • Checkbox: više točnih odgovora • Kratki odgovori • Dugi odgovori: prazno crtovlje za tekst (esejski oblik odgovora)
  • 6. Važno! • Pitanja nemaju ograničeno trajanje. • Pitanja možete označiti i vratiti se na njih koliko god puta želite, sve dok ne završite ispit klikom na “Završi ispit”. • Procjena vremena potrebnog za riješavanje određenih zadataka: • Pitanja višestrukog odabira: 30 – 60 sekundi • Pitanja kratkog odgovora: 60 sekundi • Esejska pitanja: 120 - 180 sekundi • Problemski zadaci: do 15 minuta Ukupno vrijeme koje polaznici imaju za polaganje ispita je 90 minuta. Postotak potreban za prolaz ispita: 50%
  • 7. Ostala pitanja i odgovori… • Koji dio gradiva je zastupljen u pismenom ispitu? • Možete se susresti s gradivom iz svih seminara obrađenih na nastavi. • Postoji li razlika između polaganja ispita online i u učionici? • Ne postoji. Bez obzira na to jeste li nastavu slušali u učionici ili online, ispit polažete u učionicama Algebra centara.
  • 8. Ostala pitanja i odgovori… • Što kada položimo i ovaj dio ispita? • Nakon što položite i pismeni dio ispita, moći ćete preuzeti potvrdu i uvjerenje o završenom programu obrazovanja, od strane upisnog osoblja, u roku o kojem će naknadno biti obaviješteni.
  • 10. Što sadrži termin pripreme za ispit? • Temelji računalnog razmišljanja, primjena elemenata računalnog razmišljanja i pseudokod • Povijest Pythona i uvod u programski jezik Python • Varijable, tipovi podataka, funkcije u Pythonu i upravljanje greškama u programskom kôdu • Moduli u Pythonu • Baze podataka i SQL • Python u području IoT • Python u podatkovnoj znanosti
  • 11. Važno! • Jednako kao na nastavi, kako biste riješili određene zadatke na ispitu koji vas očekuje koristit ćete alat Visual Studio Code. • Rješenja iz VSC-a kopirat ćete u ispitnu aplikaciju. • Više o navedenom možete pronaći u “Uputama za pismeni završni ispit”.
  • 13. Prisjetimo se: Što je kodiranje, a što programiranje? • Kodiranje: pisanje programskog koda na osnovu prethodno dobivenih instrukcija, odnosno zahtjeva. • Programiranje: širi pojam koji obuhvaća kodiranje, ali i razradu instrukcija, odnosno predstavlja razradu svih potrebnih koraka koji će dovesti do rješenja problema. • Kodiranje je dio programiranja. Računalno razmišljanje Informatika Computer Science Programiranje
  • 14. Računalno razmišljanje • Računalno razmišljanje je način rješavanja problema koji se može primijeniti na rješavanje problema iz života, ne samo problema povezanih s računarstvom. • To je misaoni proces tijekom kojeg definiramo problem te njegove manje dijelove na način da se rješenje može opisati kao slijed jednoznačno definiranih koraka. • Računalnim razmišljanjem možemo doći do rješenja za kompleksni problem te isti predstaviti na način kojeg mogu razumjeti osobe, računala ili oboje.
  • 15. Koji su ključni elementi računalnog razmišljanja?
  • 16. Računalno razmišljanje - ključni elementi • Dekompozicija – rastavi problem na manje djelove. • Uočavanje uzoraka - uoči ponavljanja i sličnosti. • Apstrakcija – identifikacija i fokus samo na važne elemente rješenja. • Algoritam – uputa korak po korak kako doći do rješenja. * Provjera kvalitete rješenja - ne ulazi u osnovne elemente, ali je nužan korak za kvalitetno i ispravno rješavanje problema.
  • 17. Računalno razmišljanje Illustration by Freepik Storyset ? Rastavljanje Uzorak Apstrakcija Algoritam
  • 18. Primjer: otvaranje trgovine s IT i gaming opremom
  • 19. Pseudo kod • Programski kod koji koristi slobodan jezik kako bi opisao neki problem ili algoritam. • Nije vezan za određeni programski jezik. • Pseudo kôd može sličiti programskom kôdu nekog programskog jezika, ali pseudo kôd NEMA definiranu sintaksu. Važno je zapamtiti da se programski kôd piše po točno definiranim pravilima i može se pokretati i izvršavati na računalu, dok pseudo kôd nema nikakva pravila.
  • 20. Pseudo kod - primjer Zadatak: Napisati pseudokod za komponentu registracije korisnika na neku aplikaciju (registracija koristi ime, prezime, email, username i password). Sva navedena polja su obvezna. Razmisliti i napraviti određene provjere kako bi utvrdili da su svi podaci valjani i da je registracija moguća. pocetak upisi ime upisi prezime dok nije emailIspravan upisi email ako je email validan i email ne postoji u bazi podataka emailIspravan inace ispisi grešku za korisnika da se upisan email ne može registrirati dok nije usernameIspravan upisi username ako username ne postoji u bazi: usernameIspravan inace ispisi neispravn unos za username jer vec postoji u bazi podataka dok nije passwordIspravan upisi password upisi ponoviPassword ako je password = ponviPassword I password validan passwordIspravan inace ispisi poruku da password ne sadrzava obavezne znakove, duljinu ili se passwordi ne podudaraju registraj korisnika kraj
  • 21. Zadatak: Pseudo kod • Napisati pseudo kod za komponentu dohvata vrijednosti s meteo stanice (temperatura, tlak i vlaga) koje dolaze u CSV obliku iz modula MeteoService. • Provjeriti ispravnosti podataka i spremiti ih u txt datoteku. • Pripaziti na provjere!
  • 22. Zadatak Što od navedenog nije točno u vezi računalnog razmišljanja? (više je odgovora točno) A) Računalno razmišljanje je najbolje za programe razvijene u Pythonu, ali može se koristiti i uz druge programske jezike. B) Računalno razmišljanje je primjenjivo samo na probleme za koje se mogu izraditi računalni programi. C) Računalno razmišljanje se može primjenjivati za rješavanje svakodnevnih problema. D) Računalno razmišljanje zahtijeva razmišljanje kao računalo, odnosno na način da se sve može izračunati.
  • 24. O Python-u • Python je programski jezik opće namjene. • Nastao je krajem 80-tih godina prošlog stoljeća, a prva javna inačica objavljena je 1991. godine. • Osmislio ga je programer Guido van Rossum u Nizozemskoj. • Ime Python proizašlo je iz televizijske serije Monty Python's Flying Circus. Izvor: Google Images
  • 25. Python PEP • Python Enhancement Proposals • skup dokumenta i pravila koji definiraju dizajn, pravila i konvenciju pisanja Python koda napisanih za Python korisnike. • Postoje tri različita tipa: • Standards – opisuju nove značajke ili implementacije u Pythonu • Informational – smjernice i informacije za korisnike • Process - objašnjenje procesa u Pythonu
  • 26. Varijable i tipovi podataka • Varijable – predstavljaju skup podataka korištenih u programskom kodu, a predstavlju "human readable" nazive memorije računala kao mjesto gdje se informacija tj. podatak čuva tijekom izvođenja koda. • Što čini varijablu? • Tip (npr. String, Integer, …) • Podatak (npr. stvarna vrijednost "neki tekst", 5, …) • Naziv (naziv varijable definiran od osobe koja razvija)
  • 27. Naziv varijable • Naziv varijable: • NE smije biti isti kao neka od ključnih riječi • NE smije početi brojkom • NE smije imati razmak • NE smije imati posebne znakove: !, ?, @, #, $, %, … and exec not assert finally or break for pass class from print continue global raise def if return del import try elif in while else is with except lambda yield
  • 28. Varijable u Pythonu – naziv varijable • Preporuke za imenovanje varijabli. • Naziv varijable bi trebao: • Opisivati podatak koji je pohranjen u varijabli • Imati znak „_” (podvlaka ili underscore) umjesto razmaka. *Opcionalno bez razmaka tako da svaka riječ počinje velikim slovom camelCase • Imati sve znakove napisane malim slovima • Bez (hrvatskih) dijakritičkih znakova • Zadržati dosljednost pa kako je varijabla dio programskog kôda, bolje je za naziv varijable koristiti engleski jezik, ali nikako NE miješati malo engleski, malo hrvatski ili neki drugi jezik. Naziv varijable Podatak koji čuva $x ’Patar Perić’ – NE ime_prezime ’Petar Perić’ – DA A 23,2° C – NE unutarnja_temperatura 28,9° C – DA vanjska_temperatura 23,2° C – DA polumjer kružnice 24.45 – NE polumjerKruznice* 52 – DA
  • 30. Tipovi podatka • Osnovni tipovi podataka u Python-u • String (str) - tekst, pise se unutar ' ili " navodnika • Integer (int) - cijeli brojevi • Float (float) - decimalni brojevi • Boolean (bool) - True/False
  • 31. Tipovi podatka • Kolekcije • Objekti koji mogu poprimiti više različitih objekta i spremiti ih kao cijelinu. • Omogućuju dohvat i iteraciju kroz objekte da bi im mogli pristupiti. • Lista • Definira se preko uglatih zagrada [ ] ili pozivom konstruktora list() • Promjenjiv tip podatka (možemo naknadno dodavati, mjenjati ili brisati vrijednosti). • Tuple • Definira se preko ( ) zagrada i nepromjenjiv je.
  • 32. Tipovi podatka • Set • Definira se preko { } zagrada ili pozivom konstruktora set() • Set, za razliku od liste, odbija duplikate (ne može spremiti iste vrijednosti ili obriše iste vrijednosti ako je kreiran iz liste) • Dictionary • Definira se preko { } zagrada ili pozivom konstruktora dict() *Napomena: iako se i dict i set definiraju preko { } zagrada, razlikuju se po tome da set sprema vrijednosti preko indexa (kao i lista i tuple), dok dict koristi key-value.
  • 33. Tipovi podatka – kolekcije primjer
  • 34. Zadatak • Napišite program za unos podataka za registraciju korisnika. Registracija: ime, prezime, email, username i password. • Svaku vrijednost ispišite u novi red tako da prvo ispišete opis podatka, a zatim njegovu vrijednost. * Za rješenje zadatka koristiti VSC.
  • 35. Zadatak • Kreirajte kolekciju (dict) podataka o očitanju s meteo bazne stanice s preddefiniranim proizvoljnim vrijednostima: Meteo: temperatura, tlak, vlaga, zrak-kvaliteta. Svaku vrijednost ispišite u novi red, tako da prvo ispišete opis podatka, a zatim njegovu vrijednost.
  • 37. Objektno orijentirano programiranje (OOP) • Jedan od pristupa računalnog programiranja. • Princip programiranja gdje je rješenje bazirano na skupu objekta koji međusobno komuniciraju i na taj način riješavaju zadan problem. • OOP se ističe jasnim i definiranim arhitekturama aplikacije, jasnim i čitljivim kodom, malom količinom redundancije, odnosno velikom količinom reusabilnog koda.
  • 38. Klase i objekti Klasa - korisnički definirani tip podatka kojim se modeliraju objekti sličnih svojstva. • Predstavlja predložak, nacrt na temelju kojeg će se definirati varijable unutar programskog koda. Objekt – stvarna instanca neke klase (koja se nalazi u memoriji). • Svaki objekt je definiran stanjem i ponašanjem definiranim u klasi.
  • 39. Python moduli • Moduli u Python-u omogućavaju odvajanje funkcionalnosti u zasebne cijeline i datoteke. • Modul može biti jedna datoteka ili jedan direktorij. • Postoje ugrađeni moduli (dolaze s Python- om). • Module možemo kreirati mi, ali mogu biti i skinuti s interneta (npr. pip). • Module koristimo kako bismo imali bolje orgraniziran kod koje možemo tako lakše ispravljati, proširiti, debuggirati i lakše se snalaziti u istom. Izvor: Freepik Storyset
  • 40. Zadatak • Kreirajte klasu Vozilo: • Atributi: • jeUpaljeno: bool (default: False) • Metode: • upali() • vozi(brzina: int) • Metoda upali() postavlja atribut jeUpaljeno na True • Metoda vozi ispisuje poruku "Vozilo putuje brzinom {brzina} km/h" ako je vozilo upaljeno, ako vozilo nije upaljeno, a pozvana je metoda vozi() ispisati poruku, "Vozilo nije upaljeno"
  • 41. š
  • 42. Zadatak • Kreirajte klasu koja čuva podatke o računalu: Svako računalo ima podatke o: - procesor - količina RAM memorije - vrsta diska - veličina diska - vrsta (prijenosno/stolno) - externa grafička kartica (bool) Omogučiti jednostavni tekstualni prikaz (reprezentaciju) objekta računala u konzoli. Izmjenu količine RAM memorije i diska riješiti koristeći metode za ažuriranje RAM-a, odnosno ažuriranje diska (vrsta diska i količina memorije).
  • 43. š
  • 44. Programiranje u Pythonu – rad s bazama podataka
  • 45. SQLite • SQLite – mala, jednostavna, brza, SQL Database aplikacija. • Ne traži instalaciju. • Uključen u Python instalaciju i većinu Linux distribucija, uključujući i MacOS. Izvor: Google Images
  • 46. SQL Structured Query Language • Upitni programski jezik visoke razine. • Dizajniran za rad s bazama podataka. • '*' kao i u Pythonu je zamjena za "sve". • CRUD
  • 47. Zadatak: Registracija korisnika • Kreirati dvije tablice: • Tablica gradovi sadrži: • id, naziv, zip (poštanski broj) • Sva polja obavezna • Tablica korisnici treba sadržavati: • id, ime, prezime, username, password, email, mobitel, grad_id • sve polja su obavezna osim mobitela • grad_id je relacija na tablicu gradovi • ubaciti minimalno 2 grada i minimalno 5 korisnika (minimalno 2 korisnika u jednom gradu) • dohvatiti sve korisnike po grad_id (koji ima vise od 1 korisnika) • dodatno (bonus), dohvatiti sve korisnike prema nazivu grada koristeći join
  • 48. Zadatak Koje dva osnovna tipa baza podataka se danas najčešće koriste? Opišite prednosti i mane svakog od njih. Dva najzastupljenija tipa baza podataka su: • Relacijske baze - podaci su podijeljeni u tabele i međusobno su povezani relacijama u obliku nekih identifikatora. Podaci su konzistentni, ne ponavaljaju se, pohrana podataka je otporna na ispade sustava. • NoSQL baze - to su baze primarno namijenjene za visoke performanse, pohranjuju podatke kao cjelinu, bez da ih podijele po tabelama i povežu relacijama, podaci su pohranjeni u drugačije oblike od tabela.
  • 50. Koja su područja primjene IoT-a? Koja su najpoznatija IoT računala?
  • 51. IoT – Internet of Things • Naziv za mrežu elektroničkih sustava povezanih putem interneta. • Sustavi se sastoje od hardware-a i software-a. • Komponente u IoT-u: • Microcontroller (npr. Arduino) ili Single-board computer (npr. Raspberry Pi) • Senzori (PIR, ultrazvuk, temperatura, tlak, vlaga i sl.) • Radio veza (radio moduli – npr. LoRa, Sigfox, XBee) • Internet (cloud – sa softwareom).
  • 52. IoT – primjer sustava - flow • Microcontroller (npr. Arduino) na koji su spojeni senzori (žicom) ili napravljen custom PCB sa zalemljenim senzorima na pločici. • Najčešće upogonjen baterijom gdje je potrebno paziti kako napraviti implementaciju zbog štednje energije. • S obzirom da takvih uređaja može biti mnogo u sustavu i da spajanje svakog od ovakvih uređaja na internet može biti skupo ili nemoguće koristi se radio modul specifičnih frekvencija gdje putem radio signala svi uređaji (Node-ovi) šalju putem radio signala digitalne podatke pretvorene iz fizikalnih veličina (senzori) do centralnog mjesta (collector/gateway) najčešće Raspberry Pi koji se napaja iz elektične mreže i ima konekciju na Internet, da distribuira podatke u Cloud na obradu (od svih Node-ova iz sustava). Izvor: Google Images
  • 53. IoT – Sense HAT • Kad nismo u mogućnosti raditi s hardware-om postoje razni simulatori s kojima možemo učiti kako rad s harwareom funkcionira - otprilike :) • Za zamjenu Raspberry Pi-a koristimo RaspbianOS Desktop inačicu (RaspbianOS kao takav, je stvarni operacijski sustav koji se koristi na Raspberry Pi uređajima, samo je prilagođen za drugačiju infrastrukturu ARM). • Sense HAT – postoji kao stvaran hardware, ali mi koristimo emuliranu software-sku inačicu. • Da bi Sense HAT povezali s Python-om, importamo modul (unutar RasbianOS-a). • from sense_emu import SenseHat • Gdje potom možemo koristiti emulirani hardware preko SenseHat() objekta • Možemo koristiti: • humidity, temperature, pressure, joystick, accelerometer, gyroscope, display
  • 54. Zadatak Napišite program koji će beskonačno ispisivati vaše ime i prezime na ekranu SenseHAT emulatora.
  • 56. Python u Data science-u • Python je danas jedan od češće korištenih programskih jezika u podatkovnoj znanosti. • Podatkovna znanost uči nas radu s podacima, točnije, kako: • Prilagoditi format podataka • Očistiti podatke • Uzorkovati podatke prema odgovarajućoj skupini • Komunicirati rezultate kroz vizualizaciju, opis i sažetu interpretaciju rezultata. Izvor: Freepik Storyset
  • 57. Python DS - moduli • Pandas • Naziv proizašao iz Panel Data • Alat za analiziranje podataka u Pythonu • Podatke sprema u DataFrame, a zanimljiv je jer u DataFrame možemo ubaciti podatke iz većine poznatih data formata (SQL baza, Excel, CSV i sl.). • Matplotlib • Koristimo za vizualizaciju i izradu grafova • Jednostavna upraba • Grafovi visoke kvalitete • Moguća ugradnja u bilo koji Python GUI.
  • 59. Python DS - moduli • NumPy • Numerical Python • Temeljni paket za znanstvene proračune • Zanimljv jer daje lakoću pisanja koja dolazi ih high-level jezika Python, sa snagom i brzinom low-level jezika (poput C-a). • Primjer: genriraj matricu 5x5 ispunjenu s nasumičnim brojevima u rasponu –500, 500
  • 60. Zadatak Koja je razlika između Pandas i NumPy alata? Pandas je Python biblioteka za obradu heterogenih tipova podataka, a NumPy je namijenjen za numeričke proračune pa je orijentiran na numeričke tipove podataka.
  • 61. Zadatak • Pomoću NumPy-a generirati 100 nasumičnih brojeva u rasponu 1 – 100 i ispisati prosjek istih.