FOI nastava
FOI logo

Lista kolegija iz:

ak.god:
2019/2020
semestar:
1. semestar

2019/2020

6ECTSa

Diplomski

Diplomski studij informatike v1.2

Program Obavezan
Baze podataka i baze znanja BPBZ Da
Informatika u obrazovanju IO Ne
Informacijsko i programsko inženjerstvo IPI Ne
Organizacija poslovnih sustava OPS Ne
1. semestar
1. nastavna godina

Logičko programiranje npp:93108

Engleski naziv

Logic Programming

Katedra

Katedra za teorijske i primijenjene osnove informacijskih znanosti

Kategorija ("boja")

RI

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

Nastava

Predavanje
30sati
Vježbe (jezici, tzk)
30sati

Ishodi učenja predmeta

  • 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

  • Analizirati i valorizirati atribucije (atribute) objekata poslovnog sustava te postaviti formalni model objektnog sustava kao temelj izgradnje informacijskog sustavaAnalizirati i valorizirati atribucije (atribute) objekata poslovnog sustava te postaviti formalni model objektnog sustava kao temelj izgradnje informacijskog sustava
  • Izgraditi računalni sustav za pohranu podataka i znanja korištenjem suvremenih alata za izradu baza podataka, baza znanja i semantici podatakaIzgraditi računalni sustav za pohranu podataka i znanja korištenjem suvremenih alata za izradu baza podataka, baza znanja i semantici podataka
  • Modeliranje problema iz područja informacijskih i poslovnih sustava korištenjem matematičkih metoda, metoda razvoja informacijskih sustava i koncepata planiranja, upravljanja i poslovanja Modeliranje problema iz područja informacijskih i poslovnih sustava korištenjem matematičkih metoda, metoda razvoja informacijskih sustava i koncepata planiranja, upravljanja i poslovanja
  • 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.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.
  • Modelirati poslovna pravila, poslovne podatke kao i pravila za izvođenje transakcijskih podataka koji nisu eksplicitno zadani Modelirati poslovna pravila, poslovne podatke kao i pravila za izvođenje transakcijskih podataka koji nisu eksplicitno zadani
  • 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 jezikuUnaprijediti 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

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.

Alati koji se koriste na predmetu

  • XSB Prolog

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 predmeti

  • 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
Nastavnik Oblik nastave Tjedana Sati tjedno Grupa
Čubrilo Mirko Predavanje 10 3 1
Lovrenčić Sandra Seminar 7 2 1
Schatten Markus Laboratorijske vježbe 8 2 1
Izvanredni rok
Datum: 27.11.2019.
Vrijeme: 16:00
Napomena:
Izvanredni rok
Datum: 24.04.2020.
Vrijeme: 16:00
Napomena:

Logičko programiranje - Redovni studenti

Studij: Diplomski studij informatike
Akademska godina: 2019/2020

Praćenje rada studenata

Elementi praćenjaBodova
Aktivnost na nastavi10
Kolokviji50
Projekt40
ZBROJ100


Bodovna skala ocjena

OdDoOcjena
0 49 nedovoljan (1)
50 60 dovoljan (2)
61 75 dobar (3)
76 90 vrlo dobar (4)
91 100 odličan (5)



Kolokviji

Naziv / Tjedan 1234567891011121314151617 1. razdoblje
udio (%)
2. razdoblje
udio (%)
3. razdoblje
udio (%)
Trajanje Pismeni Usmeni
Kolokvij 1 + 100.0 60 +
Kolokvij 2 + 20.0 80.0 60 +
Projekt + + + + + 30 + +


Opis elemenata praćenja

Elementi praćenja Bodovi Uvjet Opis Nadoknada
Granica Opis Rok
Prisustvovanje na seminarima 0 0 Uvjet za potpis. Na seminarima se 4 puta nasumično obavlja provjera prisustvovanja. Dozvoljena su 2 izostanka. 3 izostanka Dodatni referat. Javiti se nastavniku nakon objave evidencije prisustvovanja, najkasnije do kraja 12. tjedna. Zadnji dan 16. tedna.
Prisustvovanje na laboratorijskim vježbama 0 0 Uvjet za potpis. Na svim laboratorijskim vježbama provjerava se prisustvovanje. Dozvoljen je 1 izostanak (vježbe se provode kroz 8 tjedana po 2 sata). 2 izostanka Dodatni zadaci. Javiti se nastavniku nakon objave evidencije prisustvovanja, najkasnije do kraja 12. tjedna. Zadnji dan 16. tjedna.
Aktivnost na laboratorijskim vježbama i seminarima 10 0 Studenti mogu sudjelovati u diskusijama na laboratorijskim vježbama i seminarima, prezentirati rješenja pojedinih zadataka i sl., za što ukupno mogu dobiti 5 bodova na seminarima i 5 bodova na vježbama.
1. kolokvij** 25 15 Rješavanje zadataka uz dodatak teoretskih pitanja otvorenog tipa i pitanja koja ispituju razumijevanje.
Prepisivanje je zabranjeno te povlači disciplinsku odgovornost.
Na oba kolokvija ukupno mora biti ostvareno najmanje 15 bodova.
2. kolokvij 25 Rješavanje zadataka uz dodatak teoretskih pitanja otvorenog tipa i pitanja koja ispituju razumijevanje.
Prepisivanje je zabranjeno te povlači disciplinsku odgovornost.
Na oba kolokvija ukupno mora biti ostvareno najmanje 15 bodova.
Projekt 40 10 Uvjet za polaganje ispita na bilo koji način.* Samostalni projekt koji student predlaže najkasnije do početka 7. tjedna. Student treba samostalno izraditi, dokumentirati i obraniti projekt. Pismeni dio projekta treba postaviti na Web ili poslati nastavniku unutar zadanog roka. Projekt se brani tijekom 3. nastavnog razdoblja prema objavljenim terminima uz prezentaciju u nekom alatu. Korištenje tuđeg rješenja i plagiranje je zabranjeno te povlači disciplinsku odgovornost.


* Projekt je potrebno napraviti bez obzira na način polaganja ispita: preko kontinuiranog praćenja ili redovni izlazak na ispit.

** Na kolokvijima ukupno mora biti ostvareno najmanje 15 bodova, a iz projekta 10 kako bi student mogao predmet položiti tijekom godine kroz kontinuirano praćenje.

Logičko programiranje - Izvanredni studenti

Studij: Diplomski studij informatike
Akademska godina: 2019/2020

Studenti mogu položiti predmet na sljedeće načine:

  1. Redovni izlazak na pismeni i usmeni ispit - Model 1;
  2. Izrada i obrana opsežnijeg seminarskog rada na zadanu temu - Model 2;
  3. Sudjelovanje u kontinuiranom praćenju na isti način kao i redoviti studenti – Model 3;
  4. Sudjelovanje u kontinuiranom praćenju kroz e-učenje i samostalni rad - Model 4.


 


Praćenje rada studenata - Model 3

Elementi praćenjaBodova
Aktivnost na nastavi10
Kolokviji50
Projekt40
ZBROJ100


Praćenje rada studenata - Model 4

Elementi praćenjaBodova
Kritički osvrt na članak10
Kolokviji50
Projekt40
ZBROJ100


Bodovna skala ocjena

OdDoOcjena
0 49 nedovoljan (1)
50 60 dovoljan (2)
61 75 dobar (3)
76 90 vrlo dobar (4)
91 100 odličan (5)



Kolokviji

Naziv / Tjedan 1234567891011121314151617 1. razdoblje
udio (%)
2. razdoblje
udio (%)
3. razdoblje
udio (%)
Trajanje Pismeni Usmeni
Kolokvij 1 + 100.0 60 +
Kolokvij 2 + 20.0 80.0 60 +
Projekt + + + + + 30 + +


Opis elemenata praćenja - Model 3

Elementi praćenja Bodovi Uvjet Opis Nadoknada
Granica Opis Rok
Prisustvovanje na laboratorijskim vježbama 0 0 Uvjet za potpis. Na svim laboratorijskim vježbama provjerava se prisustvovanje. Dozvoljena su 2 izostanka (vježbe se provode kroz 8 tjedana po 2 sata). 4 izostanka Dodatni zadaci. Javiti se nastavniku nakon objave evidencije prisustvovanja, najkasnije do kraja 12. tjedna. Zadnji dan 16. tjedna.
Aktivnost na laboratorijskim vježbama i seminarima 10 0 Studenti mogu sudjelovati u diskusijama na laboratorijskim vježbama i seminarima, prezentirati rješenja pojedinih zadataka i sl., za što ukupno mogu dobiti 5 bodova na seminarima i 5 bodova na vježbama.
1. kolokvij** 25 15 Rješavanje zadataka uz dodatak teoretskih pitanja otvorenog tipa i pitanja koja ispituju razumijevanje.
Prepisivanje je zabranjeno te povlači disciplinsku odgovornost.
Na oba kolokvija ukupno mora biti ostvareno najmanje 15 bodova.
2. kolokvij 25 Rješavanje zadataka uz dodatak teoretskih pitanja otvorenog tipa i pitanja koja ispituju razumijevanje.
Prepisivanje je zabranjeno te povlači disciplinsku odgovornost.
Na oba kolokvija ukupno mora biti ostvareno najmanje 15 bodova.
Projekt 40 10 Uvjet za polaganje ispita na bilo koji način.* Samostalni projekt koji student predlaže najkasnije do početka 7. tjedna. Student treba samostalno izraditi, dokumentirati i obraniti projekt. Pismeni dio projekta treba postaviti na Web ili poslati nastavniku unutar zadanog roka. Projekt se brani tijekom 3. nastavnog razdoblja prema objavljenim terminima uz prezentaciju u nekom alatu. Korištenje tuđeg rješenja i plagiranje je zabranjeno te povlači disciplinsku odgovornost.


Opis elemenata praćenja - Model 4

Elementi praćenja Bodovi Uvjet Opis Nadoknada
Granica Opis Rok
Polaganje laboratorijskih vježbi 0 0 Uvjet za potpis. Laboratorijske vježbe obavljaju se putem sustava za e-učenje i samostalni rad. Potrebno se javiti predmetnom nastavniku koji izvodi vježbe unutar prva dva tjedna nastave, kako bi se dobili zadaci za polaganje.
Kritički osvrt na članak 10 0 Student dobiva članak na koji treba napraviti kritički osvrt u obliku kraćeg seminara te ga obrazložiti na konzultacijama.
1. kolokvij** 25 15 Rješavanje zadataka uz dodatak teoretskih pitanja otvorenog tipa i pitanja koja ispituju razumijevanje.
Prepisivanje je zabranjeno te povlači disciplinsku odgovornost.
Na oba kolokvija ukupno mora biti ostvareno najmanje 15 bodova.
2. kolokvij 25 Rješavanje zadataka uz dodatak teoretskih pitanja otvorenog tipa i pitanja koja ispituju razumijevanje.
Prepisivanje je zabranjeno te povlači disciplinsku odgovornost.
Na oba kolokvija ukupno mora biti ostvareno najmanje 15 bodova.
Seminar 40 10 Uvjet za polaganje ispita na bilo koji način.* Samostalni projekt koji student predlaže najkasnije do početka 7. tjedna. Student treba samostalno izraditi, dokumentirati i obraniti projekt. Pismeni dio projekta treba postaviti na Web ili poslati nastavniku unutar zadanog roka. Projekt se brani tijekom 3. nastavnog razdoblja prema objavljenim terminima uz prezentaciju u nekom alatu. Korištenje tuđeg rješenja i plagiranje je zabranjeno te povlači disciplinsku odgovornost.


* Projekt je potrebno napraviti bez obzira na model polaganja ispita.

** Na kolokvijima ukupno mora biti ostvareno najmanje 15 bodova, a iz projekta 10 kako bi student mogao predmet položiti tijekom godine kroz kontinuirano praćenje.

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