Fakulteta za humanistiko

Računalniško programiranje

Predmet se izvaja v programu:
Digitalna humanistika, interdisciplinarni magistrski študijski program

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.

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.

Univerzitetna koda predmeta: 2DH003

Letnik: 1

Semester: 1

Nosilec predmeta:

Predavatelj:

ECTS: 8

Obseg:

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

Vrsta predmeta: obvezni izbirni predmet za diplomante humanistike.

Jeziki: slovenski, angleški

Metode poučevanja in učenja:
predavanja, kjer bodo predstavljene in razložene vse vsebine iz učnega programa; praktične laboratorijske vaje, kjer bodo študenti na predavanjih obravnavane vsebine uporabili v praktičnih problemih in programih; 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.