Göm menyn

TDDC67 Funktionell programmering och Lisp

Kursinformation läsåret 2011/2012


Detta dokument innehåller viktig information om kursen och ska ses som ett förtydligande av den mer officiella kursplanen, både när det gäller övergripande syfte och rent administrativa uppgifter. Det delas ut och kommenteras vid den första föreläsningen. Alla studenter förutsätts därefter vara bekanta med den information som finns i dokumentet.

1. Syfte och mål

Kursens syfte är att studenterna ska utveckla förmåga att formulera och lösa problem med hjälp av programmering. Efter avslutad kurs ska studenterna kunna

  • redogöra för grundläggande datavetenskapliga begrepp relaterade till programmering och programspråk, särskilt funktionella språk,
  • metodiskt lösa programmeringsrelaterade problem i en inkrementell utvecklingsmiljö med hjälp av ett interaktivt arbetssätt med implementering, testning och felsökning,
  • formulera och implementera rekursiva och iterativa algoritmer,
  • konstruera abstraktioner med varierande grad av stöd i det underliggande språket,
  • definiera och genomföra ett mindre programmeringsprojekt.

2. Innehåll

Kursen är en direkt fortsättning på TDDC66 Datorsystem och programmering och förutsätter att studenterna tillgodogjort sig huvuddelen av innehållet i denna kurs. Vi fortsätter här att arbeta med det funktionella programmeringsparadigmet.

Vi använder en delmängd av konstruktionerna i programspråket Lisp och företrädelsevis den grundläggande datatypen lista. Språket ser lite annorlunda ut än de mer vanliga programspråken (Lisp har massor av parenteser), men dess enkelhet gör att vi kan koncentrera oss mer på språkets semantik (hur uttryck beräknas) än detaljer i dess syntax (hur uttryck ser ut). Lisp är ett interpreterat programspråk vilket ger intressanta egenskaper, t.ex. åtkomst av den centrala interpretatorn och möjligheten att skapa och manipulera Lisp-programmen direkt eftersom programkoden är representerade som listor.

Vi kommer tidigt att använda begreppet abstrakta datatyper. Vi lägger stor vikt vid abstraktion i program och data och kommer att trycka mycket på läsbarhet. Program skall inte bara kunna förstås av datorer utan även av andra programmerare än den som skrev det ursprungliga programmet. Naturligtvis lägger vi vikt på korrekthet och till viss del också effektivitet.


3. Omfattning

Nedanstående tabell visar endast schemalagd tid. Dessuutom tillkommer för Lisp-delen schemalagt tid från HT1 i TDDC66 Datorsystem och programmering

Period Omfattning
1Ht1 FÖ: 8 h
GU: 6 h
LA: 10 h
2Ht2 FÖ: 14 h
GU: 4 h
LA: 12 h
PR: 4 h


4. Examination

Kursen består av tre poänggivande moment som examineras enligt nedan.

  • TEN1 (3 hp) består av en skriftlig tentamen som baserar sig på kurslitteraturen, d.v.s. Programmering i Lisp samt laborationskompendiet. Det innbär att även saker som vi tog upp i Lisp-delen av den föregående kursen Datorsystem och programmering kan komma på tentan.
  • LAB1 (3 hp) består av laboration 3, 4, 5 och 6 från laborationskompendiet.
  • UPG1 (2 hp) består av en projektuppgift som genomförs i par.
Betygsättning

I kursen används slutbetygen 3, 4 och 5. Slutbetyget baserar sig i första hand på resultatet på den skriftliga tentamen. Studenter som har betyg 3 eller 4 vid första tentamenstillfället höjer dock sitt slutbetyg med ett steg om samtliga följande punkter är uppfyllda:

  • Laborationerna 3, 4, 5 och 6 är redovisade men ej nödvändigtvis godkända senast i samband med respektive redovisningstillfälle (se schemat). Detta avser alltså de labbtillfällen som markerats med "deadline" i planeringen.
  • Projektarbetet är redovisat senast i samband med det schemalagda redovisningstillfället.
  • Bonusuppgifterna 3B*, 4E*, 5B* och 6E* är redovisade i samband med tillhörande redovisningstillfälle senast vid den deadline som markerats i planeringen.
  • Både laborationsserien (uppgift 3-6) och projektarbetet har av assistenten fått omdömet VG.
  • Samtliga eventuella kompletteringar är godkända och klara senast den dag den ordinarie tentamen ges!

5. Kurslitteratur

Kurslitteraturen är exakt samma som i kursen TDDC66 Datorsystem och programmering.

Haraldsson, Anders (1993) Programmering i Lisp. Studentlitteratur. ISBN 91-44-39631-7.

Haraldsson, Anders & Dalenius, Peter (2010) Kursmaterial i Funktionell programmering och Lisp. BOKAB.


6. Personal

Följande personer utgör kursens administrativa ledning:


7. Information

Kursens webbplats har adressen http://www.ida.liu.se/~TDDC67 och där kan man hitta mer information om de olika delmomenten. Kompletterande information kommer att skickas till kursens e-postlista som har adressen tddc67-ht2011@student.liu.se. Alla studenter som är registrerade är automatiskt med på en av dessa listor.

Alla studenter förväntas läsa sin e-post och besöka kurswebben regelbundet.


Sidansvarig: Peter Dalenius
Senast uppdaterad: 2011-10-12