Naziv
Napredno programiranje
Organizacijska jedinica
Odsjek za informacijske i komunikacijske znanosti
ECTS
6
Šifra
170357
Semestri
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