|
Mål:
Kursen är en grundkurs i datavetenskap och ger kunskaper och färdigheter
i design och konstruktion av program. Kursen baseras på en ingenjörsmässig
syn på programmering och betonar abstraktion som ett generellt och
effektivt sätt för problemlösning och modellering av beräkningsprocesser
och tekniska system.
Påbyggnadskurser:
TDDB 11 Imperativa programspråk, TDDB 28 Programmering - tillämpning
och datastrukturer.
Organisation:
Kursen ges över två perioder och består av 48 timmar föreläsningar
och lektioner och 40 timmar laborationer. Föreläsningar och lektioner
behandlar kursen grundläggande begrepp. Lektioner och laborationer
ger exempel på deras användning. Kursen avslutas med ett mindre
projektarbete. Kursen kräver en stor egen arbetsinsats (hemarbetstid)
utöver den schemalagda undervisningen.
Kursinnehåll:
Handhavande av aktuella datorsystem. Översiktlig introduktion till
datavetenskap. Programspråket SCHEME (en LISP-dialekt): symboler,
uttryck, listor, variabler och omgivningar, procedurer, högre-ordningens
procedurer. Abstraktion: procedurell abstraktion, dataabstraktion, konventionella
gränssnitt och orientering i lingvistisk abstraktion. Iterativa och
rekursiva beräkningsprocesser. Datastrukturer: träd, köer,
tabeller, strömmar. Modellering av objekt och tillstånd. Organisation
och kommunikation i större program: modularitet, datadriven programmering,
objekt-orienterad programmering, funktionell programmering, imperativ programmering,
logikprogrammering. Modeller för interpretering av program: substitutionsmodellen,
omgivningsmodellen. Strategier för interpretering av program: normal-,
applikativ och fördröjd evaluering.
Kurslitteratur:
Abelson, H, Sussman, G, J, Structure and Interpretation of Computer Programs.
MIT Press. Kurskompendium som utges av Institutionen för datavetenskap
(IDA). Referenslitteratur: Aho A, Hopcroft, J, E, Ullman, J, D, Data Structures
and Algorithms , Addison-Wesley, 1987. Haraldsson, A, Programmering i Lisp,
Studentlitteratur 1993. Harel, D, Algorithmics, Addison Wesley, 1992. Goldschlager,
L, Lister, A, Computer Science - A Modern Introduction , 2nd edition, Prentice
Hall, 1988. |