Kursplan för Logikprogrammering

Logic Programming

7.5 högskolepoäng

Kursplan

  • Kurskod: 1DL022
  • Utbildningsnivå: Avancerad nivå
  • Huvudområde(n) och successiv fördjupning: Datavetenskap A1N
  • Betygskala: Underkänd (U), 3, 4, 5.
  • Inrättad: 2007-03-15
  • Inrättad av: Teknisk-naturvetenskapliga fakultetsnämnden
  • Kursplan gäller från: vecka 27, 2007
  • Behörighet: Kandidatexamen med Programmeringsteknik MN1 och MN2, Datastrukturer MN1 och Logik MN1, eller motsvarande kunskaper. Funktionell programmering MN1 och Automatateori rekommenderas.

Mål

För godkänt betyg ska studenten kunna

  • definiera och använda grundläggande koncept i logikprogrammering.
  • manuellt analysera och exekvera enkla logiska program map korrekthet och effektivitet.
  • formulera enkla problem i logik som kan exekveras som logisk program.
  • implementera enkla algoritmer och datastrukturer korrekt i logikprogrammering.
  • använda logikprogrammeringens starka sidor (unifiering, backtracking och grammatik) för att lösa enkla kombinatoriska problem och för att behandla naturligt språk.
  • förklara hur logikprogrammering skiljer sig från andra sätt att programmera.

Det övergripande målet är att bredda studenternas perspektiv på programmering.

Innehåll

Grundläggande koncept: relationer, regler unifiering, rekursion.
Relation mellan logik och logikprogrammering: semantik, sundhet och fullständighet.
Programmering i ett logiskt språk, tex. Prolog.
Kodning av algoritmer och datastrukturer; lösning av sök- och villkorsproblem.
Jämförelser med imperativ, objektorienterad och funktionell programmering.
Grammatikregler.
Implementeringstekniker: (meta)interpretering
och kompilering.
Tillämpningar inom artificiell intelligens: problemlösning och behandling av naturligt språk.

Undervisning

Föreläsningar, gästföreläsningar, lektioner och laborationer.

Examination

Skriftligt prov (6 hp) samt inlämningsuppgifter (1.5 hp). Frivilliga uppgifter kan ge högre betyg.

Litteratur

Gäller från: vecka 27, 2007

Bratko: PROLOG Programming for Artificial Intelligence. 3rd ed. Addison-Wesley, 2001.
Logikprogrammering, kompendium. Institutionen för informationsteknologi.

Referenslitteratur:
L. Sterling&E. Shapiro: The Art of Prolog, 2:nd edition, MITPress, 1994.
R.A. O'Keefe: The Craft of Prolog, MITPress, 1990.