Loogiline programmeerimine (ITI0211)
PÕHIANDMED
õppeaine register
A - põhiregister
õppeaine kood
ITI0211
õppeaine nimetus eesti k
Loogiline programmeerimine
õppeaine nimetus inglise k
Logical Programming
õppeaine maht AP
-
õppeaine maht EAP
6.00
deklareeritav
jah
õppeaine täies mahus läbitav e-õppes
ei
kontrollivorm
hindeline arvestus
õpetamise semester
sügis
õppekeel
eesti keel
inglise keel
Õppekavad, millesse aine kuulub
kavaversiooni kood
aine kohustuslik
IACM23/25
ei
IAIB25/25
ei
IAPM02/25
ei
Ainet õpetavad struktuuriüksused
IT - tarkvarateaduse instituut
Ainekaardi link
Tunniplaani link
Vaata tunniplaani
Versioon:
VERSIOONIPÕHISED ANDMED
õppeaine eesmärgid eesti k
Anda teoreetilised alusteadmised loogikas ja tugevad praktilised oskused keerukate ülesannete spetsifitseerimiseks ja kodeerimiseks loogiliste programmidena keeles Prolog.
õppeaine eesmärgid inglise k
To provide theoretical foundations and strong practical skills for specifying and solving complex real life problems using logic programming language Prolog.
õppeaine õpiväljundid eesti k.
Aine läbinud tudeng:
1. Omandab oskuse formaliseerida erinevaid eluvaldkondi ja nendega seotud programmeerimise probleeme predikaatloogikas
2. Oskab kasutada loogika tõestusvõtteid nagu resolutsioon, unifitseerimine, termide teisendused ja rekursioon.
3. Suudab vabalt programmeerida loogilise programmeerimise keeles Prolog.
4. Praktikumi ülesannete lahendamise tulemusena oskab näha ja kasutada loogilise programmeerimise eeliseid ja piiranguid võrreldes teiste programmeerimise paradigmadega.
5. Suudab programmeerida ekspertsüsteemi otsustusreegleid, lahendada keerukaid tehisintellekti ja kitsenduste programmeerimisega seotud planeerimisülesandeid.
6. Oskab integreerida loogilisi programme semantilise veebi ja kõrgtaseme programmeerimiskeeltega nagu C++, Python ja Java.
õppeaine õpiväljundid ingl k.
Upon completion a student have:
1. Capability of formalizing different domains related knowledge and programming problems in predicate logic.
2. Capability of using methods of logic reasoning such as resolution, unification, term rewriting and recursion.
3. Capability of programming freely in logic programming (LP) language Prolog.
4. As a results of solving lab assignments student learns realizing the advantages and limits of LP comparing to other programming paradigms.
5. Capability of programming decision rules for expert systems, rules for solving AI, constraint programming and planning problems.
6. Capability of integrating Prolog programs with semantic web and other high-level programming languages such as C++, Python, and Java.
õppeaine sisu lühikirjeldus eesti k
LP kursus koosneb kolmest moodulist: 1. LP teoreetilised alused, 2. Programmeerimine keeles Prolog ja 3. Tehisintellekti rakenduste programmeerimine Prologis. Kursus algab LP keele Prolog tutvustusega, mis on vajalik praktikumide läbiviimiseks. Sellele järgneb 1. moodul, milles käsitleme LP aluseid sh. lause- ja predikaatloogikat ning loogika tõestustehnikat, mis põhineb resolutsioonil ja terminde unifitseerimisel. Moodulis 2 õpime tundma LP süvatehnikaid ja nende kasutamist listitöötluses, klasside pärimismehhanismi kasutamist freimides ning otsingu ja tagasivõtu tehnikate kasutamist suurte teadmusbaasides otsingute kiirendamiseks. Moodulis 3 õpime tundma LP laiendusi ja nende rakendamist temporaal loogika valemite interpreteerimisel, induktiivset ja kitsendustega LPst, samuti loomuliku keele lausete süntaktilist analüüsi DCG grammatika reeglitega.
Õpitu kinnistamiseks on iseseisev kodutöö, milleks on kabe programmeerimine. Loodav programm peab kasutama kursuses õpitud planeerimisstrateegiaid. Kursuse läbinu omandab lisaks korralikule programmeerimisoskusele veel teadmised ekspertsüsteemi reeglite programmeerimisest, tehisintellekti ja automaatse loogilise tõestamise meetoditest ning formaalmeetoditest.
õppeaine sisu lühikirjeldus ingl k
LP course consists of 3 modules: 1. foundations of LP, 2. programming in Prolog, and 3. programming AI applications in Prolog. We will begin by learning the basics of programming in Prolog, the most popular logic programming language. This is sufficient to start with programming first lab assignments. Subsequently, we will start with module 1 by providing the foundations of LP: propositional and predicate calculi, proof technique that uses resolution and unification. Then the module 2 introduces advanced logic programming techniques as well as their applications for list processing, using inheritance of classes and frames, but also back tracking and search mechanisms for large knowledge bases. In module 3 we study the extensions of LP such as interpretations of temporal logics, inductive logic programming and constraint logic programming, also natural language processing using definite clause grammars (DCG). We will also do a project developing a checkers program that is capable of applying smart search strategies. The project will be a major part of the course. If you do all the assignments, and attend all classes, you should be a reasonably proficient Prolog/Constraint programmer by the end of the course. You will have a good understanding of expert system programming as well. Learning logic programming has a number of advantages: you will develop a better understanding of computer science and improve your programming as well as problem solving skills. You will also develop a better background for learning AI and automated reasoning techniques as well as formal methods in software engineering. Students also develop a better appreciation for logic, the basis of all of computer science.
hindamisviis eesti k
-
hindamisviis ingl k
-
iseseisev töö eesti k
12 praktikumi ülesannet – programmeerimine keeles Prolog; 1 kodutöö – mahukam programmeerimise ülesanne (n mängustrateegia programmeerimine); tutvumine loengu lisamaterjaliga
iseseisev töö ingl k
12 lab assignments – programming in Prolog; 1 home assignment -more extensive programming task, e.g. programming a strategy game; learning materials that extend the lecture notes.
õppekirjandus
Aine koduleht: https://courses.cs.ttu.ee/pages/Loogiline_programmeerimine
Kursus Moodle`s: https://moodle.taltech.ee/
1. Patrick Blackburn, Johan Bos, Kristina Striegnitz. Learn Prolog Now! (Texts in Computing, Vol. 7) Paperback – June 15, 2006.
2. Clocksin, William F.; Mellish, Christopher S. (2003). Programming in Prolog. Berlin ; New York: Springer-Verlag. ISBN 978-3-540-00678-7.
3. Wielemaker, J.; Huang, Z.; Van Der Meij, L. (2008). "SWI-Prolog and the web". Theory and Practice of Logic Programming. 8 (3): 363.
4. http://www.learnprolognow.org/lpnpage.php?pageid=online
õppevormid ja mahud
päevaõpe: nädalatunnid
4.0
sessioonõppe töömahud (semestris):
loenguid
2.0
loenguid
-
praktikume
2.0
praktikume
-
harjutusi
0.0
harjutusi
-
vastutav õppejõud
-
ÕPPEJÕU AINEKAVA INFO
õppetöö semester
õpetav õppejõud / üksus
õppetöö keel
Laiendatud ainekava
2025/2026 sügis
Jüri Vain, IT - tarkvarateaduse instituut
eesti keel
    kuva rohkem
    2024/2025 sügis
    Jüri Vain, IT - tarkvarateaduse instituut
    eesti keel
      2023/2024 sügis
      Jüri Vain, IT - tarkvarateaduse instituut
      eesti keel
        2022/2023 sügis
        Jüri Vain, IT - tarkvarateaduse instituut
        eesti keel
          2021/2022 sügis
          Jüri Vain, IT - tarkvarateaduse instituut
          eesti keel
            Hindamiskriteeriumid2019est.pdf 
            2020/2021 sügis
            Jüri Vain, IT - tarkvarateaduse instituut
            eesti keel
              Hindamiskriteeriumid2019est.pdf 
              2019/2020 sügis
              Jüri Vain, IT - tarkvarateaduse instituut
              eesti keel
                Hindamiskriteeriumid2019est.pdf 
                Ainekaart eesti keeles
                Ainekaart inglise keeles