TDDC66 Datorsystem och programmering
Kursinformation läsåret 2009/2010
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 (26 aug-13 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 ska utföras individuellt. Alla former av samarbete med examinerande uppgifter är förbjudet och kan leda till avstängning. Se även IDA:s standardregler för labbar längst ner på sidan.
5. Kurslitteratur
Haraldsson, Anders (1993) Programmering i Lisp. Studentlitteratur. ISBN 91-44-39631-7.
Haraldsson, Anders & Dalenius, Peter (2009) Kursmaterial i Funktionell programmering och Lisp. BOKAB.
6. Personal
Följande personer utgör kursens administrativa ledning:
- Peter Dalenius, univ.adj., telefon 281427, e-post petda@ida.liu.se
Examinator, föreläsare datorsystem - Anders Haraldsson, bitr. professor, telefon 281403, e-post andha@ida.liu.se
Föreläsare programmering
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-ht2009@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.
8. IDA:s allmänna regler för laborationer
Regler för examinering av datorlaborationer vid IDA
Datorlaborationer görs i grupp eller individuellt, enligt de instruktioner som ges för en kurs. Examinationen är dock alltid individuell.
Det är inte tillåtet att lämna in lösningar som har kopierats från andra studenter, eller från annat håll, även om modifieringar har gjorts. Om otillåten kopiering eller annan form av fusk misstänks, är läraren skyldig att göra en anmälan till universitetets disciplinnämnd.
Du ska kunna redogöra för detaljer i koden för ett program. Det kan också tänkas att du får förklara varför du har valt en viss lösning. Detta gäller alla i en grupp.
Om du förutser att du inte hinner redovisa i tid, ska du kontakta din lärare. Då kan du få stöd och hjälp och eventuellt kan tidpunkten för redovisningen senareläggas. Det är alltid bättre att diskutera problem än att, t.ex., fuska.
Om du inte följer universitetets och en kurs' examinationsregler, utan försöker fuska, t.ex. plagiera eller använda otillåtna hjälpmedel, kan detta resultera i en anmälan till universitetets disciplinnämnd. Konsekvenserna av ett beslut om fusk kan bli varning eller avstängning från studierna.
Policy för redovisning av datorlaborationer vid IDA
För alla IDA-kurser som har datorlaborationer gäller generellt att det finns en bestämd sista tidpunkt, deadline, för inlämning av laborationer. Denna deadline kan vara under kursens gång eller vid dess slut. Om redovisning inte sker i tid måste, den eventuellt nya, laborationsserien göras om nästa gång kursen ges.
Om en kurs avviker från denna policy, ska information om detta ges på kursens webbsidor.
Sidansvarig: Peter Dalenius
Senast uppdaterad: 2009-06-25
