Poslovno-tehniška fakulteta

Računalniško programiranje

Predmet se izvaja v programu:
Študijski program prve stopnje Gospodarski inženiring

Cilji in kompetence

Računalnik nam omogoča ali pomaga pri reševanju najrazličnejših nalog in problemov. Čeprav lahko za njihovo reševanje velikokrat uporabimo že napisano programsko opremo, pa v praksi večkrat naletimo tudi na naloge, ki zahtevajo posebej za ta namen napisan program. Cilj predmeta Računalniško programiranje je predstaviti študentom temeljne koncepte programiranja. Učni načrt je oblikovan tako, da študente spozna z vsemi osnovnimi programerskimi koncepti ter jih usposobi za samostojno pisanje programov v jeziku Java. Osvojena znanja bodo s pridom uporabljali pri reševanju problemov za katere je potrebna namensko napisana programska oprema.

Pogoji za vključitev v delo oz.
za opravljanje študijskih obveznosti

Potrebna so osnovna matematična znanja ter osnovna znanja uporabe računalnika in vsaj enega od sodobnih operacijskih sistemov (Windows, Linux ali OS X).

Vsebina

1. Uvod

  • Cilji in namen predmeta
  • Predstavitev učnega programa
  • Predstavitev učnih pripomočkov, virov in načina dela
  • Predstavitev obveznosti študentov
  • Napotki in sugestije za študij

2. Osnovni pojmi

  • Kratka zgodovina programiranja in programskih jezikov
  • Delovanje računalnika
  • Algoritem, računalniški program in diagram poteka

3. Prvi koraki v Javi

  • Osnovna orodja za poganjanje in pisanje programov (JRE in JDK)
  • Prvi primer programa
  • Spremenljivke
  • Osnovni podatkovni tipi
  • Tabele in nizi
  • Argumenti iz ukazne vrstice
  • Operatorji

4. Programski stavki in metode

  • Izrazi in stavki
  • Prireditveni stavek
  • Krmilni stavki:

o pogojni stavki (if-then-else, switch)

o zanke (while, do-while, for)

o vejitveni stavki (break, continue, return)

  • Metode

5. Delo z vhodno-izhodnimi enotami

  • Branje s tipkovnice
  • Branje iz in pisanje v datoteke
  • Izjeme

6. Objektno orientirano programiranje

  • Osnovni koncepti OOP (objekt, razred, metoda, vmesnik, dedovanje, paket)
  • Deklariranje razredov:

o polja

o konstruktorji

o metode

  • Rezervirani besedi this in super
  • Vrste spremenljivk in njihova vidnost
  • Izpis in kopiranje objektov, preverjanje njihove enakosti

7. Napredno programiranje

  • Razvojno okolje Eclipse
  • Datoteke jar
  • Matematične funkcije in razred Number
  • Računanja s števili s plavajočo vejico, zaokroževanje in konvergenca
  • Rekurzija
  • Delo z nizi
  • Delo z matrikami
  • Preprost uporabniški vmesnik
  • Pretvarjanje med podatkovnimi tipi
  • Dinamične tabele
  • Sortiranje
  • Računska zahtevnost algoritmov

8. Grafični uporabniški vmesnik

  • Programčki (angl. Applets)
  • Osnovni principi
  • Grafične knjižnice
  • Osnovni grafični elementi
  • Dogodki

Predvideni študijski rezultati

Študenti bodo osvojili osnovne pojme (objektno orientiranega) računalniškega programiranja in spoznali programski jezik Java. Sposobni bodo samostojno zapisati problem v obliki algoritma in pretvoriti algoritem v računalniški program z uporabo sodobnih programskih orodij. Pridobili bodo osnovno razumevanje računalniških sistemov in arhitektur ter sposobnost samostojnega reševanja realnih problemov s pomočjo računalniškega programiranja.

Temeljna literatura in viri

Peter Krebelj, Python 3 za začetnike: vse kar potrebujete, da boste postali Python programerji. 1. izd. – Ljubljana: Atelje Doria, 2013

Peter Krebelj, Python za inženirje. e-gradivo

Mrhar, P. (2002). Java 2 – prvi korak. Šempeter pri Gorici: Flamingo.

Mesojedec, U., Fabjan B. (2004). Java2: temelji programiranja. Ljubljana: Pasadena.

Eck, D. J. (2011). Introduction to Programming Using Java. 6th Edition, http://math.hws.edu/javanotes/

Eckel, B. (2002). Thinking in Java, 3rd Edition, http://www.mindview.net/Books/TIJ/

Barnes, D.J., Kolling, M. (2004). Objects First with Java – A Practical Introduction using BlueJ, 2nd Edition, Prentice Hall/Pearson Education.

Sierra, K., Bates, B. (2005). Head First Java, 2nd Edition, O’Reilly, Sebastopol.

Wirth, N. (1985). Računalniško programiranje I. Ljubljana: DMFA.

Wirth, N. (1985). Računalniško programiranje II. Ljubljana: DMFA.

Učno razvojno okolje za Javo – BlueJ (URL: http://www.bluej.org/index.html)

Načini ocenjevanja

Seminarska naloga z ustnim zagovorom, kjer se preveri zmožnost samostojne izdelave računalniškega programa za izbran praktični problem. Pisni izpit, kjer se ocenjuje znanje temeljnih konceptov objektno orientiranega računalniškega programiranja v jeziku Java ter zmožnost samostojnega reševanja krajših programerskih problemov. 25/75

Reference nosilca

Prof. dr. Barbara Koroušić Seljak je znanstvena sodelavka na Institutu »Jožef Stefan«, Odseku za računalniške sisteme, in docentka računalništva na Mednarodni podiplomski šoli Jožefa Stefana. Doktorski naziv s področja računalništva in informatike je prejela na Univerzi v Ljubljani. Njena glavna raziskovalna področja so povezana z načrtovanjem in razvojem naprednih in vgrajenih računalniških sistemov ter metahevrističnimi optimizacijskimi algoritmi. B. Koroušić Seljak je avtorica Odprte platforme za klinično prehrano, ki predstavlja sklop spletnih in mobilnih aplikacij in naprav za načrtovanje klinične prehrane. Aktivno sodeluje v strokovnih združenjih EuroFIR AISBL in Slovensko združenje za klinično prehrano, kjer je članica upravnih odborov.

Izbrane objave

EFTIMOV, Tome, POPOVSKI, Gorjan, PETKOVIĆ, Matej, KOROUŠIĆ-SELJAK, Barbara, KOCEV, Dragi. COVID-19 pandemic changes the foodconsumption patterns. Trends in food science & technology. [Print ed.]. 2020, vol. 104, str. 268-272. ISSN 0924-2244. DOI: 10.1016/j.tifs.2020.08.017.

KOROUŠIĆ-SELJAK, Barbara, MLAKAR-MASTNAK, Denis, MREVLJE, Živa, VENINŠEK, Gregor, ROTOVNIK-KOZJEK, Nada. A multi-center surveyon hospital malnutrition and cachexia in Slovenia. European journal of clinical nutrition. 2020, vol. 74, no. 3, str. 419-426. ISSN 0954-3007. DOI: 10.1038/s41430-019-0485-y.

MEZGEC, Simon, KOROUŠIĆ-SELJAK, Barbara. Deep neural networks for image-based dietary assessment. Journal of visualized experiments. 2021, vol. 169, [1.17] str. ISSN 1940-087X. DOI: 10.3791/61906.

PAPA, Gregor, KOROUŠIĆ-SELJAK, Barbara, PAVLIN, Marko. Device and method for acquisition and transfer of signals : patentna prijava GB1407135. London: Intellecual Property Office, 23. apr. 2014.

BIZJAK, Mojca, JENKO PRAŽNIKAR, Zala, KOROUŠIĆ-SELJAK, Barbara. Development and validation of an electronic FFQ to assess food intake in the Slovene population. Public health nutrition, ISSN 1368-9800, 2014, vol. 17, iss. 8, str. 1729-1737.

BENEDIK, Evgen, KOROUŠIĆ-SELJAK, Barbara, SIMČIČ, Marjan, ROGELJ, Irena, BRATANIČ, Borut, DING, Eric L., OREL, Rok, FIDLER MIS, Nataša. Comparison of paper- and web-based dietary records : a pilot study. Annals of nutrition and metabolism, ISSN 0250-6807, 2014, vol. 64, no. 2, str. 156-166.

KOROUŠIĆ-SELJAK, Barbara, STIBILJ, Vekoslava, POGRAJC, Larisa, FIDLER MIS, Nataša, BENEDIK, Evgen. Food composition databases for effective quality nutritional care. Food chem.. [Print ed.], [in press] 2013, 38 str., doi: 10.1016/j.foodchem. 2013.02.061.

KOROUŠIĆ-SELJAK, Barbara, PAPA, Gregor. MatPort – online mathematics learning with a bioinspired decision-making system. International journal of innovative computing and applications. [Print ed.], 2011, vol. 3, no. 1, str. 50-57.

KOROUŠIĆ-SELJAK, Barbara. Web-based eHealth applications with reference to food composition data. V: European food composition data for better diet, nutrition and food quality. European journal of clinical nutrition, vol. 64, suppl., 2010, London; Paris: John Libbey, str. S121-S127.

KOROUŠIĆ-SELJAK, Barbara. Computer-based dietary menu planning : how to support it by complex knowledge?. Lect. notes comput. sci., 2010, vol. 6276, str. 587-596.

KOROUŠIĆ-SELJAK, Barbara. Computer-based dietary menu planning. J. food compos. anal., 2009, vol. 22, no. 5, str. 414-420, doi: 10.1016/j.jfca.2009.02.006.

Univerzitetna koda predmeta: 1GI037

Letnik: 2

Semester: 1

Nosilec predmeta:

Predavatelj:

ECTS: 6

Obseg:

  • Predavanja: 30 ur
  • Vaje: 30 ur
  • Samostojno delo: 90 ur

Vrsta predmeta: izbirni

Jeziki: slovenski, angleški

Metode poučevanja in učenja:
poučevanje bo sestavljeno iz treh sklopov. prvi sklop bodo predavanja, kjer bodo predstavljene in razložene vse vsebine iz učnega programa. drugi sklop bo obsegal praktične laboratorijske vaje, kjer bodo študenti na predavanjih obravnavane vsebine uporabili v praktičnih problemih in programih. tretji sklop bo obsegal samostojno delo študentov v okviru katerega bodo morali sproti reševati domače naloge ter na koncu izdelati še seminarsko nalogo v obliki daljšega programa.