Naziv
Napredno programiranje
Organizacijska jedinica
Odsjek za informacijske i komunikacijske znanosti
ECTS
6
Šifra
170357
Semestri
ljetni
Nastavnici
Satnica
Predavanja
15
Seminar
30
Vježbe u praktikumu
15
Preduvjeti za upis i polaganje kolegija
Za upis kolegija se moraju

Cilj
Ciljevi kolegija su: upoznati studente s naprednim konceptima i paradigmama programiranja; podučiti ih kako uočiti i definirati složene programerske probleme te kako i riješiti primjenom programerske prakse; uvesti studente u objektu orijentiranu paradigmu programiranja; steći vještine u strukturiranju naprednoga programskoga koda i izradi programa primjenom odabranog programskog jezika i usvojene programerske metodologije.
Sadržaj
  1. Naslov: Uvod, Kratak opis: Uvod u napredno programiranje, Problemi i načini rješavanja problema, Priprema razvojnog okruženja
  2. Naslov: Datoteke (I), Kratak opis: Otvaranje i zatvaranje tekstualnih datoteka, Čitanje podataka iz tekstualnih datoteka, Rad s tekstualnim datotekama
  3. Naslov: Datoteke (II), Kratak opis: Zapisivanje podataka u tekstualnim datotekama, Izrada novih tekstualnih datoteka, Pohrana podataka u postojećim tekstualnim datotekama, Standardi za rad s tekstualnim datotekama
  4. Naslov: Funkcije (I), Kratak opis: Definiranje vlastitih funkcija, Pozivanje funkcija, Djelokrug varijabli
  5. Naslov: Funkcije (II), Kratak opis: Argument, Parametar, Zadane vrijednosti, Vraćanje vrijednosti
  6. Naslov: Moduli, Kratak opis: Pozivanje modula, Pristup sadržaju unutar modula, Rad s modulima, Vlastiti moduli, Notacija
  7. Naslov: Nasumičnost, Kratak opis: Nasumičnost, Problem pseudonasumičnosti, Primjena
  8. Naslov: Pogreške i upravljanje izuzecima, Kratak opis: Analiza i uklanjanje pogrešaka, Klase pogrešaka, Rad s izuzecima, Posebni izrazi, Potvrđivanje
  9. Naslov: Napredne funkcionalnosti (I), Kratak opis: Napredne implementirane funkcije
  10. Naslov: Napredne funkcionalnosti (II), Kratak opis: Anonimne funkcije, Sintaktički šećer, Dekoratori, Generatori, Rekurzije
  11. Naslov: Regularni izrazi, Kratak opis: Uvod i motivacija, Jednostavni meta-znakovi, Klase znakova, Složeni meta-znakovi, Grupe i nizovi
  12. Naslov: Objektu orijentirana paradigma (I), Kratak opis: Stupovi objektu orijentiranog programiranja, Klasa, Objekt, Implementacija klase, Implementacija objekta, Svojstva
  13. Naslov: Objektu orijentirana paradigma (II), Kratak opis: Atributi, Parametri, Metode, Inicijalizacija
  14. Naslov: Objektu orijentirana paradigma (III), Kratak opis: Životni vijek objekta, Apstrakcija, Enkapsulacija, Nasljeđivanje, Pristup podatcima i skrivanje podataka
  15. Naslov: Objektu orijentirana paradigma (IV), Kratak opis: Polimorfizam, Nadjačavanje, Preopterećenje, Ostali koncepti objektu orijentiranog programiranja

Ishodi učenja
  1. primijeniti napredne koncepte i paradigme programiranja
  2. primijeniti naprednu metodologiju i odabrati odgovarajuće napredne metode u postupku rješavanja programerskih problema
  3. pripremiti potrebne resurse za rješavanje naprednih programerskih problema
  4. kreirati strukturu programa
  5. izraditi specifične programe
  6. obrazložiti primjenu napredne programerske metodologije i razvojnog okruženja
Metode podučavanja
klasična predavanja (ex-cathedra); tumačenje pomoću primjera na računalu; aktivan rad na računalu; kombinirano
Metode ocjenjivanja
Praćenje rada i aktivnosti studenata tijekom semestra: pohađanje predavanja, seminara i vježbi; samostalni zadatci. Završni ispit: pisani dio ispita; usmeni dio ispita

Obavezna literatura
  1. Radna skripta nastavnika
  2. Bilješke s predavanja i radni materijali
Dopunska literatura
  1. Skripta nastavnika s poveznicama
  2. Službena Python dokumentacija
  3. Charles Severance. Python for Everybody: Exploring Data in Python 3. 2016

Obavezan predmet na studijima
Stari studiji
  1. Informacijske znanosti, sveučilišni prijediplomski jednopredmetni studij, 4. semestar
Izborni predmet na studijima
Stari studiji
  1. Informacijske znanosti, sveučilišni prijediplomski dvopredmetni studij, 4. semestar