Subject name | Programming Methods and Abstractions |
Details | Code VSITE122 Abbrev. PMA ECTS 8 Year 2 Semester Summer semester Type obligatory NQF Level 6 Bachelor study E-Learning 0% |
Activities | IT zg - Sum 24/25 ECTS Units Hours Total T 1.5 15 3 45
N 0 15 1 15
L 2 13 3 45
S 0 0 0 0
PN 0 0 0 0
PT 0 3 1 0
PR 0 0 0 0
EN 0 0 0 0
ET 0 1 2 0
AL 4.5 1 135 135
|
Teachers | Leaders: Ljubomir Hrboka, pred., Goran Sirovatka, v. pred. Assistants: Mislav Piskać, asist. vis. šk. |
Prerequisits | None |
Content | 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.
|
Learning objectives | 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.
|
Learning outcomes | 1. Analyze the posed program problem, recognize the level of its complexity, and to parse it into elementary steps and to implement it within programming language Python , i.e. to propose pseudo-code of solution for some other structured programming language. 2. To model a programming solution by grouping atomic operations into separated and generic components (functional decomposition). 3. To understand and to be able to analyze (visually and with the use of debug tools) already proposed programming solutions in Python programming language.
|
Competencies | 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.
|
Recommended Literature | 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
|
Additional Literature | 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
|
lectures (T) | - 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.
|
numeric exercises (N) | - 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.
|
laboratory exercises (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
|
preliminary exam - theory (PT) | - 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
|
exam - theory (ET) | - 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.
|
autonomus learning (AL) | - testovi i kolokviji, konzultacije, samostalni rad u laboratoriju i samostalno učenje
|