DPI453 PROLOG un loģiskā programmēšana

Kods DPI453
Nosaukums PROLOG un loģiskā programmēšana
Statuss Obligātais/Ierobežotās izvēles
Līmenis un tips Augstākā līmeņa, Profesionālais
Tematiskā joma Datorika
Struktūrvienība Datorzinātnes, informācijas tehnoloģijas un enerģētikas fakultāte
Mācībspēks Pāvels Rusakovs
Kredītpunkti 3.0 (4.5 ECTS)
Daļas 1
Anotācija Studiju kursā tiek aplūkoti loģiskās programmēšanas principi. Tiek sniegta informācija par Prolog programmēšanas valodu, tās attīstību un diviem populāriem dialektiem – Turbo Prolog un SWI Prolog. Tiek apskatīti dažādi Prolog teikumi: fakti, likumi, jautājumi. Tiek parādītas koka apstrāde un pārmeklēšanas kontrole ar atciršanām. Tiek izskatīti vairāki sarakstu veidošanas un apstrādes jautājumi. Tiek apgaismots darbs ar dažādiem failiem, tajā skaitā teksta failiem ar faktiem un binārajām ķēdītēm. Uzmanība tiek pievērsta sintaktiskajām un loģiskajām atšķirībām starp Turbo Prolog un SWI Prolog. Tiek aplūkota vairākpavedienošana SWI Prolog ietvaros. Analizēta Prolog lietošana ekspertsistēmās, semantiskajos tīklos, grafu apstrādē, kombinatorikā. Daļēji salīdzināti loģiskā un funkcionālā programmēšana. Laboratorijas darbos studentiem jādemonstrē apgūtās teorētiskās zināšanas un jāapgūst programmēšanas prasmes..
Studiju kursa saturs
Saturs Pilna un nepilna laika klātienes studijas Nepilna laika neklātienes studijas
Kontaktstundas Patstāvīgais darbs Kontaktstundas Patstāvīgais darbs
Ekspertsistēmu struktūra. Produkciju likumi ( If - Then). Procedurālās un neprocedurālās valodas. 2 2 0 0
Mainīgie un konstantes. Programmas struktūra. Vienkāršas Prolog programmas. Datu tipu klasifikācija Prolog valodā. 2 2 0 0
Ģenealoģiskā koka apstrāde ar rekursijas palīdzību. Predikātu uzrakstīšana radinieku meklēšanai. Laboratorijas darbs. 2 0 0 0
Struktūras, to grafiskā un loģiskā interpretācija. Struktūru apstrāde. Elementārā aritmētika. Nosacījumu programmēšana. 2 2 0 0
Sarakstu radīšana. Saraksti kā viens no Prolog būtiskiem mehānismiem. Sarakstu galva un aste. Tukšie saraksti. 2 2 0 0
Aritmētisko funkciju programmēšana ar rekursijas palīdzību. Laboratorijas darbs. 2 0 0 0
Operācijas ar sarakstiem: elementa meklēšana, jauna elementa pievienošana, elementa izslēgšana. Sarakstu konkatenācija. 2 2 0 0
Pārmeklēšanas stratēģija Prolog valodā. Pārmeklēšanas vadība. Atciršanu lietošana programmas optimizācijai. 2 2 0 0
Sarakstu apstrāde. Aritmētiskie uzdevumi uz sarakstu pamata. Laboratorijas darbs. 2 0 0 0
Atciršanu formalizēšana: vispārināts gadījums. Iepriekš apskatītu piemēru optimizācija ar atciršanu palīdzību. 2 2 0 0
Noliegšana kā neveiksme. Predikāts fail. Atciršanas un noliegšana. Predikāta not radīšana. 2 2 0 0
Sarakstu apstrāde. Kombinatoriskie uzdevumi uz sarakstu pamata. Laboratorijas darbs. 2 0 0 0
Atciršanu lietošanas priekšrocības un trūkumi. Atciršanu veidi. Atciršanas un deklaratīvais programmas stils. 2 2 0 0
Fakti un saraksti. Datu apvienošana sarakstos (predikāts findall ). Teksta virknes. Bāzes operācijas ar teksta virknēm. 2 3 0 0
Teksta virkņu apstrāde. Laboratorijas darbs. 2 0 0 0
Datnes. Datņu apstrāde. Operētājsistēmas funkcijas darbam ar datnēm. Bāzes operācijas ar datnēm. 2 3 0 0
Dinamiskie fakti datu bāzēs. Faktu pievienošana un dzēšana. Predikāti assert, asserta, assertz, retract, retractall. 2 2 0 0
Datņu apstrāde. Tiešā un secīga piekļuve. Laboratorijas darbs. 2 0 0 0
Informācijas sistēmas programmēšana Prolog valodā. Dinamisko faktu lietošana informācijas sistēmā. 2 5 0 0
Termu ķēdītes. Ķēdīšu radīšana un apstrāde. Darbs ar ķēdītēm kā ar divkāršs saistītiem sarakstiem. 2 4 0 0
Deduktīvo datu bāzu imitēšana. Laboratorijas darbs. 2 0 0 0
B+ koki un termu ķēdītes. Ķēdīšu apstrādes paātrināšana ar B+ koku palīdzību. Semantisko tīklu programmēšana. 2 4 0 0
Grafu apstrāde 2 4 0 0
Grafika. Lietotāja saskarne, ekrāna logi. Atšķirības starp Turbo Prolog un SWI Prolog. Ievads Visual Prolog vidē. 4 7 0 0
Termu ķēdīšu apstrāde. Laboratorijas darbs. 2 0 0 0
Vairākpavedienošana un datu aizsardzība no vairākiem pavedieniem 4 6 0 0
Koku deklarācija un apstrāde 4 4 0 0
Kopā: 60 60 0 0
Mērķis un uzdevumi, izteikti
kompetencēs un prasmēs
Studiju kursa mērķis ir apmācīt studenta loģiskās programmēšanas paradigmai. Studiju kursa uzdevumi: 1. Iemācīt lietot vismaz divus Prolog valodas dialektus daudzveidīgo uzdevumu risināšanai, īpaši mākslīgā intelekta uzdevumos; 2. Iemācīt rekursīvi apstrādāt kokveida datu struktūras un grafus; 3. Attīstīt prasmi programmēt ekspertsistēmas un semantiskos tīklus; 4. Iemācīt deduktīvo datubāzu konstruēšanas principus; 5. Veicināt prasmi apstrādāt failus ar faktiem; 6. Veicināt prasmi veidot programmas uz vairākpavedienošanas principiem; 7. Iemācīt saprast funkcionālo un loģisko programmēšanas valodu līdzības un atšķirības.
Sasniedzamie studiju
rezultāti un to vērtēšana
Spēj lietot deklaratīvo pieeju dažādu uzdevumu risināšanai. - Laboratorijas darbu izpilde un aizstāvēšana. Kritēriji: spēj saprast atšķirības starp deklaratīvo un procedurālo pieejām.
Spēj lietot Prolog kombinatoriskajiem uzdevumiem. - Laboratorijas darbu izpilde un aizstāvēšana. Kritēriji: spēj apstrādāt sarakstus un izpildīt pārmeklēšanu.
Spēj lietot Prolog deduktīvo datubāzu radīšanai. - Laboratorijas darbu izpilde un aizstāvēšana. Kritēriji: spēj veidot un apstrādāt deduktīvās datubāzes.
Spēj lietot Prolog grafu un semantisko tīklu apstrādei. - Laboratorijas darbu izpilde un aizstāvēšana. Kritēriji: spēj deklarēt un apstrādāt grafus un semantiskos tīklus.
Spēj orientēties dažādos Prolog dialektos. - Laboratorijas darbu izpilde un aizstāvēšana. Kritēriji: spēj risināt vienu un to pašu uzdevumu dažādos Prolog dialektos.
Spēj spriest par loģiskās programmēšanas lietošanas teorētiskajiem un praktiskajiem aspektiem. - Eksāmena darba rakstīšana. Kritēriji: spēj atbildēt uz teorētiskajiem jautājumiem, rakstīt programmas, vērtēt svešu programmu rezultātus un meklēt kļūdas tajās.
Studiju rezultātu vērtēšanas kritēriji
Laboratorijas darbi - 50%
Eksāmens - 50%
 
Priekšzināšanas Algoritmu konstruēšana, datu struktūras, predikātu loģikas pamati, mākslīgā intelekta pamati
Studiju kursa plānojums
Daļa KP EKPS Stundas Pārbaudījumi
Lekcijas Prakt. d. Lab. Ieskaite Eksāmens Darbs
1 3.0 4.5 2.0 0.0 1.0 *

Pieteikties uz šo kursu

[Kursa apraksts PDF formātā]