2D1350, Programmeringsparadigm, 4 poäng

Läsperiod 1 (ca 3.2 p) och läsperiod 2 (ca 0.8 p) hösten 2003


Förändras fortlöpande.

OBS! Den som har labbar kvar från tidigare kursomgånar kan redovisa dem på måndag den 6 september 2004 13-15 i Spelsalen.

Kursenkät:

Tryck här för att hämta kursenkäten:

Kursanalys (pdf) (ps)

Tentamen mån 23 aug 08-13 V21.

Tillåtna hjälpmedel: Fokker : Functional programming Brna : Prolog Programming

Kursen fortsätter i läsperiod 2 med tre föreläsningar och labbar

om C-programmering (Alexander Baltatzis lärare)

och internetprogrammering (Björn Eiderbäck lärare).

Hederskodex för nada-kurser

Studiehandbokstexten på svenska och engelska .

Lärare: Leif Kusoffsky lky@nada.kth.se

Kursbunt (med bland annat kursböckerna) : (finns till försäljning på Nadas studieexpedition).

Övrigt tryckt material (för särskilt intresserade) : Extra material som jag kan trycka upp om intresse finns.l

Laborationer : (preliminärt, mer info på föreläsningarna,):

Tentamina :

Skriftlig efter läsperiod 1. Torsdag 23 oktober 08-13.

Tillåtna hjälpmedel: Fokker : Functional programming Brna : Prolog Programming

Tentamen 2002 oktober med preliminära svar : (pdf) (ps)

Tentamen 2003 januari med preliminära svar : (pdf) (ps)

Tentamen 2003 augusti med preliminära svar : (pdf) (ps)

Tentamen 2003 oktober med preliminära svar : (pdf) (ps)

Tentamen 2004 januari med preliminära svar :(pdf) (ps)

Tentamen 2004 augusti med preliminära svar :(pdf) (ps)

Slutbetyg grundat på tenatamen. Betygsgänser för betyg 4 och 5

påverkas eventuellt av om man gjort hela schacklabben.

Kursdelarna i läsperiod 2 examineras med labbarna.

OBSERVERA : Man behöver bara göra t o m steg 7 i schack-labben för godkänt labmoment.

Den som gör steg 8 och steg 9 får betydligt lägre betygsgänser för betyg 4 och 5 på tentan..

Föresläsningar:

Sept 02 tisdag F1 12.00 : Introduktion till kursen. Paradigm allmänt, Imperativ och OO-programmering(pdf) (ps)

Sept 04 torsdag : Funktionell programmering och elementär Haskell. (pdf) (ps)

Sept 09 tisdag: Definition av datatyper i Haskell (OBS! Material i labhäftet). Inför steg 1 och 2 i Schacklabben.(pdf) (ps)

Sept 11 torsdag: Resterande material från föreläsning 3. Listprogrammering, tupler mm.Högre ordningens funktioner. (pdf) (ps)

Sept 16 tisdag : Resterande material från föreläsningshäfte 4. Bilder i Haskell, inför steg 3 och 4.(från Labhäftet)

Sept 18 torsdag: Inför steg 5,6,7,8,9 och IO-programmering (från Labhäftet). Ändliga automater. Övningar. (pdf) (ps)

Sept 23 tisdag : Mer tips om labben. Lat evaluering, typklasser, Haskell och C. Inför Tentan.(pdf) (ps)

Sept 24 onsdag : Lat evaluering exempel.Programspråks- och paradigmhistorik. Introduktion till Prolog(pdf) (ps)

Sept 29 måndag: Procedurell läsning Prolog. Byrd Box.. Unifiering och rekursion.Lab släktrelationer.(pdf) (ps)

Okt 01 onsdag : Datastrukturer, listor. Lab listprogram, pargenerering.Append.. (pdf) (ps)

Okt 06 måndag: Ackumulering, prologtillämpningar. Negering, icke-logiska saker.Eliza. Lab stabila äktenskap.(pdf) (ps)

Okt 08 onsdag : Programvaruteknik och paradigmer. OO kontra klassik imperativ teknik. Anagram, sortering, schackproblem i Prolog och Haskell. (pdf) (ps)

Okt 14 tisdag : Repetition, inför tentan, gamla tentor.

Färdiga program: Många av kursledarens program från föreläsningarna kommer att finnas på /info/progp03/ eller

på /info/progp02/

Haskell på nätet: Startsida för material om Haskell på nätet och emacs för Haskell samt downlodading hugs and SOE (graphics). Interpretern hugs . Kompilator och interpreter ghc . Haskellsystem med Tcl/Tk htk .

Sictus Prolog på nätet: Startsida för Sictus prolog Härifrån kan du bland annat komma åt manualen för sictus-systemet och användbara länkar för Prolog i allmänhet. Krånglar Netscape, använd Mozilla.

Böcker om funktionell programmering (OBS, ej obligatorisk kurslitteratur, för extra intresserade):

Böcker om logik programmering (OBS, ej obligatorisk kurslitteratur, för extra intresserade) :

Bok om paradigmer (OBS, ej obligatorisk kurslitteratur, för extra intresserade) :


C-delen

Litteratur

Det finns ett C-häfte att köpa i expeditionen som täcker denna del av kursen. En klassisk välskriven bok är "The C Programming Language" av Brian W. Kernighan, Dennis Ritchie. Denna bok fanns i svensk översättning på bokrean förra året.

Föreläsningar

Två föreläsningar har getts som introduktion till språket. Inga föreläsningsanteckningar läggs upp på nätet, vill ni läsa på egen hand så täcker C-häftet allt material. På sista föreläsningen glömde jag gå igenom funktionspekare. Man kan skicka funktionspekare i C och det görs i labben. Ni lär ha fått öva på att skicka funktionspekare i Haskell :)

Att jobba hemma

Linuxanvändare har redan det material de behöver. PC-användare kan installera cygwin som även finns på KTH-CD.

Examination

Denna del av kursen redovisas med en laboration som ska redovisas för handledare i labsal. Programmet är ett enkelt terminalbaserat menysystem som ett typiskt exempel på imperativ programmering.

C-programmet innehåller minneshantering och pekarhantering. Förutom C-programmeringen krävs att man till viss del sätter sig in i preprocessorn och byggandet (make) samt att man kan läsa man-sidor.

En del elever kan behöva skriva module add gcc för att få tillgång till C-kompilatorn.

Här är labben

Redovisa labben i tid senast 6/11.