FOI nastava
FOI logo

Lista kolegija iz:

ak.god:
2014/2015
semestar:
3. semestar

2014/2015

5ECTSa

Preddiplomski

Informacijski/Poslovni sustavi v1.1

Program Obavezan
Informacijski sustavi IS Da
Poslovni sustavi PS Ne
3. semestar
2. nastavna godina

Programiranje 2 npp:61771

Engleski naziv

Programming 2

Katedra

Katedra za teorijske i primijenjene osnove informacijskih znanosti

Kategorija ("boja")

RI

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

Nastava

Predavanje
30sati
Laboratorijske vježbe
30sati

Ishodi učenja predmeta

  • 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 algorit
  • dobiti uvod u napredne tehnike programiranja i objektno modeliranje tehnikom UML
  • poznavati osnovne koncepte objektno-orijentiranog programiranja, u prvom redu enkapsulacija, skrivanje podataka, nasljeđivanje, polimorfizam, te ih implementirati u programskom jeziku C++
  • primjenjivati osnovne koncepte objektno-orijentiranog programiranja, u prvom redu enkapsulaciju, skrivanje podataka, nasljeđivanje i polimorfizam unutar programa u programskom jeziku C++
  • steći potrebna predznanja za kolegije: Algoritmi,Baze podataka I,Operacijski sustavi I,Zemljopisni informacijski sustavi

Ishodi učenja programa

  • razumjeti i primijeniti ključne aspekte informacijske tehnologije (programiranje, algoritmi, strukture podataka, baze podataka i znanjarazumjeti i primijeniti ključne aspekte informacijske tehnologije (programiranje, algoritmi, strukture podataka, baze podataka i znanja
  • razumjeti i primijeniti metode, tehnike razvoja informacijskih i programskih sustava u suvremenim razvojnim okolinama razumjeti i primijeniti metode, tehnike razvoja informacijskih i programskih sustava u suvremenim razvojnim okolinama

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++.

Alati koji se koriste na predmetu

  • DevC++
    Besplatno razvojno sučelje za razvoj programa u C++ koje se koristi za samostalan rad studenata i na vježbama.
  • Verifikator
    Sučelje za pisanje programa u C++ tehnikom kontrolnih točaka unutar 10 novih programskih redaka. Dostupno na stranicama kolegija Programiranje 2 unutar FOI E-Learning sustava.
  • Context
    Besplatni programerski editor.

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.

Preduvjeti

  • Programiranje 1
    Predmet predstavlja temeljne koncepte programiranja, temeljna znanja rada prevodilaca i interpretatora programskih jezika, metode rješavanja programskih problema te osnove objektnog pristupa

Slični predmeti

  • 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
Nastavnik Oblik nastave Tjedana Sati tjedno Grupa
Konecki Mladen Laboratorijske vježbe 15 2 3
Radošević Danijel Laboratorijske vježbe 15 2 6
Predavanje 15 2 1
Izvanredni rok
Datum: 26.11.2019.
Vrijeme: 16:00
Napomena:
Izvanredni rok
Datum: 27.04.2020.
Vrijeme: 16:00
Napomena:
Predavanje Seminar Auditorne vježbe Laboratorijske vježbe Vježbe (jezici, tzk) Ispit Kolokviji Nadoknade Demonstrature
Copyright © 2015 FOI Varaždin. All Rights Reserved. Sva prava pridržana.
Povratak na vrh