Računalniško programiranje

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:
pogojni stavki (if-then-else, switch)
zanke (while, do-while, for)
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:
polja
konstruktorji
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

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 (25%). 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 (75%).

Reference nosilca

Doc. dr. Bernard Ženko je raziskovalec na Odseku za tehnologije znanja, Institut Jožef Stefan, Ljubljana, ter v Centru odličnosti za integrirane pristope v kemiji in biologiji proteinov. Predava tudi na Fakulteti za informacijske študije v Novem mestu. Njegova raziskovalna področja so povezana s strojnim učenjem in njegovo uporabo pri reševanju praktičnih problemov iz okoljskih in bioloških znanosti. Razvil je metode za kombiniranje klasifikatorjev in učenje pravil za napovedovanje več ciljnih spremenljivk hkrati. Ima bogate izkušnje z aplikacijami strojnega učenja v okoljski epidemiologiji, ekologiji in medicini. Sodeloval je pri več mednarodnih projektih.

NOVAK, Monika, ZALAR, Polona, ŽENKO, Bernard, SCHROERS, Hans-Josef, DŽEROSKI, Sašo, GUNDE-CIMERMAN, Nina. Candida and Fusarium species known as opportunistic human pathogens from customer-accessible parts of residential washing machines. Fungal biology, ISSN 1878-6146, 2015, vol. 119, iss. 2/3, str. 95-113, doi: 10.1016/j.funbio.2014.10.007.

ŠKRABAN, Jure, DŽEROSKI, Sašo, ŽENKO, Bernard, MONGUS, Domen, GANGL, Simon, RUPNIK, Maja. Gut microbiota patterns associated with colonization of different clostridium difficile ribotypes. PloS one, ISSN 1932-6203, 2013, vol. 8, iss. 2, str. e58005-1-e58005-13, doi: 10.1371/journal.pone.0058005.

CAROTENUTO, Marianeve, DŽEROSKI, Sašo, ŽENKO, Bernard, SLAVKOV, Ivica, et al. Neuroblastoma tumorigenesis is regulated through the Nm23-H1/h-Prune C-terminal interaction. Scientific reports, ISSN 2045-2322, 2013, vol. 3, str. 1351-1-1351-11. http://www.nature.com/srep/2013/130301/srep01351/pdf/srep01351.pdf, doi: 10.1038/srep01351.

AHO, Timo, ŽENKO, Bernard, DŽEROSKI, Sašo, ELOMAA, Tapio. Multi-target regression with rule ensembles. J. mach. learn. res.. [Print ed.], 2012, vol. 13, str. 2367-2407.

DŽEROSKI, Sašo, ŽENKO, Bernard. Is combining classifiers with stacking better than selecting the best one?. Mach. learn.. [Print ed.], 2004, vol. 54, str. 255-273.

KOBAL GRUM, Darja, KOBAL, Alfred Bogomir, ARNERIĆ, Niko, HORVAT, Milena, ŽENKO, Bernard, DŽEROSKI, Sašo, OSREDKAR, Joško. Personality Traits in Miners with Past Occupational Elemental Mercury Exposure. Environ. health perspect., 2006, no. 1.