Göm menyn

TDDC66 Datorsystem och programmering

Kursinformation läsåret 2008/2009

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 dels att studenterna ska skaffa sig erfarenheter av att använda datorsystem på ett sådant sätt att laborativ verksamhet i framtida kurser underlättas, dels att studenterna ska bygga upp grundläggande erfarenheter inom programmering. Efter avslutad kurs ska studenterna kunna

  • obehindrat använda de datorsystem för laborativ verksamhet som institutionen tillhandahåller,
  • utforma och implementera enkla algoritmer i ett funktionellt programspråk, samt
  • redogöra för grundläggande begrepp inom programmering med tonvikt på det funktionella programmeringsparadigmet.

2. Innehåll

Kursen består av två huvudsakliga delar, vilket antyds av kursnamnet. Under de första veckorna ges en introduktion till de datorsystem som används på institutionen och studenterna får träna på att använda dessa. Därefter behandlas grundläggande programmering med hjälp av programspråket Lisp. Detta moment fortsätter sedan i kursen TDDC67 Funktionell programmering och Lisp. Kursens två delar beskrivs mer utförligt nedan.

2.1. Datorsystem

I detta delmoment kommer ni att få träning i praktiskt handhavande av de datorsystem som används på IDA. Ni kommer också att få lära er en del om datorns historia och användningsområden. Genom ett par föreläsningar och ett antal laborativa övningar introduceras operativsystemet Unix och hur det används på IDA. Laborationerna är webbaserade och avslutas med en slutuppgift. Som en praktisk tillämpning av datoranvändningen och som förberedelse för programmeringsdelen kommer ni också att få göra ett antal "prova på"-laborationer där ni får testa olika datorspråk.

2.2. Programmering

Denna del av kursen introducerar det funktionella programmeringsparadigmet, som säkert är nytt för de flesta. Där kommer vi att betrakta datorprogram som funktioner, jämförbara med matematiska funktioner, där rekursion är ett centralt begrepp. Vi använder en stor mängd med begrepp från kursen i diskret matematik, t.ex. funktion, relation, mängd, tupel, induktion, träd och graf. Dessa moment ger en datavetenskaplig grund för programmering och andra kurser.

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.

Detta kursmoment fortsätter i kursen TDDC67 Funktionell programmering och Lisp, men redan i denna kurs kommer vi att lägga stor vikt vid 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 (ungefärlig) schemalagd tid.

Period Datorsystem Programmering
1Ht1 (25 aug-10 okt) FÖ: 4 h
LA: 6 h
PP: 6 h
FÖ: 14 h
GU: 6 h
LA: 20 h


4. Examination

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

UPG1 (2 hp) består av obligatoriska uppgifter i datorintroduktion. För att bli godkänd på detta moment krävs följande:

  • till 100% godkänd i det webbaserade kursmaterialet
  • redovisad och godkänd slutuppgift i datorintroduktion
  • samtliga tre prova på-laborationer genomförda och redovisade

LAB1 (2 hp) består av den första delen av laborationsserien i kursmomentet Funktionell programmering och Lisp. För att bli godkänd på detta moment krävs följande:

  • de två första laborationerna i Funktionell programmering och Lisp redovisade och godkända
  • två godkända duggor (genomförs i samband med redovisning av labbar)

Endast betygen U och G ges på kursen.

Laborationsuppgifterna i Funktionell programmering och Lisp ska utföras individuellt. Alla former av samarbete med examinerande uppgifter är förbjudet.


5. Kurslitteratur

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

Haraldsson, Anders & Dalenius, Peter (2008) 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/~TDDC66 och där kan man hitta mer information om de olika delmomenten. Kompletterande information kommer att skickas till kursens e-postlista som har adressen tddc66-ht2008@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: 2008-08-07