Prikazivanje predmeta na crtezuEdin VišnjićPrezentacija na temu prostorno prikazivanje predmeta na crtežima iz predmeta osnovi tehnike za osnovnu školu.
Sablon za asocijacije - Association schemeIvan RistićThe document lists four solutions - Solutions C, D, A, and B - with each listing four numbered fields in a different order. It then shows the final solution with the fields arranged into four columns - Columns C, D, A, and B - matching the order of the fields for each original solution.
Sablon za asocijacije - Association schemeIvan RistićThe document lists four solutions - Solutions C, D, A, and B - with each listing four numbered fields in a different order. It then shows the final solution with the fields arranged into four columns - Columns C, D, A, and B - matching the order of the fields for each original solution.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9. Stipe PredanicPredavanje iz Dinamičkih web aplikacija, 9. predavanje
Video: https://www.youtube.com/watch?v=NIMP-02mPvM&index=10&list=PLYqeapOP_CtS0kbdbo_GXFgnS81JGAd8L
Tema: Templete i framework (MVC)
Datum snimanja: 5.5.2016
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.
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.
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.
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"
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).
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
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.