Loogiline programmeerimine (2018)
Ainekood: ITI0021
Link: http://courses.cs.ttu.ee/pages/ITI0021
Õppejõud: prof. Jüri Vain
Kontakt: juri.vain ätt ttu.ee, ICT-418, Vastuvõtu aeg: TBA eelneval kokkuleppel e-maili kaudu
Kursus varasematel aastatel: Sügis 2017
Sügis 2018
- Loeng: Kolmapäeval kl. 10:00 - 11:30 ruumis U06-201 (õppejõud prof. Jüri Vain)
NB! Loenguruum on muutunud võrreldes algse tunniplaaniga
- Praktikumid: (õppejõud: prof. Jüri Vain, Sven Nõmm, Evelin Halling)
- IAPB53, IAPB54
- Rühm A: Teisipäeval kl. 10:00-11:30 ICT-403
- Rühm B: Teisipäeval kl. 14:00-15:30 ICT-403
- IAPB51, IAPB52
- Kolmapäeval kl. 12:00-13:30 ICT-401
- IAPB53, IAPB54
Hindamiskriteeriumid
- HINDAMISKRITEERIUMID vt siit
- Järeltööd testidele toimuvad semestri viimaste loengute aegadel
- TBA järeltööd kontrolltööle 1
- TBA järeltööd kontrolltööle 2
- Järeltööde sooritamise tingimused:
- Esimesel katsel tuleb teha järeltööd konkreetselt sellele tööle, mille tulemus oli alla 51%.
- Kui ka järeltöö ebaõnnestub, tuleb sooritada koondtöö kursuse kogu materjali peale.
- Arvestuse hinnet tõstab see, kui kodutööna valminud kabeprogramm saavutab viimase praktikumi ajal toimuval võistlusel auhinnalise koha: I koht +3 (mod 5) palli; II koht +2(mod 5) palli; III koht +1(mod 5) pall.
- Testide ja praktikumide jooksvad tulemused asuvad Moodles (ained.ttu.ee)
Loengud
- Loeng 1: Mis on loogiline programmeerimine? (slaidid)
- Loeng 2: Loogilise programmeerimise keel Prolog (slaidid)
- Loeng 3: Loogilise programmeerimise alused (slaidid)
- Loeng 4: Loogilise programmeerimise andmestruktuurid (slaidid)
- Loeng 5: Hulgateooria ja algebra mõistete kasutamine loogilises programmeerimises
- Loengu ajal (10.10.2018): harjutus, ettevalmistus kontrolltööks
- Loengu ajal (17.10.2018) Kontrolltöö
Videoloengud
Praktikumid
Praktikumides kasutame SWI-Prologi SWI-Prolog.
Eclipse plugin: Prolog Development Tool - PDT.
GIT
Mine aadressile https://gitlab.cs.ttu.ee/ ja logi sisse oma UNI-ID kasutajanimega.
Loo endale projekt nimega "iti0021-2018" (NB!! Väikesed tähed). https://gitlab.cs.ttu.ee/dashboard/projects -> "New Project". Visibility las olla "private".
Praktikumi ülesanded tuleb laadida mainitud tähtajaks git'i vastavasse kausta (PRxx, kus xx on praktikumi number [01, 02, 03, 04, jen.]). Kaustas peab olema fail nimega prax0x.pl (kus x on praktikumi number [1, 2, 3, 4, jne.]). Kaustas võib olla ka teisi faile, mis imporditakse prax0x.pl poolt.
- Praktikum 1: Tutvumine loogilise programmeerimise keskkonnaga SWI-Prolog
- Praktikumi 1 juhend
- Näidismaterjal: Objektid ja nende omadused
- NB! Seda ülesannet ei tule laadida git-i
- Praktikum 2: Prologi teadmusbaasi koostamine (PR02)
- Praktikum 3: Rekursioon (PR03)
- Praktikum 4: Rekursioon (PR04)
- Praktikumi PR04 juhend
- Näidismaterjal: Klassid ja pärimine
- Lisamaterjal: ISCO ametite klassifikatsioon
- Praktikum 5: Listid (PR05)
- Praktikum 6: Hulgateoreetilised tehted (PR06)
- Praktikum 7: Semantilised võrgud ja freimid (PR07)
Kodutöö 2018
- Kodutööks on kabeprogrammi programmeerimine Prologis
- Kood laadida git-i salve: KABE
- Kabe
- Tööülesande kirjeldus
- Mängu üldkirjeldus: [3]
- Ametlikud võistlusreeglid:[4]
- Graafiline Arbiiter:
- Programm Arbiiter juhib mängu.
- Arbiiter UTF-8 kodeeringus:Arbiiter (Prolog32)
- Arbiiter UTF-8 kodeeringus:Arbiiter (Prolog64)
- Arbiiter turniiriks:Arbiiter (Prolog64)
- Arbiiter arendus:Arbiiter (Arendus)
- Programm Arbiiter juhib mängu.
Kodutöö esitamise tähtaeg on eelviimane ja viimane praktikum, mil toimub kabeturniir (programmikood panna moodle-sse)
Lisamaterjalid
- Logic Programming in Python
- Learn Prolog Now
- Web Testing with Logic Programming - Daniel Gregoire
- Uut lugemist Prologis ja selle rakendustest!
- Tõnu Tamme. Loogilise programmeerimise meetod. Tartu, 2003. PDF formaadis raamat Tartu Ülikooli digikogus
- Mathias Schilling Introduction to logic programming with Prolog