Kroz radionicu predavanje, vježbe i rješavanje zadataka upoznati studente s objektno orijentiranim i generičkim programiranjem
Osnovni koncepti objektno orijentiranog programiranja
Pojam objektno orijentiranog programiranja. Upravljanje memorijom. Razred (klasa). Objekti kao instancije klase. Atributi klase. Podatkovni članovi klase. Funkcijski članovi klase (metode). Enkapsulacija (učahurivanje) objekata. Apstrakcija (apstraktne klase i sučelja). Nasljeđivanje. Dinamički Polimorfizam (višeobličje), refleksija, statičko generiranje koda. Suvremeni interpreteri i kompajleri za objektno orijentirano programiranje.
Objektno orijentirano programiranje i generičke tehnike programiranja u primjeni
Izgradnja generatora. Moduli. Atributi. Struktura (moduli, naredbe, izrazi, definiranje i obrada objekata). Podatak (brojčani tip, znakovni tip, lista, rječnik, n-torka, datoteka). Operatori. Varijable (imena). Numerički izrazi. Znakovni nizovi (immutable sequences): operacije, navodnici, escape sekvence, sirovi znakovni nizovi, indeksiranje i izrezivanje. Konverzije. Izmjena znakovnih nizova. Metode znakovnih nizova. Formatiranje znakovnog niza. Liste: operacije nad listama, konkatenacija, indeksiranje i izrezivanje. Matrice. Izmjena liste. Metode liste. Sortiranje liste. Brisanje liste. Stvaranje liste. Rječnici. Operacije nad rječnicima. Metode rječnika. Izmjena rječnika. Rječnik kao fleksibilna lista. n-Torka: operacije nad n-torkom, neizmjenjivost n-torki. Skupovi: operacije nad skupovima. Datoteke: operacije s datotekama. Pohranjivanje objekata u datoteci. Usporedbe. Instrukcije (vaganje, iteracije). Funkcije (ugrađene funkcije, definiranje funkcije kao objekta, pozivanje funkcija, generiranje funkcija).. Globalnost. Prenošenje argumenata funkciji. Dodjela imena argumentima funkcija. Proizvoljna lista argumenata. Anonimne funkcije. Moduli i prostori imena. Korisnički objekti: razredi (klase) i nasljeđivanje. Stvaranje razreda. Stvaranje primjerka. MetaMetode korisničkih objekata. Nasljeđivanje kod korisničkih objekata. Objektno programiranje u funkciji strojnog učenja.
Metaprogramiranje predložaka
Metaprogramiranje vrijednosti. Metaprogramiranje tipova. Predložni izrazi za implementaciju vektora. Predložni izrazi za implementaciju matrica. Predložni izrazi metoda i klasa.
Projekti primjene generativnog razvoja poslovne aplikacije.
Stvaranje generativnog predloženog izraza koji pokriva jedan proces poslovne aplikacije (Primjer: prebacivanje evidencije poslovnih partnera, bez obzira na polja, iz raznih podatkovnih repozitorija (CSV, XML, JSON) u relacijsku bazu podataka)
1. Analizirati problem za koji je potrebno razviti programsko rješenje upotrebom objektno orijentiranog programiranja i generičkih programskih tehnika
2. Prosuditi kojim se konceptima i disciplinama objektno orijentiranog programiranja treba služiti u rješavanju problema
3. Razviti jednostavno do srednje složeno programsko rješenje upotrebom objektno orijentiranog programiranja i generičkih programskih tehnika