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
Logičko programiranje
Logical Programming
2019/2020
6 ECTSa
Baze podataka i baze znanja 1.2 (BPBZ)
Organizacija poslovnih sustava 1.2 (OPS)
Informatika u obrazovanju 1.2 (IUO)
Informacijsko i programsko inženjerstvo 1.2 (IPI)
Katedra za teorijske i primijenjene osnove informacijskih znanosti
RI
1. 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
Cilj kolegija
Cilj kolegija Logičko programiranje je upoznavanje studenata s idejom logičkog (i općenito deklarativnog) programiranja, njegovim teorijskim osnovama, logičkim programskim jezicima (na prvom mjestu s jezikom Prolog) i specifičnim alatima. Logičko programiranje zauzima sve važnije mjesto u cjelokupnom korpusu programiranja (bioinformatika - dešifriranje genetskog koda; sustavi planiranja – problem rasporeda i slični problemi, semantički Web – razvoj ontologija, sustavi poslovnih pravila, reverzno programsko inženjerstvo, itd.).
Preduvjeti
Kolegij nema definirane preduvjete
Norma kolegija
Predavanja
30 sati
Vježbe u praktikumu
30 sati
Nastavnik Uloga na kolegiju Oblik nastave Tjedana Sati Grupa
Schatten Markus Nositelj Vježbe u praktikumu 8 2 1
Čubrilo Mirko Nositelj Predavanja 10 3 1
Lovrenčić Sandra Izvođač Seminar 7 2 1
Sadržaj predavanja
  • Osnovne paradigme programiranja i njihov međuodnos
    Paradigme proceduralnog, objektno-orijentiranog i logičkog programiranja i njihov međuodnos. Područja primjene logičkog programiranja.
  • Pregled svojstava jezika Prolog
    Primjer programa u jeziku Prolog (definiranje obiteljskih veza). Proširenje primjera pravilima. Definicija rekurzivnih pravila. Procedura računanja odgovora na upite (rukovanje varijablama i unifikacija, vraćanje unatrag i rez). Uloga slijeda pravila iz definicije istog predikata.
  • %22Naredbe%22 jezika Prolog
    Ugrađeni predikati kao %22naredbe%22 Prologa. Osnovne klase ugrađenih predikata. Korisnički definirani predikati.
  • Liste i predikati za rad s listama
    Definicija liste i njezinih strukturnih dijelova. Predikati za rad s listama.
  • Operatori i predikati za rad s operatorima
    Ugrađeni aritmetički predikati. Tipovi operatora (infiksni, prefiksni i postfiksni). Prioritet argumenata i shema deklariranja korisnički definiranih operatora.
  • Detaljna %22mehanika%22 rekurzije i reza
    Potreba za generiranjem višestrukih odgovora na upite. Predikat %22rez%22 i načini njegove upotrebe (indikacija izbora valjanog pravila, iznuđivanje (u sprezi s predikatom %22neuspjeh%22) višestrukih odgovora na upit (ciljni predikat) programa i iznuđivanje samo jednog odgovora. Korištenje kombinacije predikata %22rez%22-%22neuspjeh%22. Potencijalni problemi s predikatom %22rez%22.
  • Rukovanje ulazom i izlazom podataka
    Predikati za čitanje i pisanje terma Prologa. Predikati za rad s vanjskim datotekama..
  • Interne baze podataka
    Organizacija internih baza podataka. Ugrađeni predikati za rad s internim bazama podataka (assert, asserta, assertz, retract, retractall).
  • Vanjske baze podataka
    Organizacija vanjskih baza podataka kao B+ stabala. Terminologija (lanci, selektori, referentni indeksi terma, ključevi). Ugrađeni predikati za rad s vanjskom bazom podataka kao cjelinom. Predikati za rad s lancima. Predikati za manipuliranje terminima.
  • Rukovanje greškama i trasiranje programa
    Konceptualno razlikovanje grešaka, iznimaka i iznuđenog prekida rada programa. Predikati za upravljanje programiranim izlazom iz programa. Predikati za trasiranje pojedinačnih predikata. Predikati za izlaz iz programa u nuždi.
  • Specifičnosti jezika XSB Prolog
    Pokretanje programa i izlaz iz programa. Sustav programskih direktorija. Tipovi i ekstenzije internih (programom generiranih) datoteka. Sustav modula i globalna struktura programa. Standardni predikati jezika. Mehanizmi redefiniranja predikata. Direktiva za pozivanje HiLoga.
  • Tabeliranje predikata
    Problemi sa standardnom rezolucijom. SLG rezolucija. Direktive za tabeliranje predikata. Primjena tabeliranja predikata.
  • Programski paket Flora-2
    Programski paket Flora-2 kao implementacija F-logike. Osnove sintakse (objekti, klase, metode, upiti). Direktive za rad s paketom Flora-2 u kontekstu XSB prologa. Nasljeđivanje. Primjeri primjene paketa Flora-2.
  • CHR
    CHR (Constraint Handling Rules). CHR kao sustav pravila (podjezik jezika XSB Prolog) za rukovanje ograničenjima. Sintaksa i semantika CHR-a. CHR u programima u XSB Prologu. Primjeri primjene.
Sadržaj seminara/vježbi
  • Vježbe
    Kako su programski jezici u stalnim mijenama, izbor adekvatnog logičkog programskog jezika za potrebe vježbi prilično je otežan. Izbor je pao na jezik XSB Prolog, za koji se može reći da predstavlja novu paradigmu logičkog programiranja i ima dobre izglede za daljnji razvoj. Jezgra jezika XSB Prolog poštuje trenutačni ISO standard jezika, a pored toga ima mehanizam tabeliranja parcijalnih odgovora na upit postavljen ciljem programa, u sebi sadrži i programski jezik HiLog, koji ima sintaksu drugog reda (omogućuje kvantificiranje bilo kojih terma, uključujući i predikate, te time omogućuje izravno metaprogramiranje) i semantiku prvog reda, koji sadrži implementaciju F-logike (paket Flora-2), kao i ugrađeni podjezik CHR za rukovanje ograničenjima. Nadalje, programski jezik XSB nije opterećen preobuhvatnim razvojnim okruženjem (alatima za razvoj grafičkih sučelja, itd.), ali se s njima (i drugim programskim jezicima) može vrlo kvalitetno povezati. Tijekom vježbi studenti će ovladati jezgrom jezika XSB Prolog, kao i pripadajućim proširenjima (Flora-2 i CHR), i osposobiti se za samostalno kvalitetno programiranje.
  • Seminari
    U sklopu seminara studenti će napraviti i prezentirati vlastiti projekt primjene logičkog programiranja na rješavanje određenog problema.
Ishodi učenja kolegija
  • Razumjeti i znati primijeniti principe kreiranja baza znanja i pravila za zaključivanje nad njima korištenjem logičkog programiranja
  • Razumjeti teorijske osnove logičkog programiranja
  • Usvojiti vještine brzog modeliranja i prototipiranja sustava deklarativnim programskim jezicima i alatima
  • Znati osnove jezika HiLog, F-logike i Constraint Handling Rules (CHR) sustava pravila za rukovanje ograničanjima
  • Znati primijeniti logičko programiranje prilikom rješavanja različitih klasa problema (rad s listama, rekurzije, inteligentni agenti, gramatike, integracija heterogenih izvora podataka itd.)
  • Znati razviti bazu znanja i pravila u jezgrenom jeziku logičkog programiranja (Prolog)
Ishodi učenja programa
  • Primijeniti etička načela, zakonsku regulativu i norme koje se koriste u struci
  • Analizirati i procijeniti uvjete za primjenu suvremenih informacijskih i komunikacijskih tehnologija (ICT), savjetovati druge u primjeni iste te u zadanom kontekstu odrediti utjecaj primjene na pojedinca, organizaciju i društvo.
  • Modeliranje problema iz područja informacijskih i poslovnih sustava korištenjem matematičkih metoda, metoda razvoja informacijskih sustava i koncepata planiranja, upravljanja i poslovanja
  • Primijeniti, utvrditi uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz rješavanje problema iz područja informacijskih i poslovnih sustava
  • Analizirati i ocijeniti učinkovitost uvođenja i korištenja ICT (programskog rješenja i pripadajuće opreme) za konkretne problemske domene informacijskih i poslovnih sustava
  • Procijeniti i preporučiti programska rješenja za konkretne problemske domene informacijskih i poslovnih sustava
  • Voditi interdisciplinarni tim i raditi u takvom timu
  • Predstaviti i popularizirati suvremena trendove u informatici u stručnim i laičkim krugovima
  • Unaprijediti metode komuniciranja i komunikaciju 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
  • Unaprijediti i primijeniti metode stručnog rada pronalaženjem i vrednovanjem suvremenih izvora znanja
  • Valorizirati stručnu literaturu na hrvatskom i stranom jeziku
  • Razviti vlastite planove i planove drugih članova tima u upravljenju karijerom u struci i vlastitih poduzetničkih poduhvata s obzirom na potrebe poslovnog okruženja
  • Planirati proces cjeloživotnog osobnog i profesionalnog razvoja i definirati optimalne individualne strategije učenja
  • Projektirati, planirati, izraditi i uvesti svaki poslovni složeni informacijski sustav i/ili voditi projektni tim u slučaju kada na tim poslovima mora biti uključen veći broj stručnjaka
  • Razumjeti poslovni sustav organizacije i u suradnji s poslovnim stručnjacima optimalizirati njezine poslovne procese te izraditi strateški plan primjene ICT-a
  • Oblikovati softversku arhitekturu složenog informacijskog sustava, odabrati i postaviti odgovarajuću tehnološku platformu i programirati najsloženije dijelove složenog sustava
  • Primijeniti metode planiranja i upravljanja poslovanjem uz pomoć ICT u osnovnim vertikalnim područjima primjene ICT
  • Utvrditi uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz ključne aspekte primjene i razvoja informacijske tehnologije (programiranje, algoritmi, strukture podataka, baze podataka i znanja)
  • Utvrditi uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz suvremene tehničke koncepte i prakse u informacijskim tehnologijama (arhitektura računala, operacijski sustavi, mreže računala)
  • Utvrditi uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz metode i koncepte planiranja, upravljanja organizacijom i obračuna poslovanja
  • Analizirati uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke vezane uz metodološke pristupe razvoju organizacijskih i informacijskih sustava
  • Analizirati uvjete za primjenu, savjetovati i u zadanom kontekstu donositi odluke za primjenu koncepata elektroničkog poslovanja podržanih odgovarajućim arhitekturama informacijskih sustava (klasične ili distribuirane)
  • Osmisliti projekt učinkovitog unapređenja poslovne tehnologije poslovnog sustava uz korištenje suvremenih ICT te realizirati takav projekt vlastitim razvojem ili izborom prikladnog standardnog softvera
  • Odabrati i primijeniti odgovarajuće sigurnosne mehanizme pri projektiranju i izgradnji informacijskog sustava
  • Odabrati i primijeniti metode i tehnike razvoja informacijskih i programskih sustava u suvremenim razvojnim okolinama
  • Utvrditi uvjete za primjenu, savjetovati, procijeniti učinak i donositi odluke vezane uz procese, metode i tehnologije upravljanja IT uslugama i resursima te podrške i pružanja različitih vrsta usluga vezanih uz ICT
  • Objasniti stručnoj i općoj publici informatička rješenja za unapređenje poslovne tehnologije
  • Analizirati i valorizirati atribucije (atribute) objekata poslovnog sustava te postaviti formalni model objektnog sustava kao temelj izgradnje informacijskog sustava
  • Izgraditi informacijski sustav temeljen distribuiranim komponentama kao i na autonomnim i međusobno kompetitivnim izvorima znanja i razriješiti konflikte koji se javljaju među izvorima znanja
  • Primijeniti metode i tehnike izgradnje digitalnih arhiva i dugotrajnog pohranjivanja podataka
  • Primijeniti metode i tehnike pretraživanja i klasifikacije informacija
  • Prepoznati kritične procese i klase podataka poslovnog sustava, izgraditi formalni model procesa i klasa te ga optimizirati i ponuditi prijedloge poboljšanja poslovnog sustava
  • Modelirati poslovna pravila, poslovne podatke kao i pravila za izvođenje transakcijskih podataka koji nisu eksplicitno zadani
  • Modelirati i izgraditi sustav izvođenja analitičkih podataka iz transakcijskih metodama rudarenja i drugim metodama, te izgradnje skladišta podataka u koja se ti podaci pohranjuju
  • Modelirati i izgraditi sustave poslovne inteligencije temeljene na skladištima podataka, kao i njihovo pretraživanje korištenjem metoda višedimenzionalnih kocaka podataka (OLAP)
  • Izgraditi računalni sustav za pohranu podataka i znanja korištenjem suvremenih alata za izradu baza podataka, baza znanja i semantici podataka
  • Izgraditi i optimizirati bazu podataka i bazu znanja primjenom odgovarajućih strategija organizacije podataka i sigurnosti informacijskog sustava
  • Modelirati raspodjelu podataka prema mjestu korištenja podataka, izgraditi sustav replikacije baze podataka i izgraditi distribuiranu bazu podataka
  • Modelirati i izgraditi sustave temeljene na znanju, kao što su višeagentni sustavi, deduktivni sustavi (uključujući i ekspertne sustave), semantički Web sustavi, neuralne mreže itd.
  • Procijeniti potrebe za strategijskim i upravljačkim promjenama u organizacijama
  • Primijeniti metode upravljanja životnim ciklusom informacijskog sustava organizacije
  • Primijeniti metode korporacijskog upravljanja i strategijskog menadžmenta uz potporu informacijske tehnologije
  • Razviti i validirati sustav mjerenja organizacijske učinkovitosti uz primjenu odgovarajućih programskih alata
  • Analizirati tržište primjenom informacijsko-komunikacijskih tehnologija
  • Analizirati poslovne procese i preporučiti primjenu odgovarajuće informacijske i komunikacijske tehnologije za unapređenje poslovnih procesa
  • Organizirati sustav vođenja u javnoj upravi uz primjenu informacijske tehnologije
  • Razviti elemente kontinuuma strategijskog upravljanja: misiju, organizacijske vrijednosti, viziju, strateške ciljeve
  • Analizirati potrebu za e-poslovanjem i primijeniti koncepte e-poslovanja
  • Procijeniti spremnost organizacije za uvođenje suvremenih ERP sustava i definirati projekt uvođenja istih
  • Razumjeti povijesni aspekt edukacijskih sustava, društvenu uvjetovanost odgojno-obrazovne prakse i diferenciranost suvremenih odgojno-obrazovnih koncepcija
  • Poznavati organizaciju sustava odgoja i obrazovanja te ustroj odgojno-obrazovnog procesa na svim razinama
  • Razumjeti odrednice djelovanja i ponašanja ljudske jedinke i grupnu dinamiku (razrednog odjeljenja, timova, kolektiva …)
  • Organizirati nastavni proces
  • Artikulirati nastavni sat primjenjujući primjerene nastavne metode i oblike rada, didaktičke principe i nastavna sredstva
  • Voditi pedagošku dokumentaciju, ispitivanje,ocjenjivanje i vrednovanje u skladu s zakonskom regulativom i kriterijima osobne i profesionalne etičnosti
  • Poučavati učenike primjeni različitih oblika učenja, samovrednovanju i samoreguliranom učenju
  • Upravljati razrednim odjeljenjem, i surađivati s roditeljima i drugim strukturama unutar i izvan odgojno-obrazovne institucije
  • Analizirati građu računala, suvremene računalne arhitekture te primijeniti ta znanja u dizajnu obrazovnog informacijskog sustava, kao i u nastavi
  • Primijeniti principe proceduralnog programiranja, izgradnje struktura podataka i algoritama
  • Interpretirati povijest informatike i računarstva
  • Analizirati i usporediti računalne Web i desktop alate za prezentaciju informacija i primijeniti ih u nastavi
  • Formulirati problem iz realnog svijeta u smislu problemskog zadatka u informatici te ga znati riješiti i rješenje evaluirati
  • Analizirati, preporučiti, implementirati i koristiti sustave za e-učenje u skladu s metodičkim i pedagoškim principima
  • Izvoditi proces poučavanja u multikulturalnim i multietničkim sredinama i drugim posebnim uvjetima (treća dob, centri izvrsnosti …)
  • Osmisliti postupke za upravljanje procesom učenja i poučavanja u rizičnim situacijama
  • Predstavljati informatička znanja i vještine kao učinkovite instrumente za podupiranje integracijskih procesa
  • Predstavljati nastavnicima mogućnosti korištenja informatike u odgojno-obrazovnom procesu
  • Preispitivati, strukturirati i restrukturirati svoja osobna i profesionalna iskustva (razvijati refleksivnu praksu)
  • Koristiti stečena znanja o vizualnom oblikovanju i sadržajima u ostvarivanju kreativnih vizualnih projekata pri radu s računalom.
  • Modelirati postojeće vizualne sadržaje za potrebe konkretnih osobnih (ili učeničkih) računalnih radova (web dizajn, grafički dizajn, dizajn multimedija,…).
  • Koristiti vještine učenja potrebne za cjeloživotno učenje i nastavak obrazovanja na diplomskom studiju.
  • Upoznati Nacionalni okvirni kurikulum. Upoznati metodologiju izradbe školskog i nastavnog kurikuluma. Upoznati primjenu nastavnog kurikuluma u praksi.
Osnovna literatura
  • Merrit, D. Adventure in Prolog: Logic Programming Tutorial. Amzi! Inc., 1996.
  • Sagonas, K. et al. The XSB System Version 3.2. Volume I: Programmer's Manual. 2009.
Dopunska literatura
  • Sagonas, K. et al. The XSB System Version 2.7, Volume II: Libraries, Interfaces and Packages. 2004.
  • Canfora, G.; Cimitile, A.; de Carlini, U. A Logic-Based Approach to Reverse Engineering Tools Production, IEEE Tranasctions on Software Engineering. Vol. 18, No. 12, pp. 1053 – 1064., 1992.
  • PDC Prolog version 3.20: User's Guide, Prolog Development Center, Copenhagen, 1990.
  • Hazlewood, C.: http://www.math.swt.edu/~carol/teaching/courses/5318/lectures/comp-para.pdf
  • Nastavna cjelina 1. Hazlewood, C.: http://www.math.swt.edu/~carol/teaching/courses/5318/lectures/comp-para.pdf
  • Nastavna cjelina 2-7. Clocksin, W. F., Mellish, C. S.: Programming in Prolog: Using the ISO Standard (fifth edition), Springer-Verlag, 2003.
  • Nastavna cjelina 8-10. Merrit, D. Adventure in Prolog: Logic Programming Tutorial, Amzi! Inc., 1996. Clocksin, W. F.; Mellish, C. S. Programming in Prolog: Using the ISO Standard (fifth edition). Springer-Verlag, 2003.
  • Nastavna cjelina 11-14. Sagonas, K. and all: The XSB System Version 2.7, Volume I: Programmer's Manual, 2004. Sagonas, K. and all: The XSB System Version 2.7, Volume II: Libraries, Interfaces and Packages, 2004. Warren, D. S.: Programming in Tabled Prolog: (very) Draft, SUNY at Stony Brook, 1999. Fruhwirth, T.: Theory and practice of constraint handling rules. Special Issue on Constraint Logic Programming (P. Stuckey and K. Marriot, Eds.), Journal of Logic Programming, 37(1-3):95-- 138, 1998.
Slični kolegiji
  • University of Sussex (Department of Informatics) http://www.sussex.ac.uk/informatics/G5008.html
  • City University of London (School of Informatics) http://www.city.ac.uk/pgrad/00000894.htm
  • University of Kentucky (College of Engineering) http://cs.engr.uky.edu/CS_Assessment/Course_Descriptions/HTML/CS%20555.htm
  • University of Piraeus (Department of Informatics) http://www.unipi.gr/eng_site/akad_tmhm/plhorf/plhorf_ps_math7.html
  • Imperial College London http://www.doc.ic.ac.uk/teaching/coursedetails/V141
  • The University of Birmingham http://www.cs.bham.ac.uk/~pjh/prolog_course/sem223_se.html
  • Carnegie Mellon University http://www-2.cs.cmu.edu/~fp/courses/95-lp.html
  • University of Leicester (Department of Computer Science) http://www.cs.le.ac.uk/Modules/CO-03-04/CO2014.html
Redoviti studenti Izvanredni studenti
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