Skoči na glavni sadržaj

Sadržaj predmeta

Objektno programiranje

Šifra:
15965
Kratica:
OBPROG
Visoko učilište:
Fakultet strojarstva i brodogradnje
ECTS bodovi:
5.0
Opterećenje:
15(V) + 30(P)
Nositelji:

izv. prof. dr. sc. Vladimir Milić

Izvođači:

izv. prof. dr. sc. Vladimir Milić (V, P)

dr. sc. Matija Krznar (V)

Opis predmeta:
Ciljevi predmeta: Naučiti osnove objektnog programiranja u interaktivnom i GUI okolišu. Nakon položenog kolegija, studenti će bit sposobni razvijate vlastite programe u Pythonu. Ovo iskustvo dat će studentima dobru priliku da računalom rješavaju mnoge vježbe i zadaće drugih kolegija. Studenti će također imati dostatno razumijevanje i pregled Python jezika i njegovih znanstvenih modula (numpy/scipy/opencv) da mogu osobno naći i drugu potrebnu informaciju. Oni će bit sposobni lako naučiti slične programske jezike (Ruby, Java) i svladati iduće kolegije koji primjenjuju programski okoliš, kao što su Matlab/Scilab i R. Uvjeti za upis predmeta i ulazne kompetencije koje su potrebne za predmet: Položen kolegij Mathematika II. Obaveze studenata: Redoviti dolazak na predavanja i vježbe u računalnim učionicama. Rješavanje nekoliko seminara preko Scriptrunner sustava. Konzultacije prema potrebi. Ocjenjivanje i vrednovanje rada studenata tijekom nastave i na završnom ispitu: 30 % ocjena seminara i vježbi 30 % pismeni ispit / kolokviji 40 % usmeni ispit Načini praćenja kvalitete koji osiguravaju stjecanje izlaznih znanja, vještina i kompetencija: Seminari i domaće zadaće prate se preko Scriptrunner sustava: https: //fsb.scriptrunner.carnet.hr/ Nakon uspješno savladanog kolegija student će moći (ishodi učenja): rješavati tehničke probleme programiranjem u objektnom jeziku Python pisati programski kod s GUI sučeljem Predavanja 1. Algoritam+struktura podataka=program; interaktivni i skriptni okoliš 2. Tipovi podataka; varijable, operatori, izrazi 3. Tijek programa: grananja i petlje; uvjetne naredbe 4. Složeni tipovi podataka: liste, nterci, rječnici 5. Funkcije ugrađene i korisničke 6. Argumenti i parametri funkcija; prostor imena 7. Klase: gniježdenje podataka, metode; tvorba objekata 8. Nasljeđivanje, višestruko nasljeđivanje 9. Posebnosti: iteratori i generatori; dekorators, regularni izrazi 10. Dohvaćanje iznimki. Rad s datotekama. Moduli. 11. Osnove GUIa: Python Tkinter 12. Numerički Python: numpy & scipy moduli 13. Matrična aritmetika u Pythonu 14. Python grafika: Matplotlib 15. Optimizacija: scipy.optimize i CVXOPT Vježbe 1. Pojam podatka, algoritma, programa. 2. Upoznavanje s Python interpreterom i alatima za pisanje programa. Primjena Pythona kao kalkulatora. Primjena Pythona za rješavanje osnovnih matematičkih izraza. 3. Kroz niz primjera pokazati temelje programiranja u Pythonu: for i while petlji, ifelse uvjeti. 4. Primjeri kreiranja i manipuliranja listama, ndimenzionalnim poljima ntercima i rječnicima. 5. Primjeri primjene osnovnih ugrađenih funkcija. Kreiranje vlastitih funkcija. 6. Kreiranje funkcija više ulaznih argumenata i više izlaznih veličina. Lokalne i globalne varijable. 7. Primjeri kreiranja klasa iz funkcija za rješavanje raznih matematičkih i inženjerskih problema. 8. Kroz niz primjera naučiti stvaranje familije klasa primjenom svojstva nasljeđivanja. 9. Primjeri kreiranja posebnih objekata: iretatori i generatori; dekoratori, regularni izrazi. 10. Kroz niz matematičkih i inženjerskih primjera pokazati tehnike dohvaćanja iznimki, te naučiti rad s datotekama i modulima. 11. Izrada osnovnog korisničkog grafičkog sučelja primjenom paketa Tkinter. 12. Rješavanje problema aproksimacije, interpolacije i numeričkog integriranja primjenom paketa interpolate i integrate iz modula numpy i scipy. 13. Rješavanje osnovnih problema iz linearne algebre primjenom paketa linalg. 14. Primjena Matplotlib za crtanje i uređivanje raznih vrsta grafova. 15. Primjena scipy.optimize za minimizaciju funkcije više varijabli, te primjena CVXOPT za rješavanje problema konveksne optimizacije.
Jezici izvođenja nastave:

Hrvatski

Obavezna literatura:

1. Essert, M.: Python programiranje, Zavodski digitalni udžbenik, Zagreb 2010.

2. https: //www.fsb.unizg.hr/usb_frontend/?action=category&site_id=12&category_id=83

Preporučena literatura:

3. Mark Lutz, Learning Python, Fourth Edition, O"Reilly, 2009.

4. H.P. Langtangen, A Primer on Scientific Programming with Python, e-ISBN 978-3-642-02475-7, Springer-Verlag Berlin Heidelberg 2009

Preduvjeti za upis predmeta:

Matematika II (položen)

Predmet u nastavnom programu:
Šifra studija Naziv studija Razina studija Semestar izvođenja Obavezni/Izborni
23 Mehatronika i robotika prijediplomski 3 obavezni

* predmet se ne predaje u tom semestru

Legenda

  • P - Predavanja
  • V - Vježbe