Skip to main content

IT - Introduction to Programming

Subject name

Introduction to Programming

Details
Code
VSITE121
Abbrev.
UPROG
ECTS
8
Year
2
Semester
Winter semester
Type
obligatory
NQF Level 6
Bachelor study
E-Learning
0%
Activities
IT zg - Sum 23/24
ECTS
Units
Hours
Total
T
1.5
15
3
45
N
0
0
0
0
L
2
14
3
60
S
0
0
0
0
PN
0
0
0
0
PT
0
2
1
0
PR
0
0
0
0
EN
0
0
0
0
ET
0
1
2
0
AL
4.5
1
135
135
TeachersLeaders: Dragana Čulina, pred.
PrerequisitsNone
Content

Računalni programi i programski jezici. Bitovi i bajtovi. Brojevni sustavi. Programske paradigme i programski jezik Python. Programsko okruženje za pisanje i izvođenje programa na računalu u programskom jeziku Python. Osnovni tipovi podataka. Aritmetički operatori i izrazi. Varijable, objekti i naredba pridruživanja. Identifikatori i smjernice imenovanja. Unos i ispis podataka. Relacijski i logički operatori i izrazi. Naredbe grananja i naredbe ponavljanja. Korištenje predefiniranih funkcija. Definiranje vlastitih funkcija u Pythonu. Stvaranje vlastitih modula. Dokumentiranje, testiranje i debagiranje. Složeni tipovi podataka. Niz znakova (string). Liste u Pythonu. Objektno orijentirano Programiranje. Oblikovanje klasa u jeziku Python. Python i umjetna inteligencija.

Learning objectives

Opći: Stjecanje znanja o funkcioniranju, razvoju i održavanju programske podrške. Usvajanje osnovnih principa programiranja zajedničkih većini programskih jezika.
Posebni: Korištenje Python editora IDLE. Tipovi podataka. Izrazi. Varijable i naredbe pridruživanja. Naredbe grananja i naredbe ponavljanja. Definiranje funkcija. Moduli. Važnost dokumentiranja, testiranja i debagiranja. Znakovni nizovi. Liste. Definiranje klasa i instanciranje objekata. Upoznavanje sa osnovnim pojmovima umjetne inteligencije.

Learning outcomes

1. Explain and apply the basic principles as well as approaches in creating programming solutions.
2. Use Python IDLE environment.
3. Master the work with basic program elements.
4. Use operators and expressions.
5. Use branching statements and loop statements.
6. Create program applications made of several functions.
7. Manipulate lists.
8. Manipulate strings.
9. Apply basic principes of object oriented programming and to create simple object oriented program solutions.

Competencies

Kolegij pruža temeljna znanja s područja programiranja kao osnovu jezgre računarstva, osposobljava polaznike za programiranje u programskom jeziku Python.

Recommended Literature

1. Dragana Čulina: Uvod u programiranje, interna skripta, VSITE, Zagreb, 2020.
2. Irv Kalb: Learn to Program with Python 3: A Step-by-Step Guide to Programming, 2nd ed., Apress, 2018

Additional Literature

Magnus Lie Hetland: Beginning Python: From Novice to Professional, 3rd ed., Apress, 2018.

lectures (T)
  1. Računala i računalni programi. Sklopovlje. Binarni i decimalni sustavi. Izvorni kod, interpreter, kompajler. Algoritmi. Koraci izgradnje programa. Osnovni programski pristupi. Proceduralni, funkcionalni i logički usmjereni jezici. Objektno usmjereni jezici. Programski jezik Python. Izbor programskog okruženja. Interaktivni i uređivački dio sučelja IDLE.
  2. Pisanje i izvršavanje programa. Sintaksa programskog jezika Python. Otkrivanje grešaka. Aritmetički izrazi. Objekti i tipovi. Tipovi int, float i string. Varijable i naredbe pridruživanja. Model smještanja podataka u spremnik. Višestruko pridruživanje. Tip podatka n-torka. Zamjena vrijednosti varijabli. Funkcija divmod().
  3. Komentari u programu. Dokumentacijski string. Upis i ispis podataka (funkcije input i print). Formatirani ispis. Booleov tip podatka (bool), relacijski i logički operatori. Naredbe grananja if, i if…else. Uvlačenje bloka naredbi. Dijagram toka.
  4. Naredba grananja if..elif..else. Naredbe ponavljanja. Naredba for. Naredba while.
  5. Naredbe break i continue. Ugniježđene petlje. Napredniji programski primjeri.
  6. Funkcije u Pythonu. Built-in funkcije i definirane funkcije. Dokumentacijski string i naredba help. Definiranje vlastitih funkcija. Parametri i argumenti. Lokalne i globalne varijable. Naredba return. Funkcije koje ne vraćaju vrijednost. Vrijednost None. Funkcija main.
  7. Rješavanje problema pomoću funkcija. Dizajniranje funkcija. Testiranje funkcija. Poziv funkcije. Praćenje izvršenja poziva u memorijskom modelu. Ponavljanje i priprema za prvi kolokvij.
  8. Prvi kolokvij. Moduli. Naredbe import i from … import. Modul math.
  9. Modul sys i dodavanje u syspath puta do određene mape. Kako da naš program postane modul. Varijabla _name_ i njena vrijednost. Dokumentiranje, testiranje i debagiranje.
  10. Složeni tipovi podataka. Znakovni nizovi (string). Operatori za rad sa znakovnim nizovima (+, *, in, not in). Ugrađene funkcije za rad sa znakovnim nizovima (len). Dohvat pojedinačnih znakova pomoću indeksa i pomoću petlje. Izdvajanje (isijecanje) dijela znakovnog niza. Ugrađene metode (upper, lower, find, replace).
  11. Liste. Kreiranje liste. Indeksi. Unos i ispis vrijednosti elemenata liste pomoću for petlje. Funkcija list i objekt range. Liste i znakovni nizovi. Nepromjenljivi i promjenljivi tip podataka. Operatori za liste. Ugrađene funkcije za liste (len, min, max, sum).
  12. Ugrađene metode za liste (pop, sort, reverse). Pretvorba stringa u listu i liste stringova u jedan string. Objektno orijentirano programiranje. Klase i objekti.
  13. Članovi klase: atributi i metode. Glavni potpornji OOP-a: enkapsulacija, polimorfizam, nasljeđivanje. Oblikovanje klasa u jeziku Python. Konstruktor (metoda _init_). Parametar self.
  14. Osnovni pojmovi umjetne inteligencije i strojnog učenja, te povijesni razvoj. Primjena Pythona u umjetnoj inteligenciji. Ponavljanje i priprema za drugi kolokvij .
  15. Drugi kolokvij.
laboratory exercises (L)
  1. Upoznavanje programskog okruženja IDLE. Interaktivni dio sučelja. Uređivački dio sučelja. Ključne riječi. Spremanje i pokretanje programa. Varijable, objekti i tipovi podataka. Naredba pridruživanja. Operatori i izrazi. Aritmetički operatori.
  2. Upis i ispis podataka (funkcije input i print). Formatirani ispis. Cjelobrojno dijeljenje i mod operator. Prioritet operatora. Zamjena vrijednosti varijabli. Korištenje komentara.
  3. Relacijski operatori. Logički operatori not, and i or. Booleove vrijednosti True i False. Kombiniranje jednostavnih uvjeta u složene. Naredbe grananja if, if…else i if..elif..else. Uvlačenje blokova naredbi.
  4. Programska petlja for. Mijenjanje vrijednost brojača. Funkcija range() sa jednim, dva i tri parametra. Korištenje vrijednosti varijable brojača unutar petlje.
  5. Uvjetno ponavljanje bloka naredbi - while petlja. Usporedba petlji for i while. Beskonačne petlje.
  6. Ponavljanje naredbi grananja i naredbi ponavljanja.
  7. Poštivanje preporuka za stil programiranja u Pythonu: uvlačenje bloka naredbi, duljina retka, prazni redovi. Definiranje vlastitih funkcija. Ključna riječ def, imenovanje funkcije, parametri, naredba return. Dokumentacijski string. Funkcija sa i bez parametara, funkcija koja vraća vrijednost, funkcija koja ne vraća vrijednost. Funkcija main().
  8. Funkcije – ponavljanje kroz složenije zadatke.
  9. Pokretanje programa naredbom Run=>Run Module (F5) i uvoženje programa naredbom import ili from import. Modul math. Modul sys i dodavanje u syspath puta do određene mape.
  10. Znakovni nizovi (string). Operatori +, *, in, not in. Ugrađena funkcija len(). Dohvat pojedinačnih znakova u uzlaznom i silaznom redoslijedu. Postupak isijecanja grupe znakova iz početnog znakovnog niza. Ugrađene metode (upper, lower, find, replace).
  11. Zadavanje liste nabrajanjem elemenata. For petlja i funkcije range(). Pojedinačni ispis svih članova liste uz pomoć for petlje. Ispis isječka liste. Stvaranje liste pomoću funkcije list.
  12. Mijenjanje vrijednosti pojedinih elemenata liste. Pridruživanje listi još jednog imena. Kopiranje liste. Operatori +, *, in i not in. Ugrađene funkcije za liste (len, min, max, sum). Ugrađene metode za liste (pop, sort, reverse).
  13. Oblikovanje klasa u jeziku Python. Imenovanje klase, atributi klase, definicija metoda. Kreiranje objekta klase. Pristup atributima i metodama.
  14. Ponavljanje znakovnih nizova i listi. Primjer nadziranog učenja: Klasificiranje vrsta irisa.
preliminary exam - theory (PT)
  1. Cjeline U1-U8. Kolokvij se polaže pismeno. Prolaz na kolokviju: 50% minimalno, uvjetni prolaz je 40% (u ukupnom zbroju mora biti 50% oba kolokvija). U slučaju jednog nepoloženog kolokvija moguće su dvije nadoknade (ispravci) kolokvija na redovnim ispitnim rokovima (zimski rokovi za studente zimskog semestra, ljetni rokovi za studente ljetnog semestra).
  2. Cjeline U9-U14. Kolokvij se polaže pismeno. Prolaz na kolokviju: 50% minimalno, uvjetni prolaz je 40% (u ukupnom zbroju mora biti 50% oba kolokvija). U slučaju jednog nepoloženog kolokvija moguće su dvije nadoknade (ispravci) kolokvija na redovnim ispitnim rokovima (zimski rokovi za studente zimskog semestra, ljetni rokovi za studente ljetnog semestra).
  3. Not defined
exam - theory (ET)
  1. Ukupna ocjena oba kolokvija minimalno 50%. Konačnu ocjenu sačinjava kolokvij teorije (ili rezultat ispita) 80%, izlazni testovi laboratorijskih vježbi 13% te izlazni testovi predavanja 7%. U slučaju nepoloženog jednog kolokvija, student ima mogućnost popravka (ponavljanja) kolokvija dva puta. Ako u ta dva dodatna pokušaja ne uspije položiti kolokvij, ispada iz bolonjskog sustava kolokvija te polaže klasičan ispit cijelog gradiva. Studenti koji nisu u sustavu kolokvija polažu kompletno gradivo kolegija odjednom. Raspon ocjena: 0-50% nedovoljan 50-62,5% dovoljan 62,5-75% dobar 75-87,5% vrlodobar 87,5-100% izvrstan (odličan).
autonomus learning (AL)
  1. testovi i kolokviji, konzultacije, samostalni rad u laboratoriju i samostalno učenje

Ulica Vjekoslava Klaića 7, 10000 Zagreb, tel. 01/3764200 fax. 01/3764264