Skoči na glavni sadržaj

IT - Programske metode i apstrakcije

Naziv predmeta

Programske metode i apstrakcije

Detalji
Kod
VSITE122
Skr.
PMA
ECTS
8
Godina
2
Semester
Ljetni semestar
Vrsta
obvezatni
Razina HKO 6
Preddiplomski studij
E-Learning
0%
Aktivnosti
IT zg - Ljet 23/24
ECTS
Jedinice
Sati
Svega
P
1.5
15
3
45
A
0
15
1
15
L
2
13
3
45
S
0
0
0
0
KA
0
0
0
0
KP
0
3
1
0
PR
0
0
0
0
IP
0
0
0
0
IU
0
1
2
0
SU
4.5
1
135
135
NastavniciNositelji: Ljubomir Hrboka, pred., Goran Sirovatka, v. pred.
Asistenti: Marijo Horvat, asist. vis. šk., Filip Kobi, asist. vis. šk., Gordan Krešić, pred., Mariza Maini, pred., mr. sc. Dušan Mišljenčević, asist. vis. šk., Mislav Piskać, asist. vis. šk., Domagoj Tuličić, pred.
PreduvjetiNema
Sadržaj

Ponavljanje osnova te usvajanje naprednih tema u programskom jeziku Python. Kodiranje i tipovi podataka. Pisanje programa i programske dokumentacije. Ispravljanje programskih pogreški. Leksička i sintaktička struktura Python programskog jezika: tipovi, varijable, izrazi, upravljanje tijekom programa, funkcije, doseg i vidljivost varijabli. Nizovi. Modularno programiranje i funkcionalna dekompozicija programa. Korisničke strukture podataka. Rad s tekstualnim i binarnim datotekama. Standardne biblioteke. Popularne napredne biblioteke. Matplotlib, prikaz rezultata analize ili obrade podataka.
Upoznavanje s Jupyter notebook i Google Colab-om. NumPy i pandas – upoznavanje s Pyhton bibliotekama za rad s raznim vrstama vektora. SciPy – upoznavanje s Python paketom za statističku analizu. Strojno učenje. Neuronske mreže – upoznavanje s konceptom umjetnih neuronskih mreža, ručno kreiranje te rad s jednostavnim primjerima klasifikacije.

Ciljevi učenja

Opći: Potpuna deterministička programska analiza problema uz prepoznavanje i opisivanje svih rubnih slučajeva. Apstraktno modeliranje jednostavnijih programskih problema iterativnim metodama.

Posebni: Razvoj komandnolinijskih aplikacija u programskom jeziku Python koristeći PyCharm razvojno okruženje. Korištenje standardne biblioteke funkcija. Mogućnost čitanja i razumijevanja tehničke dokumentacije bilo koje Python programske biblioteke, te njeno korištenje u vlastitom projektu. Korištenje naprednih biblioteka.

Ishodi učenja

1. Analizirati postavljeni programski problem, prepoznati njegov stupanj složenosti, te ga raščlaniti na elementarne korake i implementirati u programskom jeziku Python odnosno predložiti pseudo kod rješenja za neki drugi strukturirani programski jezik.
2. Modelirati programsko rješenje grupirajući atomarne operacije u izdvojene i generičke komponente (funkcionalna dekompozicija).
3. Razumjeti i moći analizirati (vizualno i pomoću debug alata) već predloženo programsko rješenje u programskom jeziku Python .

Sposobnosti

Kolegij pruža napredna znanja s područja programiranja kao osnovu jezgre računarstva, te obučava polaznika za programiranje u programskom jeziku Python i okruženju PyCharm.

Preporučena literatura

1. Sandeep Nagar, "Introduction to Python for Engineers and Scientists", Springer 2018 https://link.springer.com/book/10.1007/978-1-4842-3204-0
2. Magnus Lie Hetland, "Beginning Python", Springer 2017 https://link.springer.com/book/10.1007/978-1-4842-0028-5

Dodatna literatura

1. Kristian Rother,"Pro Python Best Practices", Springer 2017 https://link.springer.com/book/10.1007/978-1-4842-2241-6
2. Practical Data Science with Python 3, Springer 2019 https://link.springer.com/book/10.1007/978-1-4842-4859-1

predavanja (P)
  1. Uvod, literatura, općenito o programskim apstrakcijama, ponavljanje proceduralnih osnova Pythona, uporaba alata za debugiranje, Upoznavanje s Jupyter notebook i Google Colab-om.
  2. Ponavljanje objektno-orijentiranih mogućnosti Python programskog jezika
  3. Napredne proceduralne teme: iznimke (built-in), try-except-else-finally, stringovi, konstante
  4. Napredne OOP teme u Pythonu: statički članovi, jednakost objekata, hash metoda, uništavanje objekata, kontekstni upravitelji, unit testing u Pythonu
  5. I KOLOKVIJ + Matplotlib, prikaz rezultata analize ili obrade podataka.
  6. Uvod u algoritme, složenost, notacije, pristupi
  7. Višedimenzionalnost (lista sastavljena od drugih lista), Vezane liste
  8. Rekurzija i backtracking
  9. Tekstualne i binarne datoteke
  10. II KOLOKVIJ + uvod u GUI
  11. Kolekcije objekata - osnovne operacije, slijedne kolekcije, asocijativne kolekcije rječnici i skupovi, iteratori
  12. Algoritmi pretraživanja
  13. Algoritmi sortiranja
  14. III KOLOKVIJ + uvod u SciPy,Rad s popularnim vanjskim bibliotekama (NumPy, Pandas)
  15. Strojno učenje. Neuronske mreže – upoznavanje s konceptom umjetnih neuronskih mreža, ručno kreiranje te rad s jednostavnim primjerima klasifikacije.
auditorne vježbe (A)
  1. Ponavljanje proceduralnih osnova Pythona, uporaba alata za debugiranje
  2. Ponavljanje objektno-orijentiranih mogućnosti Python programskog jezika
  3. Napredne proceduralne teme: iznimke (built-in), try-except-else-finally, stringovi, konstante
  4. Napredne OOP teme u Pythonu: statički članovi, jednakost objekata, hash metoda, uništavanje objekata, kontekstni upravitelji
  5. Unit testing u Pythonu
  6. Uvod u algoritme, složenost, notacije, pristupi
  7. Višedimenzionalnost (lista sastavljena od drugih lista), Vezane liste
  8. Rekurzija i backtracking
  9. Tekstualne i binarne datoteke
  10. Uvod u izradu grafičkog sučelja u Pythonu
  11. Kolekcije objekata - osnovne operacije, slijedne kolekcije, asocijativne kolekcije rječnici i skupovi, iteratori
  12. Algoritmi pretraživanja
  13. Algoritmi sortiranja
  14. Uvod u SciPy,Rad s popularnim vanjskim bibliotekama (NumPy, Pandas)
  15. Strojno učenje. Neuronske mreže – upoznavanje s konceptom umjetnih neuronskih mreža, ručno kreiranje te rad s jednostavnim primjerima klasifikacije.
laboratorijske vježbe (L)
  1. Ponavljanje proceduralnih osnova Pythona, uporaba alata za debugiranje
  2. Ponavljanje objektno-orijentiranih mogućnosti Python programskog jezika Napredne proceduralne teme: iznimke (built-in), try-except-else-finally, stringovi, konstante
  3. Teme iz prva dva predavanja, Vježbanje za prvi kolokvij
  4. Napredne OOP teme u Pythonu: statički članovi, jednakost objekata, hash metoda, uništavanje objekata, kontekstni upravitelji
  5. Unit testing u Pythonu, Uvod u algoritme, složenost, notacije, pristupi
  6. Uvod u algoritme, složenost, notacije, pristupi Višedimenzionalnost (lista sastavljena od drugih lista), Vezane liste
  7. Višedimenzionalnost (lista sastavljena od drugih lista), Vezane liste Rekurzija i backtracking
  8. Teme iz predavanja 4-8, Vježbanje za drugi kolokvij
  9. Tekstualne i binarne datoteke
  10. Uvod u izradu grafičkog sučelja u Pythonu Kolekcije objekata - osnovne operacije, slijedne kolekcije, asocijativne kolekcije rječnici i skupovi, iteratori
  11. Algoritmi pretraživanja
  12. Teme iz predavanja 9-13, Vježbanje za treći kolokvij
  13. Algoritmi pretraživanja Algoritmi sortiranja
kolokvij - teorija (KP)
  1. Pismeni ispit, analiza i rješavanje zadataka, dva školska sata. U I kolokvij ulazi gradivo prva tri predavanja (i pripadajućih laboratorijskih vježbi). Od maksimalnih 100, za prolaz je potrebno imati 40 bodova.
  2. Pismeni ispit, analiza i rješavanje zadataka, dva školska sata. U II kolokvij ulazi gradivo od predavanja 04 do predavanja 08 (i pripadajućih laboratorijskih vježbi). Od maksimalnih 100, za prolaz je potrebno imati 40 bodova.
  3. Pismeni ispit, analiza i rješavanje zadataka, dva školska sata. U III kolokvij ulazi gradivo predavanja 09 do predavanja 13 (i pripadajućih laboratorijskih vježbi). Od maksimalnih 100, za prolaz je potrebno imati 40 bodova. Ukupna ocjena se računa na osnovu prosjeka bodova sa sve tri kolokvija uz raspored po ocjenama: [40, 55) dovoljan [55, 70) dobar [70, 85) vrlo dobar [85, 100] odličan
ispit - teorija (IU)
  1. Zimski i ljetni ispitni rokovi: odvojeno polaganje prvog i drugog dijela gradiva ("ispravak kolokvija"), pismeni i usmeni ispit. Jesenski ispitni rokovi: cijelo gradivo bez obzira na rezultat kolokvija, samo pismeni dio ispita.
samostalno učenje (SU)
  1. testovi i kolokviji, konzultacije, samostalni rad u laboratoriju i samostalno učenje

Ulica Vjekoslava Klaića 7, 10000 Zagreb, tel. 01/3764200 fax. 01/3764264