Projektforslag på modul 2 ved Keld Helsgaun

13
1 Projektforslag på modul 2 ved Keld Helsgaun

description

Projektforslag på modul 2 ved Keld Helsgaun. Gå bag kulisserne. Fagligt indhold. Projekt- og kursusarbejdet skal give de studerende indsigt i følgende emnekredse:. Teknologi:. (edb-teknologi). Datamaskinens opbygning Basisprogrammel Programmeringssprog - PowerPoint PPT Presentation

Transcript of Projektforslag på modul 2 ved Keld Helsgaun

Page 1: Projektforslag på modul 2 ved  Keld Helsgaun

1

Projektforslag på modul 2ved

Keld Helsgaun

Page 2: Projektforslag på modul 2 ved  Keld Helsgaun

2

Fagligt indhold

Projekt- og kursusarbejdet skal give de studerende indsigt i følgende emnekredse:

Gå bag kulisserne

• Datamaskinens opbygning• Basisprogrammel• Programmeringssprog• Datamatbaserede værktøjer• Teoretiske modeller for datamaskiner og

beregninger

• Maskinnære sprog • Paradigmer for højniveausprog• Syntaks og semantik for programmeringssprog

Teknologi:

Sprog: (formaliserede sprog)

(edb-teknologi)

Page 3: Projektforslag på modul 2 ved  Keld Helsgaun

3

NESL - et sprog til

parallelprogrammering

• udviklet ved Carnegie Mellon (USA)

• tilbyder parallelle operationer på data

• programmer i sproget er lette at forstå og bevise (velegnet som undervisningssprog)

Eksempel (Quicksort):

function Quicksort(S) =

if (#S <= 1) then S

else

let a = S[rand(#S)];

S1 = {e in S | e < a};

S2 = {e in S | e = a};

S3 = {e in S | e > a};

R = {Quicksort(v): v in [S1,S3]};

in R[0] ++ S2 ++ R[1] $

Page 4: Projektforslag på modul 2 ved  Keld Helsgaun

4

Projektideer

NESL-programmer er flytbare, idet de oversættes til en mellemkode kaldet VCODE.

Mulige projekter:

En oversætter til NESL

En VCODE-fortolker

Animering af programkørsel

Evaluering af NESL

Page 5: Projektforslag på modul 2 ved  Keld Helsgaun

5

Grænseflader imellem sprog- anvendelse af Javas ”native

interface”

Javas ”native interface” benyttes, når

(1)Java ikke understøtter platformsafhængige faciliteter,

(2) eksisterende programmel skrevet i andre sprog end Java, ønskes benyttet i et Java- program,

(3) størst mulig effektivitet er ønskelig.

Projektide:effektiv quicksortering i Java-programmer.

Page 6: Projektforslag på modul 2 ved  Keld Helsgaun

6

Billedkomprimering

Motivation: minimering af transporttiden ved overførsel af billeder på datanetværk.

Metode (fraktal billedkomprimering): et billede lagres som en samling af simple transformationer. Kunsten er at bestemme samlingen af transformationer.

Projekttide: udvikling af en programpakke til fraktal billedanalyse.

wi =ab

cd

⎝ ⎜

⎠ ⎟

x

y

⎝ ⎜

⎠ ⎟ +

e

f

⎝ ⎜

⎠ ⎟

Page 7: Projektforslag på modul 2 ved  Keld Helsgaun

7

Ekspertsystemer

Et ekspertsystem er et program, der anvender sig af specifik viden inden for et givet område for derved at opnå en kompetence, der kan sidestilles med en eksperts.

En ekspertsystemskal er programmel, der kan benyttes til at udvikle ekspertsystemer.

Projektide:implementering og afprøvning af en ekspertsystemskal.

Page 8: Projektforslag på modul 2 ved  Keld Helsgaun

8

Arkitekturen af et ekspertsystem

Brugergrænseflade

InferensmaskineForklaringsdel Videnbase-editor

Videnbase

Bruger

Ekspertsystem

Ekspertsystemskal

Page 9: Projektforslag på modul 2 ved  Keld Helsgaun

9

Automatisk bevisførelse

Megen viden kan formuleres i den såkaldte første-ordens prædikatlogik.

Eks.menneske(Socrates)

x: menneske(x) fi dødelig(x)

Heraf kan sluttesdødelig(Sokrates)

Projektide: Udvikling af et program til automatisk bevisførelse.

Page 10: Projektforslag på modul 2 ved  Keld Helsgaun

10

Databaseteknologi

I mangle anvendelser ønskes søgning på flere nøgler samtidigt.

Eks.Find alle personer i en database, der hedder Jensen, og som er mellem 20 og 25 år.

I eksemplet her er der både tale om flernøgle-søgning og om intervalsøgning.

Effektiv søgning kræver specielle datastrukturer.

Page 11: Projektforslag på modul 2 ved  Keld Helsgaun

11

Projektide

Udvikling af et databasesystem til fler-nøglesøgning, f.eks. baseret på en af nedenstående datastrukturer:

BD-træer

KD-træer

Quad-træer

BP-træer

Flerdimensionel hashing

Fraktionelle kaskader

Page 12: Projektforslag på modul 2 ved  Keld Helsgaun

12

Funktionsorienteret programmering

I et funktionsorienteret sprog udgør funktioner de centrale byggeklodser.

En funktion kan have funktioner som argumenter, og værdien af en funktion kan være en ny funktion.

Et meget anvendt funktionsorienteret sprog er Lisp.

Projektide: udvikling af en oversætter og fortolker i Java for sproget Lisp.

Page 13: Projektforslag på modul 2 ved  Keld Helsgaun

13

Simulering af en maskine

Projektideer:

Udvikling af en simulator for Javas virtuelle maskine

Udvikling af en simulator for MIX

X EQU 1000ORIG 3000

MAXIMUM STJ EXITINT ENT3 0,1

JMP CHANGEMEMLOOP CMPA X,3

JGE *+3CHANGEMEM ENT2 0,3

LDA X,3DEC3 1JSP LOOP

EXIT JMP *