130 likes | 239 Views
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
E N D
Gå bag kulisserne Fagligt indhold Projekt- og kursusarbejdet skal give de studerende indsigt i følgende emnekredse: Teknologi: (edb-teknologi) • 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 Sprog: (formaliserede sprog)
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] $
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
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.
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.
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.
Bruger Ekspertsystemskal Brugergrænseflade Videnbase-editor Forklaringsdel Inferensmaskine Videnbase Ekspertsystem Arkitekturen af et ekspertsystem
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 sluttes dødelig(Sokrates) • Projektide: Udvikling af et program til automatisk bevisførelse.
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.
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
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.
X EQU 1000 ORIG 3000 MAXIMUM STJ EXIT INT ENT3 0,1 JMP CHANGEMEM LOOP CMPA X,3 JGE *+3 CHANGEMEM ENT2 0,3 LDA X,3 DEC3 1 JSP LOOP EXIT JMP * Simulering af en maskine • Projektideer: Udvikling af en simulator for Javas virtuelle maskine • Udvikling af en simulator for MIX