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 24/25 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
|
Nastavnici | Nositelji: Ljubomir Hrboka, pred., Goran Sirovatka, v. pred. Asistenti: Mislav Piskać, asist. vis. šk. |
Preduvjeti | Nema |
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) | - Uvod, literatura, općenito o programskim apstrakcijama, ponavljanje proceduralnih osnova Pythona, uporaba alata za debugiranje, Upoznavanje s Jupyter notebook i Google Colab-om.
- Ponavljanje objektno-orijentiranih mogućnosti Python programskog jezika
- Napredne proceduralne teme: iznimke (built-in), try-except-else-finally, stringovi, konstante
- Napredne OOP teme u Pythonu: statički članovi, jednakost objekata, hash metoda, uništavanje objekata, kontekstni upravitelji, unit testing u Pythonu
- I KOLOKVIJ + Matplotlib, prikaz rezultata analize ili obrade podataka.
- Uvod u algoritme, složenost, notacije, pristupi
- Višedimenzionalnost (lista sastavljena od drugih lista), Vezane liste
- Rekurzija i backtracking
- Tekstualne i binarne datoteke
- II KOLOKVIJ + uvod u GUI
- Kolekcije objekata - osnovne operacije, slijedne kolekcije, asocijativne kolekcije rječnici i skupovi, iteratori
- Algoritmi pretraživanja
- Algoritmi sortiranja
- III KOLOKVIJ + uvod u SciPy,Rad s popularnim vanjskim bibliotekama (NumPy, Pandas)
- 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) | - Ponavljanje proceduralnih osnova Pythona, uporaba alata za debugiranje
- Ponavljanje objektno-orijentiranih mogućnosti Python programskog jezika
- Napredne proceduralne teme: iznimke (built-in), try-except-else-finally, stringovi, konstante
- Napredne OOP teme u Pythonu: statički članovi, jednakost objekata, hash metoda, uništavanje objekata, kontekstni upravitelji
- Unit testing u Pythonu
- Uvod u algoritme, složenost, notacije, pristupi
- Višedimenzionalnost (lista sastavljena od drugih lista), Vezane liste
- Rekurzija i backtracking
- Tekstualne i binarne datoteke
- Uvod u izradu grafičkog sučelja u Pythonu
- Kolekcije objekata - osnovne operacije, slijedne kolekcije, asocijativne kolekcije rječnici i skupovi, iteratori
- Algoritmi pretraživanja
- Algoritmi sortiranja
- Uvod u SciPy,Rad s popularnim vanjskim bibliotekama (NumPy, Pandas)
- 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) | - Ponavljanje proceduralnih osnova Pythona, uporaba alata za debugiranje
- Ponavljanje objektno-orijentiranih mogućnosti Python programskog jezika
Napredne proceduralne teme: iznimke (built-in), try-except-else-finally, stringovi, konstante
- Teme iz prva dva predavanja, Vježbanje za prvi kolokvij
- Napredne OOP teme u Pythonu: statički članovi, jednakost objekata, hash metoda, uništavanje objekata, kontekstni upravitelji
- Unit testing u Pythonu, Uvod u algoritme, složenost, notacije, pristupi
- Uvod u algoritme, složenost, notacije, pristupi
Višedimenzionalnost (lista sastavljena od drugih lista), Vezane liste
- Višedimenzionalnost (lista sastavljena od drugih lista), Vezane liste
Rekurzija i backtracking
- Teme iz predavanja 4-8, Vježbanje za drugi kolokvij
- Tekstualne i binarne datoteke
- Uvod u izradu grafičkog sučelja u Pythonu
Kolekcije objekata - osnovne operacije, slijedne kolekcije, asocijativne kolekcije rječnici i skupovi, iteratori
- Algoritmi pretraživanja
- Teme iz predavanja 9-13, Vježbanje za treći kolokvij
- Algoritmi pretraživanja
Algoritmi sortiranja
|
kolokvij - teorija (KP) | - 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.
- 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.
- 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) | - 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) | - testovi i kolokviji, konzultacije, samostalni rad u laboratoriju i samostalno učenje
|