Loogiline programmeerimine (2015)

Allikas: Kursused
Redaktsioon seisuga 30. detsember 2015, kell 15:11 kasutajalt Vain (arutelu | kaastöö) (→‎Sügis 2015)
Mine navigeerimisribale Mine otsikasti

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 2015

  • Loeng: Nejapäeval kl. 10:00 - 11:30 ruumis CYB - VEENUS (õppejõud prof. Jüri Vain)
  • Praktikumid:
    • Neljapäeval kl. 16:00-17:30 ruumis ICT-401 (õppejõud: prof. Jüri Vain, Gert Kanter) ja ruumis ICT-402 (õppejõud Evelin Halling)
    • Reedel kl. 10:00-11:30 ruumis ICT-401 (õppejõud: Evelin Halling, Gert Kanter)
  • Praktimumi- ja programmeerimistööde järelkaitsmine
    • 05.01.2016, kell 10.00 Akadeemia tee 15A ruumis TBA
  • Järeltööd
    • 07.01.2016, kell 10.00 Akadeemia tee 15A ruumis TBA
    • 14.01.2016, kell 10.00 Akadeemia tee 15A ruumis TBA


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)
  • 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 (8.10.2015): 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 (29.10.2015): 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 (3.12.2015): 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).
  • (10.12.2015) Kontrolltööde 1 ja 2 järeltööd
  • (17.12.2015) Kontrolltöö 3 järeltöö


Praktikumid

Praktikumides kasutame SWI-Prologi SWI-Prolog.

Eclipse plugin: Prolog Development Tool - PDT.

  • Installeerimise juhend: [4]
  • Kasutusjuhend: [5]

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 7: Semantilised võrgud ja freimid
  • Praktikum 8: DCG grammatika ja loomuliku keele interpreteerimine
  • Praktikum 9: Faktide hulgal otsingu programmeerimine
  • 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


Kodutöö 2015


Lisamaterjalid