Erinevus lehekülje "Loogiline programmeerimine (2015)" redaktsioonide vahel
(ei näidata 2 kasutaja 82 vahepealset redaktsiooni) | |||
9. rida: | 9. rida: | ||
− | ==Sügis | + | ==Sügis 2016== |
* Loeng: Nejapäeval kl. 10:00 - 11:30 ruumis CYB - VEENUS (õppejõud prof. Jüri Vain) | * Loeng: Nejapäeval kl. 10:00 - 11:30 ruumis CYB - VEENUS (õppejõud prof. Jüri Vain) | ||
* Praktikumid: | * Praktikumid: | ||
− | ** Neljapäeval kl. | + | ** IAPB51, IAPB52: Neljapäeval kl. 12:40-14:10 ruumis ICT-401 (õppejõud: prof. Jüri Vain, Sven Nõmm, Evelin Halling) |
− | ** | + | ** IAPB53: Neljapäeval kl. 14:15-15:45 ruumis ICT-401 (õppejõud: prof. Jüri Vain, Sven Nõmm, Evelin Halling) |
+ | <!-- | ||
+ | * '''Praktimumi- ja programmeerimistööde järelkaitsmine''' | ||
+ | ** '''21.01.2016, kell 10.00 Akadeemia tee 15A ruumis ICT-411''' | ||
+ | --> | ||
+ | <!-- | ||
+ | * '''Järeltööd''' | ||
+ | ** '''07.01.2016, kell 14.00 Akadeemia tee 15A ruumis ICT-A1''' | ||
+ | ** '''14.01.2016, kell 14.00 Akadeemia tee 15A ruumis ICT-A1''' | ||
+ | --> | ||
<!-- | <!-- | ||
* '''Eksam''' | * '''Eksam''' | ||
− | ** '''07.01. | + | ** '''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''' | * '''Programmeerimistööde kaitsmine''' | ||
** '''07.01.2015, kell 10.00 - 12.00 Akadeemia tee 15A ruumis ICT-403''' | ** '''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''' | ** '''21.01.2015, kell 10.00 - 12.00 Akadeemia tee 15A ruumis ICT-403''' | ||
--> | --> | ||
− | |||
==Hindamiskriteeriumid== | ==Hindamiskriteeriumid== | ||
30. rida: | 38. rida: | ||
* 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) | ||
− | * Loengu kontrollküsimused (Moodle test): 10 tk - tähtaegselt esitatud ülesanne 1 p, pärast tähtaega 0 p (Kokku max: 10 p) | + | * Loengu kontrollküsimused (Moodle test): 10 tk - tähtaegselt esitatud ülesanne 1 p, pärast tähtaega 0 p (Kokku max: 10 p) -> NB! Ei lähe arvesse veel 2015 sügissemestril. |
* Kodutöö - Kabe programmi programmeerimine - 10 p | * Kodutöö - Kabe programmi programmeerimine - 10 p | ||
** Võimalikud boonuspunktid | ** Võimalikud boonuspunktid | ||
53. rida: | 61. rida: | ||
* [[Media:ITI0021_Loeng 1_2015.pdf|Loeng 1]]: Mis on loogiline programmeerimine? | * [[Media:ITI0021_Loeng 1_2015.pdf|Loeng 1]]: Mis on loogiline programmeerimine? | ||
* [[Media:Loeng_4.pdf|Loeng 2]]:Loogilise programmeerimise keel Prolog | * [[Media:Loeng_4.pdf|Loeng 2]]:Loogilise programmeerimise keel Prolog | ||
− | * [[Media:ITI0021_Loeng_2_2_2015.pdf|Loeng 3.1]]: | + | * [[Media:ITI0021_Loeng_2_1_2015.pdf|Loeng 3.1]]: Loogika alusmõisted: lauseloogika |
+ | * [[Media:ITI0021_Loeng_2_2_2015.pdf|Loeng 3.2]]: Loogika alusmõisted: predikaatloogika | ||
+ | * [[Media:ITI0021_Loeng_3_2015.pdf|Loeng 4]]: Resolutsioon ja unifitseerimine | ||
+ | * [[Media:ITI0021_Loeng_4_2015.pdf|Loeng 5]]: Otsingu juhtimine ja listid (lisamaterjal [http://www.learnprolognow.org/lpnpage.php?pageid=teaching] vt Chapter 10) | ||
+ | * '''Kontrolltöö 1 (13.10.2016):''' Loengute 1-5 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_5_2015.pdf|Loeng 6]]: Teadmiste esitamise andmestruktuurid | ||
+ | * [[Media:ITI0021_Lecture_6_2015.pdf|Loeng 7]]: 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öö 2 (3.11.2016):''' Loengute 5 ja 6 materjalile: Listid, rekursiivsed reeglid listidel | ||
+ | * [[Media:ITI0021_Lecture_10_2015.pdf|Loeng 8]]: Mängu ja otsingustrateegiate programmeerimine | ||
+ | * [[Media:ITI0021_Loeng_11_2015.pdf|Loeng 9]]: Hulgateooria ja algebra mõistete programmeerimine | ||
+ | * [[Media:ITI0021_Loeng_12_l2015.pdf|Loeng 10]]: Loogika valemite interpreteerimine | ||
+ | * '''Kontrolltöö 3 (1.12.2016):''' Loengute 7-10 materjalile | ||
+ | ** Temporaalloogika (CTL) valemite interpreteerimine | ||
+ | ** Algebra ja hulgateooria mõisted | ||
+ | ** DCG grammatikareeglid, reeglite Prologi sisekuju | ||
+ | ** Programmeerimisülesanded: otsingu juhtimine predikaatide repeat, fail ja cut abil (vt. Praktikum 9 juhendit). | ||
+ | * (....12.2016) '''Kontrolltööde 1 ja 2 järeltööd''' | ||
+ | * (....12.2016) '''Kontrolltöö 3 järeltöö''' | ||
<!-- | <!-- | ||
− | * | + | * |
− | |||
− | |||
− | |||
* [[Media:Loeng_5.pdf|Loeng 5]]:Loogilise programmeerimise andmestrutuurid | * [[Media:Loeng_5.pdf|Loeng 5]]:Loogilise programmeerimise andmestrutuurid | ||
* [[Media:ITI0021_Loeng_7.pdf|Loeng 6]]: Hulgateooria ja algebra mõistete programmeerimine Prologis | * [[Media:ITI0021_Loeng_7.pdf|Loeng 6]]: Hulgateooria ja algebra mõistete programmeerimine Prologis | ||
− | |||
* Test 2 (29.10.2014): Listioperatsioonide programmeerimine rekursiooni abil | * Test 2 (29.10.2014): Listioperatsioonide programmeerimine rekursiooni abil | ||
* [[Media:ITI0021_Loeng_9.pdf|Loeng 9]]: Loogikate LA ja CTL interpreteerimine | * [[Media:ITI0021_Loeng_9.pdf|Loeng 9]]: Loogikate LA ja CTL interpreteerimine | ||
107. rida: | 128. rida: | ||
** [[Media:ITI0021_Praktikum_3_juhend_2015.pdf|Praktikumi 3 juhend]] | ** [[Media:ITI0021_Praktikum_3_juhend_2015.pdf|Praktikumi 3 juhend]] | ||
− | + | * Praktikum 4: Rekursioon | |
+ | ** [[Media:ITI0021_Praktikum_4_juhend_2015.pdf|Praktikumi 4 juhend]] | ||
+ | |||
+ | * Praktikum 5: Listid | ||
+ | ** [[Media:ITI0021_Praktikum_5_juhend_2015.pdf|Praktikumi 5 juhend]] | ||
+ | |||
+ | * Praktikum 6: Hulgateoreetilised tehted | ||
+ | ** [[Media:ITI0021_Praktikum_6_juhend_2015.pdf|Praktikumi 6 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 | ||
+ | |||
+ | |||
+ | VANA | ||
+ | |||
** Näidismaterjal: [[Media:ITI0021_Praktikum_2.pl|Teadmusbaas]] | ** Näidismaterjal: [[Media:ITI0021_Praktikum_2.pl|Teadmusbaas]] | ||
* Praktikum 3: Rekursiooni programmeerimine: sügavuti otsing suunatud graafil | * Praktikum 3: Rekursiooni programmeerimine: sügavuti otsing suunatud graafil | ||
132. rida: | 187. rida: | ||
* Praktikum 10: Temporaalloogika valemite interpreteerimine | * Praktikum 10: Temporaalloogika valemite interpreteerimine | ||
** [[Media:ITI0021_Praktikum_10_juhend.pdf|Praktikumi 10 juhend]] | ** [[Media:ITI0021_Praktikum_10_juhend.pdf|Praktikumi 10 juhend]] | ||
− | + | ||
− | + | ||
− | ==Kodutöö | + | |
+ | ==Kodutöö 2015== | ||
* Kodutööks on kabeprogrammi programmeerimine Prologis | * Kodutööks on kabeprogrammi programmeerimine Prologis | ||
* Kabe | * Kabe | ||
− | ** [[Media: | + | ** [[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/] |
+ | |||
+ | ** 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)]] | ||
+ | |||
+ | <!-- | ||
** 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)''' | '''Kodutöö esitamise tähtaeg on eelviimane ja viimane praktikum, mil toimub kabeturniir (programmikood panna moodle-sse)''' |
Viimane redaktsioon: 1. november 2020, kell 21:01
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
Sügis 2016
- Loeng: Nejapäeval kl. 10:00 - 11:30 ruumis CYB - VEENUS (õppejõud prof. Jüri Vain)
- Praktikumid:
- IAPB51, IAPB52: Neljapäeval kl. 12:40-14:10 ruumis ICT-401 (õppejõud: prof. Jüri Vain, Sven Nõmm, Evelin Halling)
- IAPB53: Neljapäeval kl. 14:15-15:45 ruumis ICT-401 (õppejõud: prof. Jüri Vain, Sven Nõmm, Evelin Halling)
Hindamiskriteeriumid
- Hindelise arvestuse eelduseks on praktikumitööde (10 praktikumi), testide (10 testi) 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)
- Loengu kontrollküsimused (Moodle test): 10 tk - tähtaegselt esitatud ülesanne 1 p, pärast tähtaega 0 p (Kokku max: 10 p) -> NB! Ei lähe arvesse veel 2015 sügissemestril.
- Kodutöö - Kabe programmi programmeerimine - 10 p
- Võimalikud boonuspunktid
- Kontrolltööd (3 tk - kokku 70 p)
- Kontrolltöö 1 - põhimõisted 20 p
- Kontrolltöö 2 - rekursiooni programmeerimine 30 p
- Kontrolltöö 3 - teadmiste esitamine Prologis 20 p
- Järeltööd kontrolltöödele 1-3 toimuvad semestri viimaste loengute aegadel.
- 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 I-III koha: I koht +3 punkti; II koht +2 punkti; III koht +1 punkt.
- Testide ja praktikumide jooksvad tulemused asuvad Moodles (ained.ttu.ee)
Loengud
- Loeng 1: Mis on loogiline programmeerimine?
- Loeng 2:Loogilise programmeerimise keel Prolog
- Loeng 3.1: Loogika alusmõisted: lauseloogika
- Loeng 3.2: Loogika alusmõisted: predikaatloogika
- Loeng 4: Resolutsioon ja unifitseerimine
- Loeng 5: Otsingu juhtimine ja listid (lisamaterjal [1] vt Chapter 10)
- Kontrolltöö 1 (13.10.2016): Loengute 1-5 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: Teadmiste esitamise andmestruktuurid
- Loeng 7: DCG grammatika reeglid ja loomuliku keele parsimine (lisamaterjal [2] ja[3]
- Kontrolltöö 2 (3.11.2016): Loengute 5 ja 6 materjalile: Listid, rekursiivsed reeglid listidel
- Loeng 8: Mängu ja otsingustrateegiate programmeerimine
- Loeng 9: Hulgateooria ja algebra mõistete programmeerimine
- Loeng 10: Loogika valemite interpreteerimine
- Kontrolltöö 3 (1.12.2016): Loengute 7-10 materjalile
- Temporaalloogika (CTL) valemite interpreteerimine
- Algebra ja hulgateooria mõisted
- DCG grammatikareeglid, reeglite Prologi sisekuju
- Programmeerimisülesanded: otsingu juhtimine predikaatide repeat, fail ja cut abil (vt. Praktikum 9 juhendit).
- (....12.2016) Kontrolltööde 1 ja 2 järeltööd
- (....12.2016) Kontrolltöö 3 järeltöö
Praktikumid
Praktikumides kasutame SWI-Prologi SWI-Prolog.
Eclipse plugin: Prolog Development Tool - PDT.
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!
Giti juhend Eclipse'is kasutamiseks
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
- Praktikum 2: Prologi teadmusbaasi koostamine
- Praktikum 3: Rekursioon
- Praktikum 4: Rekursioon
- Praktikum 5: Listid
- Praktikum 6: Hulgateoreetilised tehted
- Praktikum 7: Semantilised võrgud ja freimid
- Praktikumi 7 juhend
- Näidismaterjal: Klassid ja pärimine
- Praktikum 8: DCG grammatika ja loomuliku keele interpreteerimine
- Praktikum 9: Faktide hulgal otsingu programmeerimine
- Praktikumi 9 juhend
- Näidismaterjal: Otsing kabe näitel
- Programm 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.
- Kodutöö tööülesande kirjeldus
- Praktikum 11: Tammi programmeerimine
- Jätkub Tammi programmeerimine (Praktikum 10). Uut ülesannet ei anta.
- Praktikum 12: CTL valemite interpreteerimine
- 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
VANA
- Näidismaterjal: Teadmusbaas
- Praktikum 3: Rekursiooni programmeerimine: sügavuti otsing suunatud graafil
- Praktikumi 3 juhend
- Näidismaterjal: Teadmusbaas
- Praktikum 4: Listioperatsioonide programmeerimine
- Praktikumi 4 juhend
- Näidismaterjal: Listid
- Praktikum 5: Klasside hierarhia ja pärismisreeglite programmeerimine
- Praktikumi 5 juhend
- Näidismaterjal: Klassid ja pärimine
- Praktikum 6: Hulgateooria ja algebra mõistete programmeerimine
- Praktikumi 6 juhend
- Näidismaterjal: Hulgad ja relatsioonid
- Praktikum 7: Loomuliku keele parsimine
- Praktikumi 7 juhend
- Näidismaterjal: Parseri näide
- Praktikum 8: Faktide hulgal otsingu programmeerimine
- Praktikumi 8 juhend
- Näidismaterjal: Otsing kabe näitel
- Praktikum 9: Tõeväärtuse leidmine lause- ja predikaatarvutuses
- Praktikumi 9 juhend
- Näidismaterjal: Lausearvutuse solver
- Praktikum 10: Temporaalloogika valemite interpreteerimine
Kodutöö 2015
- Kodutööks on kabeprogrammi programmeerimine Prologis
- Kabe
- Tööülesande kirjeldus
- Mängu üldkirjeldus: [6]
- Ametlikud võistlusreeglid:[7]
- Programm Arbiiter juhib mängu.
- Arbiiter UTF-8 kodeeringus:Arbiiter (Prolog32)
- Arbiiter UTF-8 kodeeringus:Arbiiter (Prolog64)
- Arbiiter turniiriks:Arbiiter (Prolog64)
- Programm Arbiiter juhib mängu.