SKRIPT PROGRAMIRANJE

Ova stranica je posvećena kursu Skript-programiranje na studijskom programu Informatika. Cilj predmeta je sticanje opštih i specifičnih znanja o skript jezicima, komandnoj liniji i programskoj obradi tekstualnih datoteka. U okviru predmeta obrađuju se teorijski značaj skript jezika, kao i praktične primene. Posebno se obrađuju shell skript jezik Bash i programski jezik Python.

Osnovne informacije:

  • Predmet je obavezan.
  • Predmet se sluša na drugoj godini studijskog programa Informatika.
  • Nastava se održava tokom prolećnog semestra.
  • Predmet vredi 3 boda ESPB.
  • Nastava se odvija jednim časom predavanja i jednim dvočasom vežbi nedeljno.

Sadržaj predmeta:

  • Uvod u skript jezike
    • Karakteristike skript jezika
    • Domeni upotrebe skript jezika
    • Jezici opšte namene
    • Osnovne karakteristike najznačajnijih skript jezika
    • Regularni izrazi (praktični aspekti)
  • Skript jezici za rad u komandnoj liniji
    • Osnove jezika i okruženje za rad
    • Komande za baratanje fajlovima i fajl sistemom (cd, touch, rm, chown, chmod, ...)
    • Komande za obradu teksta (echo, grep, sed, cut, tr, ...)
    • Kompozicija komandi i preusmeravanje ulaza i izlaza (pipe, fg, bg, &&, &, >, ...)
    • Promenljive i interpolacija stringova
    • Kontrola toka izvršavanja
    • Pisanje i pokretanje skriptova
  • Programski jezik Python
    • Osnove jezika Python, interpreter
    • Kontrola toka izvršavanja
    • Funkcije, argumenti, pozicioni i imenovani argumenti
    • Liste i funkcije za baratanje listama
    • Rečnici i kolekcije podataka
    • Rad sa ulazom i izlazom
    • Datoteke i sistem datoteka
    • Rad sa uobičajenim tipovima tekstualnih datoteka (json, csv, tsv, xml)

Literatura:

  • „Learning the Bash shell”, C. Newham
  • „The Linux Command Line”, W. Shotts
  • „Learning Python”, M. Lutz

Predmetni nastavnik:

Asistenti:

  • Stefan Milenković
  • Robert Doža

Ova stranica je u pripremi. Informacije na njoj su podložne promeni tokom početka semestra.

Predispitne obaveze

Na kursu nema predispitnih obaveza (kolokvijuma, testova, projekata i slično). Prisustvo predavanjima i časovima vežbi nije obavezno (ali je veoma poželjno).

Završni ispit

Ispit se sastoji od praktičnog i teorijskog dela. Na praktičnom delu ispita se proverava poznavanje gradiva obrađenog na časovima vežbi i podrazumeva izradu praktičnih zadataka na računaru. Na teorijskom delu ispita se proverava poznavanje gradiva obrađenog na predavanjima. Praktični deo ispita vredi 70 poena. Da bi student položio praktični deo ispita, na istom mora ostvariti barem 35 poena. Teorijski deo ispita vredi 30 poena. Da bi student položio teorijski deo ispita, na istom mora ostvariti barem 15 poena. Da bi student položio ceo ispit, mora položiti praktični i teorijski deo ispita, kao i ukupno ostvariti barem 51 poen.
Napomena: materijali trpe konstantne promene tokom semestra. Za sva pitanja, nedoumice i predloge, javiti se predmetnom nastavniku.

Predavanje 1 - Uvod u skript jezike

  • Pojam i uloga skript jezika
  • Razilka između skriptnih i kompajliranih jezika
  • Karakteristike skript jezika
  • Pregled domena primene: sistemska administracija, automatizacija, analiza podataka
  • Primer upotrebe nad učestalim tipovima tekstualnih datoteka: JSON, CSV, TSV, XML

Predavanje 2 - Jezici opšte namene i pregled skript jezika

  • Jezici opšte namene
  • Pregled najznačajnijih skript jezika (Bash, Python, PowerShell, JavaScript)
  • Osnovne karakteristike i uporedna analiza
  • Kriterijumi za izbor skript jezika

Predavanje 3 - Regularni izrazi

  • Osnovni koncepti regularnih izraza
  • Sintaksa i najčešći obrasci
  • Praktični aspekti primene regularnih izraza
  • Primena u komandnoj liniji i Python-u

Predavanje 4 - Skript jezici za rad u komandnoj liniji

  • Komandna linija i okruženje za rad
  • Uloga shell-a
  • Osnovni koncepti rada u terminalu
  • Pregled alata i tipičnih scenarija upotrebe

Predavanje 5 - Obrada podataka u komandnoj liniji

  • Rad sa fajlovima i fajl sistemom
  • Komande za obradu teksta
  • Kompozicija komandi
  • Preusmeravanje ulaza i izlaza

Predavanje 6 - Pisanje i izvršavanje shell skriptova

  • Promenljive i interpolacija stringova
  • Kontrola toka izvršavanja
  • Pisanje, pokretanje i testiranje skriptova
  • Osnove debagovanja

Predavanje 7 - Uvod u Python kao skript jezik

  • Python kao interpretirani jezik
  • Python interpreter i okruženje za rad
  • Osnovna sintaksa
  • Struktura Python programa

Predavanje 8 - Kontrola toka i funkcije u Python-u

  • Uslovne strukture i petlje
  • Funkcije
  • Pozicioni i imenovani argumenti
  • Dobra programska praksa

Predavanje 9 - Strukture podataka u Python-u

  • Liste i funkcije za rad sa listama
  • Rečnici i kolekcije podataka
  • Osnovni algoritmi nad strukturama podataka

Predavanje 10 - Rad sa ulazom, izlazom i datotekama u Python-u

  • Standardni ulaz i izlaz
  • Rad sa datotekama i sistemom datoteka
  • Rad sa uobičajenim tipovima tekstualnih datoteka
    • JSON
    • CSV/TSV
    • XML

Predavanja 11-13 - Primeri iz prakse

  • Primeri u realnim scenarijima
Napomena: materijali trpe konstantne promene tokom semestra. Za sva pitanja, nedoumice i predloge, javiti se predmetnim asistentima.

Dvočas 1

  • Uvod u praktični deo kursa
  • Rad u komandnoj liniji
  • Direktorijumi, putanje
  • Priručnik man, komanda help
  • Rad sa fajl sistemom (komande pwd, ls, cd, touch, rm, mkdir, rmdir, pushd, popd, find)
  • Prava pristupa (komanda chmod)

Dvočas 2

  • Pisanje Beš skriptova
  • Ekspanzije
  • Argumenti komandne linije
  • Kontrola toka - grananje, „for each” petlja

Stranica kursa u izradi

Stranica kursa je i dalje u izradi. Informacije koje se tiču načina polaganja ispita biće blagovremeno postavljene.

26.3.2026.

Početak semestra

Svim studentima želimo uspešan početak prolećnog semestra!

25.3.2026.

Matematički fakultet, Univerzitet u Beogradu
školska 2025/26. godina