Erinevus lehekülje "Loogiline programmeerimine (2018)" redaktsioonide vahel
P (Evelin teisaldas lehekülje Loogiline programmeerimine pealkirja Loogiline programmeerimine (2018) alla) |
|||
(ei näidata 2 kasutaja 49 vahepealset redaktsiooni) | |||
22. rida: | 22. rida: | ||
* Loeng: Kolmapäeval kl. 10:00 - 11:30 ruumis U06-201 (õppejõud prof. Jüri Vain) | * Loeng: Kolmapäeval kl. 10:00 - 11:30 ruumis U06-201 (õppejõud prof. Jüri Vain) | ||
+ | NB!<span style="color: red; font-weight: bold;"> Loenguruum on muutunud võrreldes algse tunniplaaniga | ||
+ | |||
+ | * [https://echo360.org.uk/section/b3cdecb6-ae60-4509-8944-62488629ea1e/public Videosalvestused] | ||
+ | |||
* Praktikumid: (õppejõud: prof. Jüri Vain, Sven Nõmm, Evelin Halling) | * Praktikumid: (õppejõud: prof. Jüri Vain, Sven Nõmm, Evelin Halling) | ||
67. rida: | 71. rida: | ||
==Loengud== | ==Loengud== | ||
− | * [[Media:ITI0021_Loeng 1__2018.pdf|Loeng 1]]: Mis on loogiline programmeerimine? | + | * [[Media:ITI0021_Loeng 1__2018.pdf|Loeng 1]]: Mis on loogiline programmeerimine? (slaidid) |
+ | * [[Media:ITI0021_Loeng_2 2018.pdf|Loeng 2]]: Loogilise programmeerimise keel Prolog (slaidid) | ||
+ | * [[Media:ITI0021_Loeng_3_2018.pdf|Loeng 3]]: Loogilise programmeerimise alused (slaidid) | ||
+ | * [[Media:ITI0021_Loeng_4_2018.pdf|Loeng 4]]: Loogilise programmeerimise andmestruktuurid (slaidid) | ||
+ | * [[Media:ITI0021_Loeng_5_2018_.pdf|Loeng 5]]: Hulgateooria ja algebra mõistete kasutamine loogilises programmeerimises | ||
+ | * Loengu ajal (10.10.2018): harjutus, ettevalmistus kontrolltööks | ||
+ | * Loengu ajal (17.10.2018) <span style="color: red; font-weight: bold;"> Kontrolltöö I </span> | ||
+ | * [[Media:ITI0021_Loeng_7_2018.pdf|Loeng 7]]: Loogilise programmi täitmise juhtimine | ||
+ | * [[Media:ITI0021_Loeng_8_2016.pdf|Loeng 8]]: DCG grammatika reeglid ja loomuliku keele parsimine (lisamaterjal [http://www.learnprolognow.org/slides/official/LPNchapter7.pdf] ja[http://www.learnprolognow.org/slides/official/LPNchapter8.pdf]) | ||
+ | * [[Media:ITI0021_Loeng_9_2018_.pdf|Loeng 9]]: Constraint logic programming | ||
+ | * Loengu ajal (21.11.2018) <span style="color: red; font-weight: bold;"> Kontrolltöö II </span> | ||
+ | * Loengu ajal (28.11.2018) <span style="color: red; font-weight: bold;"> Kontrolltöö I järeltöö </span> | ||
+ | * Loengu ajal (5.12.2018) <span style="color: red; font-weight: bold;"> Kontrolltöö II järeltöö </span> | ||
<!-- * [[Media:ITI0021_Loeng_2_1_2015.pdf|Loeng 2.1]]: Loogika alusmõisted: lauseloogika | <!-- * [[Media:ITI0021_Loeng_2_1_2015.pdf|Loeng 2.1]]: Loogika alusmõisted: lauseloogika | ||
* [[Media:ITI0021_Loeng_2_2_2015.pdf|Loeng 2.2]]: Loogika alusmõisted: predikaatloogika | * [[Media:ITI0021_Loeng_2_2_2015.pdf|Loeng 2.2]]: Loogika alusmõisted: predikaatloogika | ||
88. rida: | 104. rida: | ||
** Algebra ja hulgateooria mõisted | ** Algebra ja hulgateooria mõisted | ||
** DCG grammatikareeglid, reeglite Prologi sisekuju | ** DCG grammatikareeglid, reeglite Prologi sisekuju | ||
+ | |||
+ | |||
** Programmeerimisülesanded: otsingu juhtimine predikaatide repeat, fail ja cut abil (vt. Praktikum PR10 juhendit). | ** Programmeerimisülesanded: otsingu juhtimine predikaatide repeat, fail ja cut abil (vt. Praktikum PR10 juhendit). | ||
--> | --> | ||
120. rida: | 138. rida: | ||
* Loeng 15: Testide 1 ja 2 järeltööd | * Loeng 15: Testide 1 ja 2 järeltööd | ||
* Loeng 16: Koondjäreltöö * --> | * Loeng 16: Koondjäreltöö * --> | ||
+ | |||
+ | == Videoloengud == | ||
+ | * [https://echo360.org.uk/section/b3cdecb6-ae60-4509-8944-62488629ea1e/public Link videoloengutele] | ||
==Praktikumid== | ==Praktikumid== | ||
160. rida: | 181. rida: | ||
** NB! Seda ülesannet ei tule laadida git-i | ** NB! Seda ülesannet ei tule laadida git-i | ||
− | * Praktikum 2: Prologi teadmusbaasi koostamine PR02 | + | * Praktikum 2: Prologi teadmusbaasi koostamine (PR02) |
− | ** [[Media:ITI0021_Praktikum_2_juhend.pdf|Praktikumi | + | ** [[Media:ITI0021_Praktikum_2_juhend.pdf|Praktikumi PR02 juhend]] |
− | + | ||
− | * Praktikum 3: Rekursioon PR03 | + | * Praktikum 3: Rekursioon (PR03) |
− | ** [[Media: | + | ** [[Media:ITI0021_Praktikum_PR03_juhend_2018.pdf|Praktikumi PR03 juhend]] |
− | * Praktikum 4: Rekursioon PR04 | + | * Praktikum 4: Rekursioon (PR04) |
− | ** [[Media: | + | ** [[Media:ITI0021_Praktikum_PR04_juhend_2018.pdf|Praktikumi PR04 juhend]] |
** Näidismaterjal: [[Media:ITI0021_praktikum_PR04_näited_2016.pl|Klassid ja pärimine]] | ** Näidismaterjal: [[Media:ITI0021_praktikum_PR04_näited_2016.pl|Klassid ja pärimine]] | ||
** Lisamaterjal: [[Media:ITI0021_praktikum_PR04_isco_klassifikaatorid.xls |ISCO ametite klassifikatsioon]] | ** Lisamaterjal: [[Media:ITI0021_praktikum_PR04_isco_klassifikaatorid.xls |ISCO ametite klassifikatsioon]] | ||
− | * Praktikum | + | * Praktikum 5: Listid (PR05) |
− | ** [[Media: | + | ** [[Media:ITI0021_Praktikum_PR05_juhend_2018.pdf|Praktikumi PR05 juhend]] |
+ | |||
+ | * Praktikum 6: Hulgateoreetilised tehted (PR06) | ||
+ | ** [[Media:ITI0021_Praktikum_PR06_juhend_2018.pdf|Praktikumi PR06 juhend]] | ||
+ | |||
+ | * Praktikum 7: Semantilised võrgud ja freimid (PR07) | ||
+ | ** [[Media:ITI0021_praktikumi_PR07_juhend_2018.pdf|Praktikumi PR07 juhend]] | ||
+ | |||
+ | * Praktikum 8: Semantilised võrgud ja freimid (PR08) | ||
+ | ** [[Media:ITI0021_praktikumi_PR08_juhend_2018.pdf|Praktikumi PR08 juhend]] | ||
+ | |||
+ | * Praktikum 9: DCG grammatika ja loomuliku keele interpreteerimine (PR09) | ||
+ | ** [[Media:ITI0021_Praktikum_PR09_juhend_2018.pdf|Praktikumi PR09 juhend]] | ||
+ | |||
+ | * Praktikum 10: Faktide hulgal otsingu programmeerimine (PR10) | ||
+ | ** [[Media:ITI0021_Praktikum_PR10_juhend_2016.pdf|Praktikumi PR10 juhend]] | ||
+ | ** Näidismaterjal: [[Media:ITI0021_Praktikum_9_kabe_2015.pl|Otsing kabe näitel]] | ||
+ | ** Tuleb implementeerida predikaadid 'vota' ja 'tee_kaik' | ||
+ | |||
+ | * Praktikum 11: Tammi programmeerimine (PR11) | ||
+ | ** Programmeerida Tammi käigud. Kasuta eelmises praktikumis (Praktikumis PR10) loodud kabe programmi. | ||
+ | ** Tammi käikude programmeerimise algoritm on toodud kodutöö ülesande kirjelduses. | ||
+ | ** predikaat 'kaigu_variandid' peab toetama tammiga käimist ja võtmist | ||
+ | <!-- | ||
* Praktikum PR06: Semantilised võrgud ja freimid | * Praktikum PR06: Semantilised võrgud ja freimid | ||
** [[Media:ITI0021_praktikumi_7_juhend_2015.pdf|Praktikumi PR06 juhend]] | ** [[Media:ITI0021_praktikumi_7_juhend_2015.pdf|Praktikumi PR06 juhend]] | ||
190. rida: | 234. rida: | ||
** [[Media:ITI0021_Praktikum_PR09_juhend_2016.pdf|Praktikumi PR10 juhend]] | ** [[Media:ITI0021_Praktikum_PR09_juhend_2016.pdf|Praktikumi PR10 juhend]] | ||
− | |||
− | |||
− | |||
− | |||
− | + | ||
− | |||
− | |||
− | |||
--> | --> | ||
<!-- | <!-- |
Viimane redaktsioon: 1. september 2019, kell 13:36
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öö I
- Loeng 7: Loogilise programmi täitmise juhtimine
- Loeng 8: DCG grammatika reeglid ja loomuliku keele parsimine (lisamaterjal [1] ja[2])
- Loeng 9: Constraint logic programming
- Loengu ajal (21.11.2018) Kontrolltöö II
- Loengu ajal (28.11.2018) Kontrolltöö I järeltöö
- Loengu ajal (5.12.2018) Kontrolltöö II järeltöö
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)
- Praktikum 8: Semantilised võrgud ja freimid (PR08)
- Praktikum 9: DCG grammatika ja loomuliku keele interpreteerimine (PR09)
- Praktikum 10: Faktide hulgal otsingu programmeerimine (PR10)
- Praktikumi PR10 juhend
- Näidismaterjal: Otsing kabe näitel
- Tuleb implementeerida predikaadid 'vota' ja 'tee_kaik'
- Praktikum 11: Tammi programmeerimine (PR11)
- Programmeerida Tammi käigud. Kasuta eelmises praktikumis (Praktikumis PR10) loodud kabe programmi.
- Tammi käikude programmeerimise algoritm on toodud kodutöö ülesande kirjelduses.
- predikaat 'kaigu_variandid' peab toetama tammiga käimist ja võtmist
Kodutöö 2018
- Kodutööks on kabeprogrammi programmeerimine Prologis
- Kood laadida git-i salve: KABE
- Kabe
- Tööülesande kirjeldus
- Mängu üldkirjeldus: [5]
- Ametlikud võistlusreeglid:[6]
- 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