Skip to main content

IT - Programming Methods and Abstractions

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 23/24
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
TeachersLeaders: Ljubomir Hrboka, pred., Goran Sirovatka, v. pred.
Assistants: 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.
PrerequisitsNone
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)
  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.
numeric exercises (N)
  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.
laboratory exercises (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
preliminary exam - theory (PT)
  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
exam - theory (ET)
  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.
autonomus learning (AL)
  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