Sadržaj se učitava...
mdi-home Početna mdi-account-multiple Djelatnici mdi-script Studiji mdi-layers Katedre mdi-calendar-clock Raspored sati FOI Nastava search apps mdi-login
Programiranje 2
Programming 2
2020/2021
5 ECTSa
Informacijski i poslovni sustavi 1.2 (IPS)
Katedra za teorijske i primijenjene osnove informacijskih znanosti
ZP
2. semestar
Osnovne informacijemdi-information-variant Izvođači nastavemdi-account-group Nastavni plan i programmdi-clipboard-text-outline Model praćenjamdi-human-male-board Ispitni rokovimdi-clipboard-check-outline Rasporedmdi-calendar-clock Konzultacijemdi-account-voice
Izvođenje kolegija
Studij Studijski program Semestar Obavezan
Informacijski i poslovni sustavi 1.2 (IPS) 2 obavezan
Cilj kolegija
- koncepti i napredne tehnike objektno-orijentiranog programiranja (OOP) - primjena koncepata OOP - usvajanje naprednih tehnika OOP
Preduvjeti
Norma kolegija
Predavanja
30 sati
Vježbe u praktikumu
30 sati
Nastavnik Uloga na kolegiju Oblik nastave Tjedana Sati Grupa
Konecki Mladen Nositelj Predavanja
Vježbe u praktikumu
15
15
2
2
1
7
Radošević Danijel Nositelj Predavanja
Vježbe u praktikumu
15
15
2
2
1
7
Sadržaj predavanja
  • Uvodno predavanje: logički razvoj programa (1*2 sata)
    Razvoj programa uz korištenje kontrolnih točaka na kojima se program verificira sintaksno i logički. Tehnika pisanja programa na način da on bude provjerljiv unutar 10 novih programskih redaka. Programiranje uz pomoć sučelja %22Verifikator%22.
  • Implementacija i primjena dinamičkih struktura podataka u programiranju (3*2 sata)
    Dinamičke strukture podataka i instrumenti njihove implementacije u C++. Implementacija vezane liste: kreiranje, dodavanje elemenata, pretraživanje, sortiranje, brisanje elemenata, dealokacija liste. Primjena vezane liste unutar programa u C++. Implementacija binarnog stabla: kreiranje, dodavanje elemenata, pretraživanje, brisanje elemenata, dealokacija stabla. Rekurzivne funkcije. Biblioteke. Primjer: biblioteka funkcija za mjerenje vremena.
  • Rad s datotekama (2*2 sata)
    Datoteke s fiksnom veličinom zapisa: sekvencijalne, relativne i indeksne. Rad s datotečnim pokazivačem. Primjer: program predložak za rad s datotekama u C++. Pretraživanje indeksa: slijedno i binarno. Analiza brzine pretraživanja kod sekvencijalnih, relativnih i indeksnih datoteka. Primjer u C++: telefonski imenik. Primjer u C++: kopiranje podataka između datoteka i vezanih lista, te datoteka i polja.
  • Objektni pristup (5*2 sata)
    Koncepti objektnog programiranja. Usporedba sa strukturnim pristupom. Primjer: biblioteka klasa za mjerenje vremena u odnosu na biblioteku funkcija za mjerenje vremena. Nasljeđivanje, tipovi nasljeđivanja, višestruko nasljeđivanje, virtualne metode i polimorfizam, prijatelj klase. Apstraktne klase i čiste virtualne metode. Primjer polimorfizma: vezana lista s heterogenim elementima. Primjer u C++: registar vozila. Primjer objektno-orijentiranog razvoja programa uz implementaciju objektnog mehanizma za upravljanje indeks-sekvencijalnim datotekama. Primjer u C++: prijave studenata.
  • Predlošci funkcija i klasa. (1*2 sata)
    Primjer u C++: implementacija vezanih listi uz pomoć predložaka klasa. Standardna biblioteka predložaka (STL). Implementacija vezane liste, stoga i asocijativne mape pomoću STL.
  • Napredne tehnike programiranja (2*2 sata)
    Algoritmi temeljeni na rekurziji. Primjeri u C++: pronalaženje najkraćeg puta, popunjavanje zatvorenog poligona, pretraživanje binarnog stabla. Primjer u C++: upotreba binarnog stabla kao pomoćne strukture za sortiranje. Sortiranje postupkom Heapsort. Primjeri implementacije hrpe, stoga i redova čekanja u C++. Upravljanje iznimkama pomoću strukture try-catch.
  • Modeliranje kao osnova programiranja (1*2 sata)
    Model podataka objekti-veze-svojstva i njegova implementacija uz pomoć objektnog modela. Primjena UML dijagrama u razradi objektnog modela programa (dijagram klasa, dijagram komunikacije). Implementacija modela podataka objekti-veze-svojstva uz pomoć objektnog modela.
Sadržaj seminara/vježbi
Ishodi učenja kolegija
  • Izgraditi vlastite biblioteke potprograma s često korištenim potprogramima te ih po potrebi uključivati u programe.
  • Osmisliti hijerarhiju klasa podataka i nasljeđivanje i prikazati model dijagramom klasa podataka.
  • Formulirati privatnost podataka u klasama podataka i prikazati model dijagramom klasa podataka.
  • Formulirati metode koje se odnose na zadanu klasu podataka te ih opisati dijagramom klasa podataka i aktivnosti.
  • Opisati temeljne koncepte testiranja programskog rješenja.
  • Otkriti logičke pogreške u zadanom programskom rješenju korištenjem programskog alata (eng. debugging).
  • Razviti rekurzivno rješenje zadanog programskog problema i izvesti ga u odabranom imperativnom programskom jeziku
  • Odabrati testne primjere ulaznih podataka ta testiranje zadanog programa za uobičajene i rubne dozvoljene instance zadanog problema
  • Modelirati indeksne datoteke za podatke prema potrebama pretraživanja podataka i njihovoj količini te implementirati rješenje u zadanom imperativnom programskom jeziku
  • Osmisliti implementaciju izrađenog objektnog modela korištenjem koncepata nasljeđivanja, enkapsulacije, polimorfizma i apstrakcije u zadanom programskom jeziku
Ishodi učenja programa
  • razumjeti stanje i trendove razvoja suvremenih informacijskih i komunikacijskih tehnologija (ICT), razumjeti njihov utjecaj na pojedinca, organizaciju i društvo te procijeniti njihovu primjenjivost u zadanom kontekstu
  • razumjeti i primijeniti ključne aspekte informacijske tehnologije (programiranje, algoritmi, strukture podataka, baze podataka i znanja
  • razumjeti i primijeniti suvremene tehničke koncepte i prakse u informacijskim tehnologijama (arhitektura računala, operacijski sustavi, mreže računala)
  • razumjeti i primijeniti matematičke metode, modele i tehnike primjerene rješavanju problema iz područja informacijskih i poslovnih sustava
  • razumjeti bitne čimbenike koji utječu na poslovanje organizacije i pojedinaca te primijeniti osnovne metode i koncepte planiranja, upravljanja i obračuna poslovanja
  • analizirati stanje, identificirati prilike i definirati probleme s kojima se susreću organizacije i pojedinci u primjeni ICT, te formulirati rješenja uz primjenu ICT
  • razumjeti osnovna vertikalna područja primjene ICT (industrija, zdravstvo, promet, turizam, država i sl.), te horizontalne aplikacije (uredski sustavi, DSS, CRM, ERP, DMS i sl.)
  • razumjeti i primijeniti suvremene metodološke pristupe razvoja organizacijskih i informacijskih sustava, te oblikovanja organizacije i organizacijske strukture
  • razumjeti suvremene organizacijske koncepte i upravljati organizacijskom kulturom
  • modelirati poslovne procese i podatke u organizacijama i primijeniti modele u razvoju informacijskih i poslovnih sustava
  • razumjeti i primijeniti metode, tehnike razvoja informacijskih i programskih sustava u suvremenim razvojnim okolinama
  • razumjeti i primijeniti procese, metode i tehnologije upravljanja IT uslugama i resursima te podrške i pružanja različitih vrsta usluga vezanih uz ICT
  • razumjeti i primijeniti etička načela, zakonsku regulativu i norme koje se primjenjuju u struci
  • razumjeti osnovna načela i metode upravljanja organizacijom i uspješno raditi u timu
  • uspješno komunicirati s klijentima, korisnicima i kolegama na verbalan i pisani način uz primjenu odgovarajuće terminologije uključujući i sposobnost komunikacije o struci na stranom jeziku
  • pratiti stručnu literaturu na hrvatskom i stranom jeziku, pripremiti i samostalno održati prezentacije na hrvatskom i stranom jeziku stručnoj i općoj publici, te kritičku evaluaciju prezentirane stručne teme
  • razumjeti i primijeniti vještine učenja potrebne za cjeloživotno učenje i nastavak obrazovanja na diplomskom studiju.
  • razumjeti i primijeniti osnovne principe planiranja i razvoja karijere u struci i vlastitih poduzetničkih poduhvata
Osnovna literatura
  • Radošević, D., Programiranje 2, TIVA Tiskara Varaždin i Fakultet organizacije i informatike, Varaždin, 2007.
  • Motik, B., Šribar, J., Demistificirani C++, 5. dopunjeno izdanje, Element, Zagreb, 2018.
Dopunska literatura
  • Stroustrup, B., Programming: Principles and Practice Using C++, second edition, Addison-Wesley, 2014.
  • Lippman, S. B., Lajoie, J., Moo, E., C++ Primer, 6th edition, Addison-Wesley, 2015.
  • Sawitch,W., Absolute C++,6th edition, Addison-Wesley, 2015.
Slični kolegiji
Redoviti studenti Izvanredni studenti
izvanredni rok
Datum: 29.11.2024.
Vrijeme: 16:00
Opis: Na Fakultetu
izvanredni rok
Datum: 28.04.2025.
Vrijeme: 16:00
Opis: Na Fakultetu
U kalendaru ispod se nalaze konzultacije predmetnih nastavnika, no za detalje o konzultacijama možete provjeriti na profilu pojedinog predmetnog nastavnika.
2024 © Fakultet organizacije i informatike, Centar za razvoj programskih proizvoda