Logikprogrammering
Kursplan, Avancerad nivå, 1DL022
Kursen är avvecklad.
- Kod
- 1DL022
- Utbildningsnivå
- Avancerad nivå
- Huvudområde(n) med fördjupning
- Datavetenskap A1N
- Betygsskala
- Med beröm godkänd (5), Icke utan beröm godkänd (4), Godkänd (3), Underkänd (U)
- Fastställd av
- Teknisk-naturvetenskapliga fakultetsnämnden, 6 november 2007
- Ansvarig institution
- Institutionen för informationsteknologi
Behörighetskrav
120 hp 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, t.ex. 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.