Osnove programiranja

Opis predmeta

Predmet najprej obravnava osnovne pojme računalnikov in računalniškega programiranja. V nadaljevanju se osredotoča na konkretni programski jezik JavaScript, ob katerem se študent sreča s principi načrtovanja podatkov in algoritmov, kodiranja ter preizkušanja izdelanih programov. Predmet je razdeljen na naslednja poglavja:

-Uvod:

  -splošni principi programskih jezikov

  -načrtovanje, gradnja in preizkušanje programske opreme

-Načrtovanje algoritmov:

  -diagram poteka

  -simbolni jezik

  -načrtovanje z vrha navzdol

  -deli in vladaj

  -povratno sledenje

-Programiranje z jezikom JavaScript:

  -spremenljivke

  -krmilni stavki

  -funkcije

  -objekti

  -dogodki

  -preizkušanje in razhroščevanje

Predmet učimo na programih

Elektrotehnika 1. stopnja

Cilji in kompetence

Študenti bodo obvladali osnove algoritemskega in sistemskega načina reševanja problemov. Naučili se bodo veščin računalniškega programiranja in preizkušanja programskih rešitev.

Snov je zasnovana tako, da predstavlja podlago za učenje programskega jezika C.

Metode poučevanja in učenja

Predavanja, praktični prikazi, laboratorijske vaje, individualno delo z zahtevnejšimi študenti, domače naloge

Predvideni študijski rezultati

Po uspešno opravljenem predmetu naj bi bili študenti zmožni:

-prepoznati različne komponente računalniškega programa

-pojasniti vpliv strukturiranja podatkov na kompleksnost programske kode

-izluščiti algoritem in identificirati podatke iz programa, zapisanega v konkretnem računalniškem jeziku

-razviti preprost algoritem na podlagi seznama matematičnih zahtev ter ga implementirati v konkretnem računalniškem jeziku

-ovrednotiti algoritemsko učinkovitost podanega algoritma

-zgraditi preprosto aplikacijo na podlagi podanih zahtev

-presoditi, kako učinkovita je konkretna rešitev z vidika porabe sredstev, pravilnosti, in zanesljivosti delovanja, prijaznosti do uporabnika, ter možnosti vzdrževanja in nadgradnje

Reference nosilca

  1. KUNAVER, Matevž, BÜRMEN, Arpad, FAJFAR, Iztok. Automatic grammatical evolution-based optimization of matrix factorization algorithm, Mathematics. Apr.-1 2022, iss. 7, 1139, str. 1-22
  2. ŽIC, Mark, SUBOTIĆ, Vanja, PEREVERZYEV, Sergei, FAJFAR, Iztok. Solving CNLS problems using Levenberg-Marquardt algorithm : a new fitting strategy combining limits and a symbolic Jacobian matrix. Journal of electroanalytical chemistry. 1 Jun. 2020, vol. 866, 114171, str. 1-9
  3. BÜRMEN, Arpad, TUMA, Tadej, FAJFAR, Iztok. Meta-optimisation on a high-performance computing system. Elektrotehniški vestnik, ISSN 2232-3228. [English print ed.], 2012, vol. 79, no. 5, str. 231-236
  4. FAJFAR, Iztok, TUMA, Tadej, PUHAN, Janez, OLENŠEK, Jernej, BÜRMEN, Arpad. Towards smaller populations in differential evolution = K manjšim populacijam v diferencialni evoluciji. Informacije MIDEM, ISSN 0352-9045, sep. 2012, letn. 42, št. 3, str. 152-163
  5. FAJFAR, Iztok, PUHAN, Janez, TOMAŽIČ, Sašo, BÜRMEN, Arpad. On selection in differential evolution. Elektrotehniški vestnik, ISSN 2232-3228. [English print ed.], 2011, vol. 78, no. 5, str. 275-280
  6. PUHAN, Janez, BÜRMEN, Arpad, TUMA, Tadej, FAJFAR, Iztok. Teaching assembly and C language concurrently. International journal of electrical engineering education, ISSN 0020-7209, Apr. 2010, vol. 47, no. 2, str. 120-131

Temeljni viri in literatura

1. I. Fajfar: Algoritmi in podatkovne strukture – Uvod za inženirje, Založba FE, 2020

2. I. Fajfar: Start Programming Using HTML, CSS, and JavaScript, CRC Press, 2016

3. Spletna stran W3 Schools (www.w3schools.com)

4. Mozilla Developer Network (developer.mozilla.org)

5. John Pollock: JavaScript: A Beginner's Guide, Osborne McGraw-Hill, 2009

 

Bodi na tekočem

Univerza v Ljubljani, Fakulteta za elektrotehniko, Tržaška cesta 25, 1000 Ljubljana

E:  dekanat@fe.uni-lj.si T:  01 4768 411