ID1213 Logikprogrammering, grundkurs 7,5 hp

Logic Programming, Basic Course

OBS!

Informationen nedan baseras på en kursplan som ännu inte har börjat gälla.

En valfri kurs som handlar om programmering i logikprogrammeringsspråket Prolog.

Bakgrunden till logikprogrammering ingår.

  • Utbildningsnivå

    Grundnivå
  • Huvudområde

    Teknik
  • Betygsskala

    A, B, C, D, E, FX, F

Kurstillfällen/kursomgångar

HT19 för programstuderande

HT18 för programstuderande

Lärandemål

Efter godkänd kurs ska studenten kunna

  • beskriva ett problem som logiska påståenden, fakta och regler
  • uttrycka algoritmer som regler i Prolog
  • designa och/eller välja lämpliga datarepresentationer i ett logikprogram
  • använda Prologs mekanismer för att effektivisera sökningen i exekveringen av ett logikprogram

i syfte att

  • behärska logikprogrammering som metod att utveckla programvara.

Kursens huvudsakliga innehåll

Kursen presenterar logik och logikprogrammering för programvaruutveckling. Kursen presenterar algoritmer över listor och träd, och även sökalgoritmer över grafer. Olika mera effektiva datastrukturer, såsom differensstrukturer introduceras. Vi visar hur tekniker från funktionell programmering passar in i logikprogrammeringens ramverk och kan uttryckas i programspråket Prolog. Slutligen presenterar kursen några AI-tillämpningar, som enkla expertsystem, och ger en kort översikt av aktuella metodologiska trender. Under denna kurs kommer studenterna att bekanta sig med teorin och de grundläggande designprinciperna inom logikprogrammering, medan de under senare projektkurser eller till exempel examensarbete, kan praktisera metoderna.

Behörighet

  • Slutförd kurs ID1018 Programmering I eller DD1393 Mjukvarukonstruktion, eller motsvarande. 
  • Slutförd kurs ID1020 eller DD1338 Algoritmer och datastrukturer, eller motsvarande. 
  • Slutförd kurs SF1624 eller IX1303 Algebra och geometri, eller motsvarande.
  • Slutförd kurs SF1610 eller IX1500 Diskret Matematik, eller motsvarande.

Litteratur

Sterling and Shapiro, The Art of Prolog, 2nd ed. MIT Press 1994, eller annan lämplig text.

Examination

  • TEN1 - Tentamen, 7,5, betygsskala: A, B, C, D, E, FX, F

Hemuppgifter kan ge bonuspoäng på tentamen.

Examinator beslutar, i samråd med KTH:s samordnare för funktionsnedsättning (Funka), om eventuell anpassad examination för studenter med dokumenterad, varaktig funktionsnedsättning. Examinator får medge annan examinationsform vid omexamination av enstaka studenter.

Ges av

EECS/Datavetenskap

Kontaktperson

Thomas Sjöland

Examinator

Alf Thomas Sjöland <sjoland@kth.se>

Övrig information

Innehållet sammanfaller med ID2213 som ges på engelska samtidigt. ID2213 innehåller en projektkurs också.

Påbyggnad

En kurs om Artificiell Intelligens. Kurser om formell semantik, logiska metoder inom programvarudesign, t.ex. programanalys eller programverifiering.

Ett projekt baserat på denna kurs kan med fördel genomföras som examensarbete på grundnivå (kandidat, eller högskoleingenjör) eller också på avancerad nivå ("civilingenjörsexjobb" eller "mastersuppsats").

Versionsinformation

Kursplan gäller från och med HT2019.
Examinationsinformation gäller från och med VT2019.