Erinevus lehekülje "Loogiline programmeerimine (2020)" redaktsioonide vahel
(Ümbersuunamine lehele Loogiline programmeerimine) |
P (Evelin teisaldas lehekülje Loogiline programmeerimine pealkirja Loogiline programmeerimine (2020) alla) |
||
(ei näidata 2 kasutaja 62 vahepealset redaktsiooni) | |||
1. rida: | 1. rida: | ||
− | #suuna [[Loogiline programmeerimine]] | + | <!--#suuna [[Loogiline programmeerimine]]--> |
+ | <!-- #suuna [[Loogiline programmeerimine (2015)]] --> | ||
+ | |||
+ | '''Ainekood''': ITI0211<br> | ||
+ | '''Õppeaine maht''': 6 EAP<br> | ||
+ | '''Kontrollivorm''': Hindeline arvestus<br> | ||
+ | '''Link''': http://courses.cs.ttu.ee/pages/ITI0021<br> | ||
+ | |||
+ | '''Õppejõud''': prof. Jüri Vain<br> | ||
+ | '''Kontakt''': juri.vain ätt ttu.ee, ICT-418, Vastuvõtu aeg: TBA eelneval kokkuleppel e-maili kaudu<br> | ||
+ | |||
+ | |||
+ | Kursus varasematel aastatel: [[Loogiline programmeerimine (2018)| Sügis 2018]] | ||
+ | |||
+ | |||
+ | |||
+ | ==Sügis 2020== | ||
+ | |||
+ | |||
+ | <!-- ==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: (õppejõud prof. Jüri Vain) | ||
+ | ** Teisipäeval kl. 12:00 - 13:30 ruumis NRG-131 | ||
+ | <!-- 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: Evelin Halling) | ||
+ | <!--** IAIB51, IAIB52 --> | ||
+ | ** Esmaspäeval kl. 08:00-09:30 ICT-401 | ||
+ | <!--** IAIB53, IAPM31 | ||
+ | *** Esmaspäeval kl. 17:45-19:15 ICT-401--> | ||
+ | |||
+ | |||
+ | <!-- | ||
+ | * '''Eksam''' | ||
+ | ** '''07.01.2016, kell 10.00 Akadeemia tee 15A ruumis ICT-411''' | ||
+ | ** '''14.01.2016, kell 10.00 Akadeemia tee 15A ruumis ICT-411 (NB! vastu tulles paljudele soovidele on viimase eksami aeg nihutatud 14-ndalt 21-le jaanuarile)''' | ||
+ | * '''Programmeerimistööde kaitsmine''' | ||
+ | ** '''07.01.2015, kell 10.00 - 12.00 Akadeemia tee 15A ruumis ICT-403''' | ||
+ | ** '''21.01.2015, kell 10.00 - 12.00 Akadeemia tee 15A ruumis ICT-403''' | ||
+ | --> | ||
+ | |||
+ | ==Hindamiskriteeriumid== | ||
+ | * [[Media:Hindamiskriteeriumid2018Sest.pdf|HINDAMISKRITEERIUMID vt siit]] | ||
+ | <!--* 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 ü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 | ||
+ | ** Võimalikud boonuspunktid | ||
+ | * Kontrolltööd (3 tk - kokku 80 p) | ||
+ | ** Kontrolltöö 1 - põhimõisted 30 p | ||
+ | ** Kontrolltöö 2 - rekursiooni programmeerimine 30 p | ||
+ | ** Kontrolltöö 3 - teadmiste esitamine Prologis 20 p | ||
+ | |||
+ | <!-- | ||
+ | * 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 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)''' | ||
+ | |||
+ | ==Loengute slaidid== | ||
+ | |||
+ | * '''NB! 2020. aasta loengute slaididel ja loengukavas võib esineda muudatusi võrreldes 2019. aasta slaididega''' | ||
+ | |||
+ | * [[Media:ITI0211_Loeng_1_2020.pdf|Loeng 1]] (01.09.2020): Mis on loogiline programmeerimine? | ||
+ | * [[Media:ITI0021_Loeng 2__2020_Prolog.pdf|Loeng 2]] (8.09.2020): Loogilise programmeerimise keel Prolog | ||
+ | * [[Media:ITI0211_Loeng_3_2020_List_operations.pdf|Loeng 3]] (15.09.2020): Loogilise programmeerimise andmestruktuurid - listid ja listioperatsioonid | ||
+ | * [[Media:ITI0211_Loeng_3__2019_LP.pdf|Loeng 4]] (22.09.2020): Loogilise programmeerimise alused | ||
+ | * [[Media:ITI0021_Loeng_7_2018.pdf|Loeng 5]] (29.09.2020): Loogilise programmi täitmise juhtimine | ||
+ | * [[Media:ITI0211 Loogiline programmeerimine Harjutus 1.pdf|Loengu ajal (06.10.2020) harjutus, ettevalmistus kontrolltööks]] | ||
+ | * Loengu ajal (13.10.2020): <span style="color: red; font-weight: bold;"> Kontrolltöö I </span> | ||
+ | * [[Media:ITI0211_Loeng_6_2020.pdf|Loeng 6]] (20.10.2020): Loogiline programmeerimine ja teadmusstruktuurid | ||
+ | * [[Media:ITI0211_Loeng_7_2020_algebra_prg_.pdf|Loeng 7]] (27.10.2020): Hulgateooria ja algebra mõistete kasutamine loogilises programmeerimises | ||
+ | * [[Media:ITI0211_Loeng_8_2020_DCG.pdf|Loeng 8]] (03.11.2020): 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:ITI0211_Loeng_9_2020CLP.pdf|Loeng 9]] (10.11.2020): Kitsendustega loogiline programmeerimine | ||
+ | * [[Media:ITI0021_Loeng_10_2020search.pdf|Loeng 10]] (17.11.2020): Otsingustrateegiate programmeerimine | ||
+ | * [[Media:ITI0021_Loogiline_programmeerimine_Harjutus_2.pdf|Loengu ajal (24.11.2020) harjutus, ettevalmistus kontrolltööks II]] | ||
+ | * Loengu ajal (01.12.2020) <span style="color: red; font-weight: bold;"> Kontrolltöö II </span> | ||
+ | * Loengu ajal (08.12.2020) <span style="color: red; font-weight: bold;"> Järeltööd </span> | ||
+ | * Loengu ajal (15.12.2020): <span style="color: red; font-weight: bold;"> Kabe turniir </span> | ||
+ | |||
+ | <!-- * [[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 2016.pdf|Loeng 3]]: Loogilise programmeerimise keel Prolog | ||
+ | * [[Media:ITI0021_Loeng_3_2015.pdf|Loeng 4]]: Resolutsioon ja unifitseerimine | ||
+ | * [[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 (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:ITI0021_Loeng_6_2016.pdf|Loeng 6]]: Hulgateooria ja algebra mõistete programmeerimine | ||
+ | * [[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> | ||
+ | --> | ||
+ | <!-- * '''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] | ||
+ | * [[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 | ||
+ | ** DCG grammatikareeglid, reeglite Prologi sisekuju | ||
+ | |||
+ | |||
+ | ** 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:ITI0021_Loeng_7.pdf|Loeng 6]]: Hulgateooria ja algebra mõistete programmeerimine Prologis | ||
+ | * Test 2 (29.10.2014): Listioperatsioonide programmeerimine rekursiooni abil | ||
+ | * [[Media:ITI0021_Loeng_9.pdf|Loeng 9]]: Loogikate LA ja CTL interpreteerimine | ||
+ | * [[Media:ITI0021_Lecture_10.pdf|Loeng 10]]: Constraint Logic Programming | ||
+ | * Test 3 (26.11.2014): Loengute 6-9 materjal | ||
+ | * Järeltöö I (03.12.2014) | ||
+ | * Järeltöö II (10.12.2014) | ||
+ | |||
+ | --> | ||
+ | |||
+ | <!-- * Loeng 4: Test 1: Loogilise programmeerimise põhimõisted | ||
+ | * Loogilise programmeerimise andmestruktuurid | ||
+ | * Hulgateooria ja algebra mõistete programmeerimine Prologis | ||
+ | * DCG grammatika reeglid ja loomuliku keele parsimine | ||
+ | * Loeng 9: Listioperatsioonide programmeerimine rekursiooni abil (harjutus Test2-ks) | ||
+ | * Loeng 10: Test 2: Listioperatsioonide programmeerimine rekursiooni abil | ||
+ | * Predikaat- ja temporaalloogika valemite interpreteerimine | ||
+ | * Prologi integreerimine teiste programmeerimiskeelte ja keskkondadega | ||
+ | * Kitsendustega loogiline programmeerimine | ||
+ | * Loeng 14: Test 3: Loengute 6-8,11-13 materjal | ||
+ | * Loeng 15: Testide 1 ja 2 järeltööd | ||
+ | * Loeng 16: Koondjäreltöö * --> | ||
+ | |||
+ | == Videoloengud == | ||
+ | * [https://echo360.org.uk/section/b3cdecb6-ae60-4509-8944-62488629ea1e/public Link videoloengutele] | ||
+ | |||
+ | ==Praktikumid== | ||
+ | Praktikumides kasutame SWI-Prologi [http://www.swi-prolog.org/ SWI-Prolog]. | ||
+ | |||
+ | Eclipse plugin: [http://sewiki.iai.uni-bonn.de/research/pdt/docs/start Prolog Development Tool - PDT]. | ||
+ | * Installeerimise juhend: [http://sewiki.iai.uni-bonn.de/research/pdt/docs/download] | ||
+ | * 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!''' | ||
+ | |||
+ | [[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 '''"iti0211-2019"''' ('''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 ('''PRxx''', kus xx on praktikumi number [00, 01, 02, 03, 04, jen.]). Kaustas peab olema fail nimega '''prax0x.pl''' (kus x on praktikumi number [0, 1, 2, 3, 4, jne.]). Kaustas võib olla ka teisi faile, mis imporditakse prax0x.pl poolt. | ||
+ | |||
+ | * Praktikum 0: Tutvumine loogilise programmeerimise keskkonnaga (PR00) | ||
+ | ** [http://www.swi-prolog.org/ SWI-Prolog] | ||
+ | ** [[Media:ITI0021_Praktikum_1_juhend.pdf|Praktikumi 1 juhend]] | ||
+ | ** Näidismaterjal: [[Media:ITI0021_Praktikum_1.pdf|Objektid ja nende omadused]] | ||
+ | * Praktikum 1: Prologi teadmusbaasi koostamine (PR01) | ||
+ | ** [[Media:ITI0021_Praktikum_2_juhend.pdf|Praktikumi PR01 juhend]] | ||
+ | * Praktikum 2: Rekursioon (PR02) | ||
+ | ** [[Media:ITI0211_Praktikum_PR02_juhend_2019.pdf|Praktikumi PR02 juhend]] | ||
+ | * Praktikum 3: Listid (PR03) | ||
+ | ** [[Media:ITI0211_Praktikum_PR03_juhend_2019.pdf|Praktikumi PR03 juhend]] | ||
+ | * Praktikum 4: Reisi leidmine I (PR04) | ||
+ | ** [[Media:ITI0211_Praktikum_PR04_juhend_2019.pdf|Praktikumi PR04 juhend]] | ||
+ | * Praktikum 5: Reisi leidmine II (PR05) | ||
+ | ** [[Media:ITI0211_Praktikum_PR05_juhend_2019.pdf|Praktikumi PR05 juhend]] | ||
+ | * Praktikum 6&7: Reisi leidmine III (PR06) | ||
+ | ** [[Media:ITI0211_Praktikum_PR06_juhend_2019.pdf|Praktikumi PR06&PR07 juhend]] | ||
+ | * Praktikum 8: Semantiline Võrk (PR08) | ||
+ | ** [[Media:ITI0211_Praktikum_PR08_juhend_2019.pdf|Praktikumi PR08 juhend]] | ||
+ | * Praktikum 9: Grammatika (PR09) | ||
+ | ** [[Media:ITI0211_Praktikum_PR09_juhend_2019.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 4: Rekursioon (PR04) | ||
+ | ** [[Media:ITI0021_Praktikum_PR04_juhend_2018.pdf|Praktikumi PR04 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 5: Listid (PR05) | ||
+ | ** [[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 | ||
+ | ** [[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 PR12: ALEPH algoritm (A Learning Engine for Proposing Hypotheses) | ||
+ | ** [[Media:ITI0021_Praktikum_PR12_juhend_2016.pdf|Praktikumi PR12 juhend]] | ||
+ | |||
+ | |||
+ | * Praktikum 5: Listid | ||
+ | ** [[Media:ITI0021_Praktikum_5_juhend_2015.pdf|Praktikumi 5 juhend]] | ||
+ | |||
+ | |||
+ | |||
+ | * Praktikum 7: Semantilised võrgud ja freimid | ||
+ | ** [[Media:ITI0021_praktikumi_7_juhend_2015.pdf|Praktikumi 7 juhend]] | ||
+ | ** Näidismaterjal: [[Media:ITI_0021_praktikum_7_näited.pl|Klassid ja pärimine]] | ||
+ | *Praktikum 8: DCG grammatika ja loomuliku keele interpreteerimine | ||
+ | ** [[Media:ITI0021_Praktikum_8_juhend_2015.pdf|Praktikumi 8 juhend]] | ||
+ | * Praktikum 9: Faktide hulgal otsingu programmeerimine | ||
+ | ** [[Media:ITI0021_Praktikum_9_juhend_2015.pdf|Praktikumi 9 juhend]] | ||
+ | ** Näidismaterjal: [[Media:ITI0021_Praktikum_9_kabe_2015.pl|Otsing kabe näitel]] | ||
+ | ** Programm [[Media:arbiiter.pl |Arbiiter juhib mängu]] | ||
+ | * Praktikum 10: Tammi programmeerimine | ||
+ | ** Programmeerida Tammi käigud. Kasuta eelmises praktikumis (Praktikumis 9) loodud kabe programmi. | ||
+ | ** Tammi käikude programmeerimise algoritm on toodud kodutöö ülesande kirjelduses. | ||
+ | ** [[Media: Kodutöö_kabe_2013.pdf |Kodutöö tööülesande kirjeldus]] | ||
+ | * Praktikum 11: Tammi programmeerimine | ||
+ | ** Jätkub Tammi programmeerimine (Praktikum 10). Uut ülesannet ei anta. | ||
+ | * Praktikum 12: CTL valemite interpreteerimine | ||
+ | ** [[Media: Praktikum_12_juhend_2015.pdf |"Eventuality" valemid ja Kripke struktuur]] . | ||
+ | * Praktikum 13 (20.11.2015): Iseseisev töö koduülesandega: Kabe programmeerimine | ||
+ | * Praktikum 14 (27.11.2015): Iseseisev töö koduülesandega: Kabe programmeerimine | ||
+ | * Praktikum 15 (03.12.2015): Võimalus kaitsta varasemaid praktikumiülesandeid | ||
+ | * 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 | ||
+ | --> | ||
+ | |||
+ | <!-- | ||
+ | ** Näidismaterjal: [[Media:ITI0021_Praktikum_2.pl|Tea'''Ainekood''': ITI0021<br> | ||
+ | '''Link''': http://courses.cs.ttu.ee/pages/ITI0021<br> | ||
+ | |||
+ | '''Õppejõud''': prof. Jüri Vain<br> | ||
+ | '''Kontakt''': juri.vain ätt ttu.ee, ICT-418, Vastuvõtu aeg: esmaspäeval kl. 16:00 - 17:00 eelneval kokkuleppel e-maili kaudu<br> | ||
+ | |||
+ | |||
+ | <!-- Kursus varasematel aastatel: [[Loogiline programmeerimine (2014)]] [http://vana.cs.ttu.ee/tiki-index.php?page=ITI0020 2013]<br> --> | ||
+ | |||
+ | ==Kodutöö 2019== | ||
+ | * Kodutööks on kabeprogrammi programmeerimine Prologis | ||
+ | * Kood laadida git-i salve: KABE | ||
+ | * Kabe | ||
+ | ** [[Media: Kodutöö_kabe2015.pdf|Tööülesande kirjeldus]] | ||
+ | ** Mängu üldkirjeldus: [https://en.wikipedia.org/wiki/Russian_draughts] | ||
+ | ** Ametlikud võistlusreeglid:[http://fmjd64.org/rules-of-the-game/] | ||
+ | |||
+ | ** Graafiline Arbiiter: | ||
+ | *** [[Media:GraphicArbiter.zip |Arbiiter (Graafiline)]] | ||
+ | |||
+ | ** Programm Arbiiter juhib mängu. | ||
+ | *** Arbiiter UTF-8 kodeeringus:[[Media:arbiiterutf32.zip |Arbiiter (Prolog32)]] | ||
+ | *** Arbiiter UTF-8 kodeeringus:[[Media:arbiiterutf64.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> | ||
+ | --> | ||
+ | Kodutöö esitamise tähtaeg on eelviimane ja viimane praktikum, mil toimub kabeturniir (programmikood panna moodle-sse) | ||
+ | |||
+ | ==Lisamaterjalid== | ||
+ | * [https://www.youtube.com/watch?v=JNMR18Ldbcw Logic Programming in Python] | ||
+ | * [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] | ||
+ | * [https://www.amzistore.com/dcm_bookstore.php Uut lugemist Prologis ja selle rakendustest!] [[Pilt:Näidis.jpg]] | ||
+ | * Tõnu Tamme. Loogilise programmeerimise meetod. Tartu, 2003. [http://dspace.ut.ee/handle/10062/24396 PDF formaadis raamat Tartu Ülikooli digikogus] | ||
+ | * [https://dev.to/matchilling/introduction-to-logic-programming-with-prolog-cdh Mathias Schilling Introduction to logic programming with Prolog ] |
Viimane redaktsioon: 31. august 2021, kell 05:12
Ainekood: ITI0211
Õppeaine maht: 6 EAP
Kontrollivorm: Hindeline arvestus
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 2018
Sügis 2020
- Loeng: (õppejõud prof. Jüri Vain)
- Teisipäeval kl. 12:00 - 13:30 ruumis NRG-131
- Praktikumid: (õppejõud: Evelin Halling)
- Esmaspäeval kl. 08:00-09:30 ICT-401
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)
Loengute slaidid
- NB! 2020. aasta loengute slaididel ja loengukavas võib esineda muudatusi võrreldes 2019. aasta slaididega
- Loeng 1 (01.09.2020): Mis on loogiline programmeerimine?
- Loeng 2 (8.09.2020): Loogilise programmeerimise keel Prolog
- Loeng 3 (15.09.2020): Loogilise programmeerimise andmestruktuurid - listid ja listioperatsioonid
- Loeng 4 (22.09.2020): Loogilise programmeerimise alused
- Loeng 5 (29.09.2020): Loogilise programmi täitmise juhtimine
- Loengu ajal (06.10.2020) harjutus, ettevalmistus kontrolltööks
- Loengu ajal (13.10.2020): Kontrolltöö I
- Loeng 6 (20.10.2020): Loogiline programmeerimine ja teadmusstruktuurid
- Loeng 7 (27.10.2020): Hulgateooria ja algebra mõistete kasutamine loogilises programmeerimises
- Loeng 8 (03.11.2020): DCG grammatika reeglid ja loomuliku keele parsimine (lisamaterjal [1] ja[2])
- Loeng 9 (10.11.2020): Kitsendustega loogiline programmeerimine
- Loeng 10 (17.11.2020): Otsingustrateegiate programmeerimine
- Loengu ajal (24.11.2020) harjutus, ettevalmistus kontrolltööks II
- Loengu ajal (01.12.2020) Kontrolltöö II
- Loengu ajal (08.12.2020) Järeltööd
- Loengu ajal (15.12.2020): Kabe turniir
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 "iti0211-2019" (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 [00, 01, 02, 03, 04, jen.]). Kaustas peab olema fail nimega prax0x.pl (kus x on praktikumi number [0, 1, 2, 3, 4, jne.]). Kaustas võib olla ka teisi faile, mis imporditakse prax0x.pl poolt.
- Praktikum 0: Tutvumine loogilise programmeerimise keskkonnaga (PR00)
- SWI-Prolog
- Praktikumi 1 juhend
- Näidismaterjal: Objektid ja nende omadused
- Praktikum 1: Prologi teadmusbaasi koostamine (PR01)
- Praktikum 2: Rekursioon (PR02)
- Praktikum 3: Listid (PR03)
- Praktikum 4: Reisi leidmine I (PR04)
- Praktikum 5: Reisi leidmine II (PR05)
- Praktikum 6&7: Reisi leidmine III (PR06)
- Praktikum 8: Semantiline Võrk (PR08)
- Praktikum 9: Grammatika (PR09)
- Praktikum 10: Faktide hulgal otsingu programmeerimine (PR10)
- Näidismaterjal: Otsing kabe näitel
- Tuleb implementeerida predikaadid 'vota' ja 'tee_kaik'
Kodutöö 2019
- 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