Programiranje 1

2022/2023
Program:
Interdisciplinarni univerzitetni študijski program 1. stopnje Računalništvo in matematika
Letnik:
1 letnik
Semester:
prvi
Vrsta:
obvezni
ECTS:
6
Jezik:
slovenski
Nosilci predmeta:

Luka Fürst

Ure na teden – 1. semester:
Predavanja
3
Seminar
0
Vaje
0
Laboratorij
2
Vsebina

predavanja:
Pregled programskih jezikov s poudarkom na sodobnih programskih jezikih 3. generacije
Primer preprostega programa, postopek priprave programa, prevajanje in izvajanje
Osnovni podatkovni tipi
Predstavitev celih in realnih števil, znakov ter logičnih vrednosti
Deklaracije konstant in spremenljivk
Stavki
Prireditveni stavek, pisanje izrazov, operatorji in njihova prioriteta
Izbirni stavki
Ponavljalni stavki
Metode
Vloga in vrste metod
Formalni in dejanski parametri
Rekurzija
Razredi in objekti
Spremenljivke in metode objekta
Konstruktorji, večkratno definiranje konstruktorjev
Dostopna določila
Vnaprej deklarirani razredi
Tabele
Enodimenzionalne in večdimenzionalne tabele
Tabele objektov
Nizi
Dedovanje
Redefinicija metod
Konstruktorji v podrazredih
Dinamično povezovanje podprogramov
Abstraktni razredi in abstraktne metode
Razred Object
Vmesnik (interface)
Grafične knjižnice, komponente grafičnega uporabniškega vmesnika
Dogodkovno vodeno programiranje
vaje:
Na vajah študenti rešujejo praktične probleme, s katerimi utrjujejo snov, ki so jo obravnavali na predavanjih. Poudarek je na samostojnem delu ob pomoči asistentov.
domače naloge:
Študenti dobijo seznam nalog (programov), ki jih morajo izdelati doma in zagovarjati na vajah v vnaprej predpisanih rokih. S tem jih vzpodbujamo k sprotnemu študiju in samostojnemu delu. Študent, ki nima pozitivno ocenjenih domačih nalog, ne more pristopiti k izpitu.

Temeljni literatura in viri

V. Mahnič, L. Fürst, I. Rožanc: Java skozi primere, Bi-TIM, 2008.
J. Farrell: Java Programming, Seventh Edition, Course Technology, Cengage Learning, 2014.
Dodatna literatura:
I. Horton: Beginning Java, Java 7 Edition, John Wiley &, Sons, Inc., 2011
Uroš Mesojedec, Borut Fabjan: Java 2: Temelji programiranja, Pasadena, 2004.

Cilji in kompetence

Cilj predmeta je študentom predstaviti osnovne koncepte objektno usmerjenega programiranja v enem izmed splošno namenskih programskih jezikov 3. generacije in jih usposobiti za samostojen razvoj enostavnih računalniških programov.
Predvidene kompetence:
razvoj sposobnosti za kritično, analitično in sintetično razmišljanje,
sposobnost razumevanja in reševanja strokovnih izzivov na področju računalništva in informatike,
sposobnost uporabe pridobljenega znanja pri samostojnem delu za reševanje tehničnih in znanstvenih problemov na področju računalništva in informatike, sposobnost nadgradnje pridobljenega znanja,
temeljna znanja na področju računalništva in informatike, ki vključujejo temeljna teoretična znanja, praktična znanja in znanja, ki so bistvena za področje računalništva in informatike,
temeljna znanja na področju računalništva in informatike, ki so pomembna za nadaljevanje študija na drugi stopnji.

Predvideni študijski rezultati

Znanje in razumevanje:
Razumevanje delovanja enostavnih digitalnih vezij. Sposobnost minimizacije logičnih vezij. Razumevanje delovanja sekvenčnih vezij in avtomatov.
Uporaba:
Uporaba osnovnih orodij za načrtovanje vezij in izdelava enostavnih logičnih sklopov.
Refleksija:
Spoznavanje in razumevanje uglašenosti med teorijo in njeno aplikacijo na konkretnih primerih s enostavnih logičnih in sekvenčnih vezij.
Prenosljive spretnosti - niso vezane le na en
predmet:
Uporaba binarne logike.
Načrtovanje in izgradnja enostavnih digitalnih vezij.

Metode poučevanja in učenja

Predavanja z aktivno udeležbo študentov (razlaga, diskusija, vprašanja, primeri, reševanje problemov),
Laboratorijske vaje (refleksija izkušenj, praktično reševanje več tipičnih problemov na računalniku, predstavitev in zagovor programskih rešitev, diskusija, sporočanje povratne informacije),
Domače naloge (samostojna izdelava računalniških programov)
Individualne konsultacije (diskusija, dodatna razlaga, obravnava specifičnih vprašanj)

Načini ocenjevanja

Način (pisni izpit, ustno izpraševanje, naloge, projekt):
Sprotno preverjanje (3 seminarske naloge, , kratki testi v obliki kvizov)
Končno preverjanje (izpit)
Ocene: 6-10 pozitivno, 5 negativno
(v skladu s Statutom UL)

Reference nosilca

FÜRST, Luka, MERNIK, Marjan, MAHNIČ, Viljan. Improving the graph grammar parser of Rekers and Schürr. IET Software, 2011, vol. 5, no. 2, str.246-261.

FÜRST, Luka, MERNIK, Marjan, MAHNIČ, Viljan. Converting metamodels to graph grammars: doing without advanced graph grammar features. Software and systems modeling, 2015, vol. 14, no. 3, str. 1297-1317.

FÜRST, Luka, ČIBEJ, Uroš, MIHELIČ, Jurij. Maximum exploratory equivalence in trees. FedCSIS 2015, Łódź, Poljska, september 2015, str. 507-518.

FÜRST, Luka, MAHNIČ, Viljan. Introductory programming course: motivating students with prior knowledge. World transactions on engineering and technology education, ISSN 1446-2257, 2013, vol. 11, no. 4, str. 400-405. http://wiete.com.au/journals/WTE&TE/Pages/Vol.11, %20No.4%20(2013)/08-Fuerst-L.pdf.

MAHNIČ, Viljan, FÜRST, Luka, ROŽANC, Igor. Java skozi primere. Šenčur: Bi-tim, 2008. XIV, 478 str., ponovni ponatis 2012.