TDDB80 Programmering och datorspråk, 13 poäng
/Computer Programming and Languages/

För: C1

Utbildningsområde: Teknik    Ämnesgrupp: Datalogi
Fördjupningsnivå: B

Klassning för datavetenskaplig examen: Datavetenskap

Mål:
Kursen skall ge: - kunskap om grundläggande datavetenskapliga begrepp relaterat till datorspråk i vid bemärkelse, t ex frågespråk, kommandospråk, beskrivningsspråk, inbyggda språk, dokumentspråk och programspråk samt datorspråkens uppbyggnad och användning. - kunskap om begrepp för programspråk, såsom kompilering, interpretering, datatyper, datastrukturer, styrstrukturer, underprogram, parameteröverföring och andra programenheter. - kännedom om formella språks syntax och semantik samt grammatik. - kunskap om den funktionella och imperativa programmeringsparadigmen och orientering om andra paradigmer. - förmåga att formulera algoritmer, iterativa och rekursiva samt förmåga att lösa problem. - färdigheter i funktionell programmering i programspråket Lisp och användandet av ett inkrementellt programmeringssystem, där stor tonvikt läggs på metodik och på ett interaktivt arbetssätt vid programmering och programanvändning. - färdigheter i programmering i imperativa programspråk, i första hand Ada, men även orientering om andra språk. t ex C, Java och Pascal.

Förkunskaper:
Begrepp (mängder, funktioner, relationer, induktion, grafer) från TDDB90 Diskret matematik och logik.

Påbyggnadskurser:
Andra programmeringskurser, t ex TDDA60 Data- och programstrukturer och TDDB34 Objektorienterad utveckling av användbara system.

Organisation:
Kursen ges under tre perioder, som planeras enligt följande: Period 0: Introduktion till aktuella datorsystem Period 1: Arbete med datorspråk till största delen genom grupparbete som resulterar i en inlämningsuppgift och presentation. Allmän introduktion till de funktionella och imperativa programmering med tonvikt på Lisp och den funktionella programmeringen. Period 2: Projektuppgift i Lisp. Imperativ programmering i Ada. Period 3: Projektuppgift i Ada. Översikt programspråk och paradigmer. Inlämningsuppgift.

Kursinnehåll:
- Introduktion till aktuella datorssystem. - Kunskap och kännedom om olika typer av datorspråk, såsom programspråk, frågespråk (t ex SQL för databaser), kommandospråk (t ex Unix) dokumentspråk (olika format för att representera egenskaper i dokument), beskrivningsspråk för layout (t ex HTML för www-sidor), utskriftsspråk (t ex Posts cript), inbyggda språk (t ex Excel i kalkylspråk). Grupparbete med inlämningsuppgift och redovisning. - Formella språks syntax och semantik, grammatik och automater. - Funktionell programmering. Data- och programabstraktion, abstrakta datatyper. Datadriven programmering. - Programspråket Lisp. Grundläggande funktioner för tal, symboler, listor och andra datatyper. Rekursion och högre ordningens funktioner. Makrofunktioner och strukturändrande funktioner. Metodik för interaktiv och inkrementell programutveckling, testnings- och felsökningsmetodik. Laborationer och större projektuppgift. - Programspråksbegrepp med tonvikt på imperativa och kompilerade språk, såsom variabler, datatyper, styrstrukturer, modulariseringsprinciper, exekveringsenheter, organisation av exekveringsssystem ("run time"), parameteröverföring, felhantering. - Programspråket Ada med laborationer och större projektuppgift. - Orientering om programspråken C, C++, Java och Pascal. Översikt av äldre programspråk, ex vis Fortran, Cobol, Algol och Simula.

Kurslitteratur:
SUN systemintroduktion mm, utges av institutionen för datavetenskap Haraldsson, Anders, Programmering i Lisp, Studentlitteratur, 1993 Barnes, J G P, Programming in Ada95, Addison-Wesley, 1995 Sebesta, Concepts of Programming Languages, Benjamin Cummings 1995 Kursmaterial, utges av institutionen för datavetenskap

TEN1Skriftlig tentamen efter period 2, 2 p.
LAB1Laborationskurs med projektuppgift i Lisp, 4 p.
LAB2Laborationskurs med projektuppgift i Ada, 4 p.
UPG1Inlämningsuppgifter, redovisningar och muntliga presentationer, 3 p.

Undervisningsspåk är Svenska.

Engelsk kursplan

Gäller 1999, beslut av utbildningsnämnden november 1998