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
2022/2023
5 ECTSa
Informacijski i poslovni sustavi 1.1 (PDS)
Katedra za teorijske i primijenjene osnove informacijskih znanosti
RI
3. 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.1 (PDS) Poslovni sustavi 5 izborni
Informacijski i poslovni sustavi 1.1 (PDS) Poslovni sustavi 3 izborni
Informacijski i poslovni sustavi 1.1 (PDS) Informacijski sustavi 3 obavezan
Cilj kolegija
Kolegij se nastavlja na Programiranje I s kojim predstavlja cjelinu. Po završetku, studenti trebaju biti sposobni oblikovati, kodirati, testirati, ispravljati i dokumentirati programska, prije svega objektno orijentirana rješenja problema algoritamskog tipa. Ciljna razina složenosti programa jesu programi koji rade s više datoteka i više klasa
Preduvjeti
Norma kolegija
Predavanja
30 sati
Vježbe u praktikumu
30 sati
Nastavnik Uloga na kolegiju Oblik nastave Tjedana Sati Grupa
Radošević Danijel Nositelj Seminar 8 1 1
Konecki Mladen Suradnik Seminar 7 1 1
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 s funkcijama za mjerenje vremena.
  • Rad s datotekama (3*2 sata)
    Datoteke s fiksnom veličinom sloga: 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 (3*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, virtualni funkcijski članovi i polimorfizam, prijatelj klase.Apstraktne klase i čiste virtualne funkcije.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: prijave studenata.
  • Napredne tehnike programiranja (2*2 sata)
    Algoritmi temeljeni na rekurziji. Primjeri u C++: pronalaženje najkraćeg puta, pretraživanje binarnog stabla. Predlošci funkcija i klasa. Primjer u C++: implementacija vezanih listi uz pomoć predložaka klasa. Primjer u C++: upotreba binarnog stabla kao pomoćne strukture za sortiranje. Repovi čekanja, hrpa, stog. Primjeri implementacije u C++.
  • Metodologije razvitka programa (1*2 sata)
    Postupci razvoja programa i usporedbe prema standardu IEEE 1058.1: svrha, definicije pojmova, odgovornosti i uloge, voditelj projekta, osiguranje kvalitete, opis postupka, općenito. Faze razvoja programa, testiranje (potvrda i ovjera programskog proizvoda), promjene u razvoju programa, dokumentacija.
  • Modeliranje kao osnova programiranja (2*2 sata)
    Modeliranje procesa: dijagram strukture procesa, procesi transformacijske strukture, procesi transakcijske strukture, detaljni opis procesa (dijagrami akcija), pseudojezik i strukturirani prirodni jezik, stabla odlučivanja, tablice odlučivanja, odlučivanje i dijagrami akcija. Primjena UML dijagrama u razradi objektnog modela programa. Implementacija modela podataka objekti-veze-svojstva uz pomoć objektnog modela.
Sadržaj seminara/vježbi
  • Uvodna vježba: korištenje sučelja %22Verifikator%22
    Unos tri programska primjera različite složenosti uz pomoć sučelja %22Verifikator%22.
  • Funkcije i biblioteke
    Izraditi biblioteku funkcija i uključiti je u program.
  • Vezana lista
    Kreiranje i osnovne operacije nad vezanom listom.
  • Vezana lista (nastavak)
    Dvostruko vezana lista. Sortiranje i dealokacija vezane liste.
  • Datoteke
    Rad s tekstualnim datotekama i datotekama s fiksnom veličinom zapisa.
  • Organizacije datoteka.
    Rad sa sekvencijalnim, relativnim i indeksnim datotekama.
  • Osnovne operacije nad datotekama.
    Sortiranje datoteka. Pretraživanje datoteka različitih organizacija uz mjerenje performansi.
  • Objektno-orijentirano programiranje
    Klasa, objekt, specifikatori pristupa, princip enkapsulacije, vanjski i unutarnji pristup članovima klasa, pokazivač this, princip skrivanja podataka
  • Objektno-orijentirano programiranje (2)
    Konstruktor i destruktor, prijatelj klase, nasljeđivanje, tipovi nasljeđivanja, zaštićeni pristup članovima klasa, višestruko nasljeđivanje, virtualne metode i polimorfizam, apstraktne klase.
  • Objektno-orijentirano programiranje (3)
    Odnosi među klasama: sadržavanje, korištenje, ugniježđena klasa. Implementacija ER modela podataka pomoću objektnog modela.
  • Napredne tehnike programiranja (1)
    Generičko programiranje. Predlošci funkcija i klasa. Standardna biblioteka predložaka (STL).
  • Napredne tehnike programiranja (2)
    Rukovanje iznimkama. Upotreba binarnog stabla za indeksiranje datoteke. Rekurzivni algoritmi.
  • Red, hrpa i stog.
    Implementacija reda, hrpe, i stoga u C++.
Ishodi učenja kolegija
  • steći potrebna predznanja za kolegije: Algoritmi,Baze podataka I,Operacijski sustavi I,Zemljopisni informacijski sustavi
  • biti sposobni izraditi objektno-orijentirane programske aplikacije koje uključuju: više klasa,rad s osnovnim statičkim i dinamičkim strukturama podataka, uključujući vezane liste, binarna stabla, različite organizacije datoteka, primjenu naprednih algoritama
  • poznavati osnovne koncepte objektno-orijentiranog programiranja, u prvom redu enkapsulacija, skrivanje podataka, nasljeđivanje, polimorfizam, te ih implementirati u programskom jeziku C++
  • dobiti uvod u napredne tehnike programiranja i objektno modeliranje tehnikom UML
  • primjenjivati osnovne koncepte objektno-orijentiranog programiranja, u prvom redu enkapsulaciju, skrivanje podataka, nasljeđivanje i polimorfizam unutar programa u programskom jeziku C++
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
  • poznavati ključne aspekte informacijske tehnologije
  • identificirati i razumjeti bitne čimbenike koji utječu na poslovanje organizacije i pojedinaca te primijeniti osnovne metode i koncepte planiranja, upravljanja i obračuna poslovanja
  • prepoznati 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 metode, tehnike razvoja informacijskih i programskih sustava u suvremenim razvojnim okolinama
  • razumjeti procese, metode i tehnologije upravljanja IT uslugama i resursima te podrške i pružanja različitih vrsta usluga vezanih uz ICT
  • identificirati ključne podatke i informacije za donošenje racionalnih poslovnih odluka
  • analizirati i vrednovati rezultat poslovanja, te predložiti unapređenje poslovnog sustava.
  • PROBAnje OPISivanja....
Osnovna literatura
  • Radošević, D. Programiranje 2. TIVA,Fakultet organizacije i informatike, Varaždin, 2007.
  • Motik, B., Šribar, J., Demistificirani C++. 2. izd. Element, Zagreb, 2001.
Dopunska literatura
  • Lippman, S. B. Inside the C++ Object Model. Addison-Wesley, Reading, 1996.
  • Stroustrup, B. Programming : Principles and Practice Using C++. Addison-Wesley, Upper Saddle River, 2009.
  • Savitch,W. Absolute C++. 4th ed. Addison-Wesley, Boston, 2009.
Slični kolegiji
  • Kolegiji sličnog sadržaja i naziva izvode se na nekoliko visokoškolskih institucija u Hrvatskoj (npr. FER, FESB, Filozofski fakultet u Rijeci), te u susjednim državama (npr. na Univerzi u Mariboru i Ljubljani, Univerzitetu u Beogradu itd
Redoviti studenti Izvanredni studenti
izvanredni rok
Datum: 14.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