Erinevus lehekülje "Loogiline programmeerimine (2017)" redaktsioonide vahel
P (Evelin teisaldas lehekülje Loogiline programmeerimine pealkirja Loogiline programmeerimine (2017) alla) |
|||
(ei näidata 2 kasutaja 110 vahepealset redaktsiooni) | |||
12. rida: | 12. rida: | ||
Kursus varasematel aastatel: [[Loogiline programmeerimine (2015)| Sügis 2015]] | Kursus varasematel aastatel: [[Loogiline programmeerimine (2015)| Sügis 2015]] | ||
− | ==Sügis | + | ==Sügis 2017== |
+ | |||
+ | |||
+ | ==NB!<span style="color: red; font-weight: bold;"> Praktikumide järelkaitsmine toimub 9. jaanuaril kell 10.00 (ICT-401)== | ||
+ | |||
+ | ==NB!<span style="color: red; font-weight: bold;"> Kontrolltööde järeltööd s.h. koondtest 16. jaanuaril kell 10.00 (ICT-411)== | ||
+ | |||
+ | * Loeng: Teisipäeval kl. 10:00 - 11:30 ruumis U02-102 (õppejõud prof. Jüri Vain) | ||
+ | * Praktikumid ruumis ICT-401: (õppejõud: prof. Jüri Vain, Sven Nõmm, Evelin Halling) | ||
+ | ** IAPB51, IAPB52, IAPB53, IAPB54, IAPB55 | ||
+ | *** Rühm A: Teisipäeval kl. 12:00-13:30 | ||
+ | *** Rühm B: Teisipäeval kl. 14:00-15:30 | ||
+ | *** Rühm C: Teisipäeval kl. 16:00-17:30 | ||
+ | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<!-- | <!-- | ||
* '''Eksam''' | * '''Eksam''' | ||
37. rida: | 37. rida: | ||
==Hindamiskriteeriumid== | ==Hindamiskriteeriumid== | ||
− | + | * [[Media:Hindamiskriteeriumid2017Sest.pdf|HINDAMISKRITEERIUMID vt siit]] | |
− | * Hindelise arvestuse eelduseks on praktikumitööde (10 praktikumi | + | <!--* Hindelise arvestuse eelduseks on praktikumitööde (10 praktikumi) ja kodutöö esitamine ning kontrolltööde (3 kontrolltööd) sooritamine. |
* Praktikumi- ja kodutööd tuleb panna GIT-i ja kaitsta praktikumi ajal TTÜ arvutiklassis. E-postiga saadetud töid ei arvestata. | * Praktikumi- ja kodutööd tuleb panna GIT-i ja kaitsta praktikumi ajal TTÜ arvutiklassis. E-postiga saadetud töid ei arvestata. | ||
* Praktikumi ülesanded: 10 tk - tähtaegselt esitatud ülesanne 1 p, pärast tähtaega 0 p (Kokku max: 10 p) | * Praktikumi ülesanded: 10 tk - tähtaegselt esitatud ülesanne 1 p, pärast tähtaega 0 p (Kokku max: 10 p) | ||
− | |||
* Kodutöö - Kabe programmi programmeerimine - 10 p | * Kodutöö - Kabe programmi programmeerimine - 10 p | ||
** Võimalikud boonuspunktid | ** Võimalikud boonuspunktid | ||
− | * Kontrolltööd (3 tk - kokku | + | * Kontrolltööd (3 tk - kokku 80 p) |
− | ** Kontrolltöö 1 - põhimõisted | + | ** Kontrolltöö 1 - põhimõisted 30 p |
** Kontrolltöö 2 - rekursiooni programmeerimine 30 p | ** Kontrolltöö 2 - rekursiooni programmeerimine 30 p | ||
** Kontrolltöö 3 - teadmiste esitamine Prologis 20 p | ** Kontrolltöö 3 - teadmiste esitamine Prologis 20 p | ||
52. rida: | 51. rida: | ||
* Arvestusel osalemine ei ole kohustuslik nendele, kes on edukalt kaitsnud praktikumitööd ja kodutöö ning sooritanud 3 testi igaüks tulemusega 60 p ja enam. | * Arvestusel osalemine ei ole kohustuslik nendele, kes on edukalt kaitsnud praktikumitööd ja kodutöö ning sooritanud 3 testi igaüks tulemusega 60 p ja enam. | ||
--> | --> | ||
− | * Järeltööd kontrolltöödele 1-3 toimuvad semestri viimaste loengute aegadel. | + | * Järeltööd kontrolltöödele 1-3 toimuvad semestri viimaste loengute aegadel |
+ | ** 12.12.2017 järeltööd kontrolltööle 1 ja kontrolltööle 2 | ||
+ | ** 19.12.2017 järeltööd kontrolltööle 2 ja kontrolltööle 3 | ||
* Järeltööde sooritamise tingimused: | * Järeltööde sooritamise tingimused: | ||
** Esimesel katsel tuleb teha järeltööd konkreetselt sellele tööle, mille tulemus oli alla 51%. | ** 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. | ** 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 | + | * 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)''' | * '''Testide ja praktikumide jooksvad tulemused asuvad Moodles (ained.ttu.ee)''' | ||
==Loengud== | ==Loengud== | ||
− | * [[Media:ITI0021_Loeng | + | * [[Media:ITI0021_Loeng 1_2017.pdf|Loeng 1]]: Mis on loogiline programmeerimine? |
− | * [[Media: | + | * [[Media:ITI0021_Loeng_2_1_2015.pdf|Loeng 2.1]]: Loogika alusmõisted: lauseloogika |
− | * [[Media: | + | * [[Media:ITI0021_Loeng_2_2_2015.pdf|Loeng 2.2]]: Loogika alusmõisted: predikaatloogika |
− | * [[Media: | + | * [[Media:ITI0021_Loeng_2 2016.pdf|Loeng 3]]: Loogilise programmeerimise keel Prolog |
* [[Media:ITI0021_Loeng_3_2015.pdf|Loeng 4]]: Resolutsioon ja unifitseerimine | * [[Media:ITI0021_Loeng_3_2015.pdf|Loeng 4]]: Resolutsioon ja unifitseerimine | ||
− | * [[Media:ITI0021_Loeng_4_2015.pdf|Loeng 5]]: | + | * [[Media:ITI0021_Loeng_4_2015.pdf|Loeng 5]]: Prologi andmestruktuurid: listid, freimid (lisamaterjal [http://www.learnprolognow.org/lpnpage.php?pageid=teaching] vt Chapter 10) |
− | * '''Kontrolltöö 1 ( | + | * '''Kontrolltöö 1 (10.10.2017):''' Loengute 1-4 materjalile: teadmiste formaliseerimine 1st järku predikaatloogikas, Horni lause, resolutsioon, unifitseerimine, mgu, literaal, term, rekursiivne reegel,lihtsamate päringute ja rekursiivsete reeglite koostamine. |
− | * [[Media: | + | * [[Media:ITI0021_Loeng_6_2016.pdf|Loeng 6]]: Hulgateooria ja algebra mõistete programmeerimine |
− | * [[Media: | + | * [[Media:ITI0021_Loeng_7_2016.pdf|Loeng 7]]: Prolog programmi täitmine ja täitmise juhtimine |
− | + | <!-- * <span style="color: red; font-weight: bold;"> '''Loengu (31.10.17) ajal toimub harjutus Kontrolltööks 2. ''' Teema: Rekursiooni ja tagasivõtuga otsingu programmeerimine </span> | |
− | * [[Media: | + | --> |
− | * | + | * '''Kontrolltöö 2 (7.11.2017):''' Loengute 5, 6 ja 7 materjalile: rekursioon, listid, rekursiivsed reeglid listidel, otsingu 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] |
− | * '''Kontrolltöö 3 ( | + | * [[Media:ITI0021_Loeng_9_2017.pdf|Loeng 9]]: Mängu ja otsingustrateegiate programmeerimine |
− | + | * Loeng 10: Prologi liidestamine C ja Java programmidega | |
+ | * Loeng 11: Tehisintellekti algoritmide programmeerimine Prologis | ||
+ | * '''Kontrolltöö 3 (05.12.2017):''' Loengute 5,6,7,8,9 materjalile | ||
+ | |||
** 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 | + | ** Programmeerimisülesanded: otsingu juhtimine predikaatide repeat, fail ja cut abil (vt. Praktikum PR10 juhendit). |
− | * ( | + | <!-- |
− | * ( | + | * (15.12.2016) '''Kontrolltööde 1 ja 2 järeltööd''' |
+ | * (22.12.2016) '''Kontrolltöö 3 järeltöö''' | ||
+ | * (12.01.2017) '''Järeltööde sooritamise lisaaeg I''' | ||
+ | * (19.01.2017) '''Järeltööde sooritamise lisaaeg II''' | ||
− | |||
* | * | ||
* [[Media:Loeng_5.pdf|Loeng 5]]:Loogilise programmeerimise andmestrutuurid | * [[Media:Loeng_5.pdf|Loeng 5]]:Loogilise programmeerimise andmestrutuurid | ||
93. rida: | 99. rida: | ||
* Järeltöö I (03.12.2014) | * Järeltöö I (03.12.2014) | ||
* Järeltöö II (10.12.2014) | * Järeltöö II (10.12.2014) | ||
+ | |||
--> | --> | ||
115. rida: | 122. rida: | ||
* Kasutusjuhend: [http://sewiki.iai.uni-bonn.de/research/pdt/docs/getting_started] | * Kasutusjuhend: [http://sewiki.iai.uni-bonn.de/research/pdt/docs/getting_started] | ||
+ | <!-- | ||
GIT URI: https://teie-ttu-uni-id-kasutajanimi@git.ttu.ee/ained/iti0021/teie-ttu-uni-id-kasutajanimi.git (NB! see link brauseris ei tööta!). NB! Uni-ID kasutajanimes peavad olema '''KÕIK VÄIKESED TÄHED!''' | GIT URI: https://teie-ttu-uni-id-kasutajanimi@git.ttu.ee/ained/iti0021/teie-ttu-uni-id-kasutajanimi.git (NB! see link brauseris ei tööta!). NB! Uni-ID kasutajanimes peavad olema '''KÕIK VÄIKESED TÄHED!''' | ||
[[ITI0011:git|Giti juhend Eclipse'is kasutamiseks]] | [[ITI0011:git|Giti juhend Eclipse'is kasutamiseks]] | ||
+ | --> | ||
+ | '''GIT''' | ||
+ | |||
+ | Mine aadressile https://gitlab.cs.ttu.ee/ ja logi sisse oma UNI-ID kasutajanimega. | ||
+ | |||
+ | |||
+ | Loo endale projekt nimega "iti0021" (NB!! Väikesed tähed). | ||
+ | https://gitlab.cs.ttu.ee/dashboard/projects -> "New Project". Visibility las olla "private". | ||
+ | |||
+ | |||
+ | Kui projekt tehtud, siis mine üleval menüüst "Members". | ||
+ | Lisa kasutajatena 'hodor-live' ja 'Evelin.Halling'. Määra "access level" "Developer". | ||
+ | Nüüd saavad kursuse õppejõud sinu repole ligi. Samuti saab sinu repole ligi tester. | ||
+ | |||
+ | |||
+ | Lisa webhook. Ülevalt "Settings" -> "Integrations". Sinna kirjuta | ||
+ | URL: https://ained.ttu.ee/mod/charon/api/git_callback | ||
+ | Jäta peale "Push events" | ||
+ | Võta maha linnuke "Enable SSL verification" | ||
+ | Nüüd nupp "Add webhook" | ||
+ | |||
Praktikumi ülesanded tuleb laadida mainitud tähtajaks git'i vastavasse kausta (PR0x, kus x on praktikumi number [1, 2, 3, 4]). Kaustas peab olema fail nimega prax0x.pl (kus x on praktikumi number [1, 2, 3, 4]). Kaustas võib olla ka teisi faile, mis imporditakse prax0x.pl poolt. | Praktikumi ülesanded tuleb laadida mainitud tähtajaks git'i vastavasse kausta (PR0x, kus x on praktikumi number [1, 2, 3, 4]). Kaustas peab olema fail nimega prax0x.pl (kus x on praktikumi number [1, 2, 3, 4]). Kaustas võib olla ka teisi faile, mis imporditakse prax0x.pl poolt. | ||
124. rida: | 153. rida: | ||
** [[Media:ITI0021_Praktikum_1_juhend.pdf|Praktikumi 1 juhend]] | ** [[Media:ITI0021_Praktikum_1_juhend.pdf|Praktikumi 1 juhend]] | ||
** Näidismaterjal: [[Media:ITI0021_Praktikum_1.pdf|Objektid ja nende omadused]] | ** Näidismaterjal: [[Media:ITI0021_Praktikum_1.pdf|Objektid ja nende omadused]] | ||
+ | ** NB! Seda ülesannet ei tule laadida git-i | ||
− | * Praktikum 2: Prologi teadmusbaasi koostamine | + | * Praktikum 2: Prologi teadmusbaasi koostamine PR02 |
** [[Media:ITI0021_Praktikum_2_juhend.pdf|Praktikumi 2 juhend]] | ** [[Media:ITI0021_Praktikum_2_juhend.pdf|Praktikumi 2 juhend]] | ||
− | * Praktikum 3: Rekursioon | + | * Praktikum 3: Rekursioon PR03 |
− | ** [[Media: | + | ** [[Media:ITI0021_Praktikum_PR03_juhend_2016.pdf|Praktikumi 3 juhend]] |
+ | |||
+ | * Praktikum 4: Rekursioon PR04 | ||
+ | ** [[Media:ITI0021_Praktikum_PR04_juhend_2016.pdf|Praktikumi 4 juhend]] | ||
+ | ** 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]] | ||
+ | |||
+ | * Praktikum PR05: Listid | ||
+ | ** [[Media:ITI0021_Praktikum_PR06_juhend_2016.pdf|Praktikumi PR05 juhend]] | ||
+ | |||
+ | * Praktikum PR06: Semantilised võrgud ja freimid | ||
+ | ** [[Media:ITI0021_praktikumi_7_juhend_2015.pdf|Praktikumi PR06 juhend]] | ||
+ | ** Näidismaterjal: [[Media:ITI_0021_praktikum_7_näited.pl|Klassid ja pärimine]] | ||
+ | |||
+ | * Praktikum PR07: Hulgateoreetilised tehted | ||
+ | ** [[Media:ITI0021_Praktikum_PR07_juhend_2016.pdf|Praktikumi PR07 juhend]] | ||
+ | |||
+ | * Praktikum PR08: Otsingu juhtimine | ||
+ | ** [[Media:ITI0021_Praktikum_PR08_juhend_2016.pdf|Praktikumi PR08 juhend]] | ||
+ | |||
+ | * Praktikum PR09: Reisi marsuudi leidimine | ||
+ | ** [[Media:ITI0021_Praktikum_PR09_juhend_2017.pdf|Praktikumi PR09 juhend]] | ||
+ | |||
+ | * Praktikum PR10: DCG grammatika ja loomuliku keele interpreteerimine | ||
+ | ** [[Media:ITI0021_Praktikum_PR09_juhend_2016.pdf|Praktikumi PR10 juhend]] | ||
+ | |||
+ | * Praktikum PR11: Faktide hulgal otsingu programmeerimine | ||
+ | ** [[Media:ITI0021_Praktikum_PR10_juhend_2016.pdf|Praktikumi PR11 juhend]] | ||
+ | ** Näidismaterjal: [[Media:ITI0021_Praktikum_9_kabe_2015.pl|Otsing kabe näitel]] | ||
+ | ** Tuleb implementeerida predikaadid 'vota' ja 'tee_kaik' | ||
+ | |||
+ | * Praktikum PR12: Tammi programmeerimine | ||
+ | ** Programmeerida Tammi käigud. Kasuta eelmises praktikumis (Praktikumis PR11) 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 PR12: ALEPH algoritm (A Learning Engine for Proposing Hypotheses) | ||
+ | ** [[Media:ITI0021_Praktikum_PR12_juhend_2016.pdf|Praktikumi PR12 juhend]] | ||
− | |||
− | |||
* Praktikum 5: Listid | * Praktikum 5: Listid | ||
** [[Media:ITI0021_Praktikum_5_juhend_2015.pdf|Praktikumi 5 juhend]] | ** [[Media:ITI0021_Praktikum_5_juhend_2015.pdf|Praktikumi 5 juhend]] | ||
− | + | ||
− | |||
* Praktikum 7: Semantilised võrgud ja freimid | * Praktikum 7: Semantilised võrgud ja freimid | ||
162. rida: | 227. rida: | ||
* Praktikum 16 (10.12.2015): Võimalus kaitsta varasemaid praktikumiülesandeid ja konsultatsioonid kodutöö osas | * Praktikum 16 (10.12.2015): Võimalus kaitsta varasemaid praktikumiülesandeid ja konsultatsioonid kodutöö osas | ||
* (17.12.2015): Kodutööde kaitsmine ja kabeprogrammide võistlus | * (17.12.2015): Kodutööde kaitsmine ja kabeprogrammide võistlus | ||
− | + | --> | |
<!-- | <!-- | ||
174. rida: | 239. rida: | ||
<!-- Kursus varasematel aastatel: [[Loogiline programmeerimine (2014)]] [http://vana.cs.ttu.ee/tiki-index.php?page=ITI0020 2013]<br> --> | <!-- Kursus varasematel aastatel: [[Loogiline programmeerimine (2014)]] [http://vana.cs.ttu.ee/tiki-index.php?page=ITI0020 2013]<br> --> | ||
− | + | ==Kodutöö 2017== | |
− | + | * Kodutööks on kabeprogrammi programmeerimine Prologis | |
− | + | * Kood laadida git-i salve: KABE | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ==Kodutöö | ||
− | * Kodutööks on kabeprogrammi programmeerimine Prologis | ||
* Kabe | * Kabe | ||
** [[Media: Kodutöö_kabe2015.pdf|Tööülesande kirjeldus]] | ** [[Media: Kodutöö_kabe2015.pdf|Tööülesande kirjeldus]] | ||
** Mängu üldkirjeldus: [https://en.wikipedia.org/wiki/Russian_draughts] | ** Mängu üldkirjeldus: [https://en.wikipedia.org/wiki/Russian_draughts] | ||
** Ametlikud võistlusreeglid:[http://fmjd64.org/rules-of-the-game/] | ** Ametlikud võistlusreeglid:[http://fmjd64.org/rules-of-the-game/] | ||
+ | |||
+ | ** Graafiline Arbiiter: | ||
+ | *** [[Media:GraphicArbiter.zip |Arbiiter (Graafiline)]] | ||
** Programm Arbiiter juhib mängu. | ** Programm Arbiiter juhib mängu. | ||
216. rida: | 254. rida: | ||
*** Arbiiter UTF-8 kodeeringus:[[Media:arbiiterutf64.zip |Arbiiter (Prolog64)]] | *** Arbiiter UTF-8 kodeeringus:[[Media:arbiiterutf64.zip |Arbiiter (Prolog64)]] | ||
*** Arbiiter turniiriks:[[Media:arbiiter_1.zip |Arbiiter (Prolog64)]] | *** Arbiiter turniiriks:[[Media:arbiiter_1.zip |Arbiiter (Prolog64)]] | ||
+ | *** Arbiiter arendus:[[Media:arbiiter_arendus.zip |Arbiiter (Arendus)]] | ||
+ | |||
<!-- | <!-- | ||
** Programm [[Media:kabeprogramm.pl | Näidisprogramm]]<br> | ** Programm [[Media:kabeprogramm.pl | Näidisprogramm]]<br> | ||
− | |||
--> | --> | ||
+ | Kodutöö esitamise tähtaeg on eelviimane ja viimane praktikum, mil toimub kabeturniir (programmikood panna moodle-sse) | ||
==Lisamaterjalid== | ==Lisamaterjalid== | ||
* [http://www.learnprolognow.org/lpnpage.php?pageid=top Learn Prolog Now] | * [http://www.learnprolognow.org/lpnpage.php?pageid=top Learn Prolog Now] | ||
* [http://www.youtube.com/watch?v=09zlcS49zL0 Web Testing with Logic Programming - Daniel Gregoire] | * [http://www.youtube.com/watch?v=09zlcS49zL0 Web Testing with Logic Programming - Daniel Gregoire] | ||
+ | * [https://www.amzistore.com/dcm_bookstore.php Uut lugemist Prologis ja selle rakendustest!] [[Pilt:Näidis.jpg]] |
Viimane redaktsioon: 3. september 2018, kell 07:31
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: esmaspäeval kl. 16:00 - 17:00 eelneval kokkuleppel e-maili kaudu
Kursus varasematel aastatel: Sügis 2015
Sügis 2017
NB! Praktikumide järelkaitsmine toimub 9. jaanuaril kell 10.00 (ICT-401)
NB! Kontrolltööde järeltööd s.h. koondtest 16. jaanuaril kell 10.00 (ICT-411)
- Loeng: Teisipäeval kl. 10:00 - 11:30 ruumis U02-102 (õppejõud prof. Jüri Vain)
- Praktikumid ruumis ICT-401: (õppejõud: prof. Jüri Vain, Sven Nõmm, Evelin Halling)
- IAPB51, IAPB52, IAPB53, IAPB54, IAPB55
- Rühm A: Teisipäeval kl. 12:00-13:30
- Rühm B: Teisipäeval kl. 14:00-15:30
- Rühm C: Teisipäeval kl. 16:00-17:30
- IAPB51, IAPB52, IAPB53, IAPB54, IAPB55
Hindamiskriteeriumid
- HINDAMISKRITEERIUMID vt siit
- Järeltööd kontrolltöödele 1-3 toimuvad semestri viimaste loengute aegadel
- 12.12.2017 järeltööd kontrolltööle 1 ja kontrolltööle 2
- 19.12.2017 järeltööd kontrolltööle 2 ja kontrolltööle 3
- 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?
- Loeng 2.1: Loogika alusmõisted: lauseloogika
- Loeng 2.2: Loogika alusmõisted: predikaatloogika
- Loeng 3: Loogilise programmeerimise keel Prolog
- Loeng 4: Resolutsioon ja unifitseerimine
- Loeng 5: Prologi andmestruktuurid: listid, freimid (lisamaterjal [1] vt Chapter 10)
- Kontrolltöö 1 (10.10.2017): Loengute 1-4 materjalile: teadmiste formaliseerimine 1st järku predikaatloogikas, Horni lause, resolutsioon, unifitseerimine, mgu, literaal, term, rekursiivne reegel,lihtsamate päringute ja rekursiivsete reeglite koostamine.
- Loeng 6: Hulgateooria ja algebra mõistete programmeerimine
- Loeng 7: Prolog programmi täitmine ja täitmise juhtimine
- Kontrolltöö 2 (7.11.2017): Loengute 5, 6 ja 7 materjalile: rekursioon, listid, rekursiivsed reeglid listidel, otsingu juhtimine
- Loeng 8: DCG grammatika reeglid ja loomuliku keele parsimine (lisamaterjal [2] ja[3]
- Loeng 9: Mängu ja otsingustrateegiate programmeerimine
- Loeng 10: Prologi liidestamine C ja Java programmidega
- Loeng 11: Tehisintellekti algoritmide programmeerimine Prologis
- Kontrolltöö 3 (05.12.2017): Loengute 5,6,7,8,9 materjalile
- Algebra ja hulgateooria mõisted
- DCG grammatikareeglid, reeglite Prologi sisekuju
- Programmeerimisülesanded: otsingu juhtimine predikaatide repeat, fail ja cut abil (vt. Praktikum PR10 juhendit).
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" (NB!! Väikesed tähed).
https://gitlab.cs.ttu.ee/dashboard/projects -> "New Project". Visibility las olla "private".
Kui projekt tehtud, siis mine üleval menüüst "Members".
Lisa kasutajatena 'hodor-live' ja 'Evelin.Halling'. Määra "access level" "Developer".
Nüüd saavad kursuse õppejõud sinu repole ligi. Samuti saab sinu repole ligi tester.
Lisa webhook. Ülevalt "Settings" -> "Integrations". Sinna kirjuta
URL: https://ained.ttu.ee/mod/charon/api/git_callback
Jäta peale "Push events"
Võta maha linnuke "Enable SSL verification"
Nüüd nupp "Add webhook"
Praktikumi ülesanded tuleb laadida mainitud tähtajaks git'i vastavasse kausta (PR0x, kus x on praktikumi number [1, 2, 3, 4]). Kaustas peab olema fail nimega prax0x.pl (kus x on praktikumi number [1, 2, 3, 4]). 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 4 juhend
- Näidismaterjal: Klassid ja pärimine
- Lisamaterjal: ISCO ametite klassifikatsioon
- Praktikum PR05: Listid
- Praktikum PR06: Semantilised võrgud ja freimid
- Praktikumi PR06 juhend
- Näidismaterjal: Klassid ja pärimine
- Praktikum PR07: Hulgateoreetilised tehted
- Praktikum PR08: Otsingu juhtimine
- Praktikum PR09: Reisi marsuudi leidimine
- Praktikum PR10: DCG grammatika ja loomuliku keele interpreteerimine
- Praktikum PR11: Faktide hulgal otsingu programmeerimine
- Praktikumi PR11 juhend
- Näidismaterjal: Otsing kabe näitel
- Tuleb implementeerida predikaadid 'vota' ja 'tee_kaik'
- Praktikum PR12: Tammi programmeerimine
- Programmeerida Tammi käigud. Kasuta eelmises praktikumis (Praktikumis PR11) 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öö 2017
- Kodutööks on kabeprogrammi programmeerimine Prologis
- Kood laadida git-i salve: KABE
- Kabe
- Tööülesande kirjeldus
- Mängu üldkirjeldus: [6]
- Ametlikud võistlusreeglid:[7]
- 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)