6. ACM
ACM er en organisation stiftet i USA i 1947. Den organiserer bredt
inden for datalogi og informationsteknologi i den akademiske
verden og softwareindustrien. ACM udgiver videnskabelige
tidsskrifter og organiserer konferencer inden for en lang rkke
omrader af datalogi.
ACM uddeler bl.a. Turing-prisen, der blev indstiftet i 1966. (ACM
ma ikke forveksles med Academy of Country Music, der ogsa uddeler
priser.)
7. A.M. Turing Award
The A.M. Turing Award, the ACM's most prestigious
technical award, is given for major contributions of
lasting importance to computing.
Med ren flger 250.000 amerikanske dollars og invitation til at
give en ACM Turing Award Lecture. Prisen er i vore dage
sponsoreret af Intel og Google.
8. Alan Turing
Alan Turing (1912-1954) var en britisk matematiker, hvis indsats
og resultater har vret helt centrale for den videnskab, vi i dag
kalder for datalogi.
9. Alan Turing
a b a c a b a
q7
Alan Turing introducerede den model for algoritmebegrebet, vi i
dag kalder Turing-maskinen og beviste nogle af de frste (og
vigtigste) resultater i den matematiske teori om beregnelighed.
Bl.a. fandt han det frste eksempel pa et simpelt matematisk
problem, der ikke kan lses med en algoritme.
10. Alan Turing
Alan Turing var en central skikkelse i den britiske
efterretningstjeneste arbejde med kryptanalyse pa det hemmelige
center i Bletchley Park under 2. verdenskrig.
11. Alan Turing
Alan Turing var en central skikkelse i den britiske
efterretningstjeneste arbejde med kryptanalyse pa det hemmelige
center i Bletchley Park under 2. verdenskrig.
12. Alan Turing
Alan Turing var en af hovedmndene bag den frste britiske
computer, udviklet pa universitetet i Manchester.
13. Alan Turing
Alan Turing var en af de frste, der tnkte over om computere
mon kan tnke. Begrebet Turing-testen skyldes ham.
14. Fire af de store sprgsmal, der motiverede Alan Turing
I Hvilke problemer kan man lse med algoritmer?
I Hvordan kan en computer bringes til at udfre en algoritme?
I Kan computere tnke?
I Hvordan kan en computer hjlpe med at holde information
hemmelig?
16. En algoritme er en opskrift
Dadlerne blendes med lidt vand. Peanutbutter og
kakaopulver (anvend kologisk og Fairtrade kakao)
tilsttes, og det blendes med. Kagemassen kommes i et
ildfast fad med bagepapir, trykkes
ade og bages i ca. 15
minutter ved 180 grader. Tag kagen ud og lad den afkle,
sa bliver over
aden sprd, men midten er stadig dejlig
bld. Lad kagen kle helt af inden du skrer den ud i
sma, mundrette stykker.
(http://maanebarnet.org/2014/08/31/chokoladepeanutbutter-fudge-
brownie/)
18. nder det mindste tal i en liste af k tal.
Pa input x1; : : : ; xk
1. i = 1
2. Sa lnge i k
Lad min = x1
Hvis xi min sa lad min = xi
Lad i = i + 1
19. Donald Knuth (1974)
Donald Knuth er en af de store skikkelser inden for det 20.
arhundredes datalogi. Knuth startede som matematiker og
begyndte at interessere sig for programmering, mens han studerede.
20. Donald Knuth (1974)
The Art of Computer Programming er Donald Knuths hovedvrk.
Dette er ikke en bog om programmering, men en bog om
algoritmeteori!
21. Donald Knuth (1974)
Et vigtigt biprodukt af Knuths bger er TEX, som er et program
der gr det nemt at opstte strukturerede tekster, der kan have
matematisk indhold. Jeg bruger det selv hele tiden. Disse slides er
lavet med TEX.
22. Donald Knuth (1974)
Et vigtigt biprodukt af Knuths bger er TEX, som er et program
der gr det nemt at opstte strukturerede tekster, der kan have
matematisk indhold. Jeg bruger det selv hele tiden. Disse slides er
lavet med TEX.
24. nder en fejl i The Art of Computer Programming og
skriver til Knuth, far man en check pa $2,56.
25. Stephen Cook (1982)
Stephen Cook opdagede problemklassen NP og indfrte det vigtige
begreb NP-fuldstndighed. Pa denne made lagde han grunden til
kompleksitetsteori, der er studiet af problemers algoritmiske
svrhed.
26. P og NP
I Klassen P er klassen af beslutningsproblemer, hvor en
algoritme hurtigt kan
27. nde en lsning.
I Klassen NP er klassen af alle de beslutningsproblemer, hvor
en algoritme hurtigt kan undersge om et bud pa en lsning
faktisk er en lsning.
Det er klart at P er en delklasse af NP.
28. Et nemt problem
Aalborg
Sulsted
Dronninglund
Brnderslev Vra
Nrresundby
Er det muligt at rejse med tog fra Brnderslev til Sulsted? Dette
kan man nemt
30. Et NP-fuldstndigt problem
Aalborg
Sulsted
Dronninglund
Brnderslev Vra
Nrresundby
Er der en togrute, der besger hver by prcis en gang? Det ser ud
som om man kun kan fa svaret ved at prve alle de mulige ruter.
Men det er nemt at
31. nde ud af om et forslag til en rute er gyldigt.
32. Et stort abent problem
Togproblemet kaldes ogsa for Hamilton-kreds-problemet og er et af
de svreste problemer i NP. Denne slags problemer kaldes
NP-fuldstndige, og begrebet skyldes Stephen Cook.
Ingen ved om NP = P, men kun fa tror at det er tilfldet. Dette
er et af de store abne problemer i de matematiske fag.
33. Del III
Hvordan kan en computer bringes til at
udfre en algoritme?
34. Hjniveau- og lavniveauprogrammering
Ofte skriver man programmer i et hjniveausprog.
En compiler for et hjniveausprog er et program, der overstter
programtekst skrevet til maskinkode.
35. Hjniveau- og lavniveauprogrammering
Ofte skriver man programmer i et hjniveausprog.
En compiler for et hjniveausprog er et program, der overstter
programtekst skrevet til maskinkode.
36. Programmeringssprogs syntaks
int num;
float value
double bigNum;
bigNum = num + value;
Beskrivelsen af hvordan et program skal se ud for at vre korrekt
opbygget skal de
38. John Backus (1977)
John Backus klarede sig ikke sa godt i skolen, Han prvede at
studere kemi, men det gik ikke rigtig. Sa gav han sig til at studere
matematik. Nogle dage inden han blev frdig med sin
master-grad, kom han forbi IBMs lokaler og sa for frste gang en
computer. Backus blev senere ansat ved IBM.
39. John Backus
John Backus kom med det frste gode bud pa hvordan man kan
de
41. John Backus
John Backus blev leder af IBMs gruppe, der udviklede det frste
programmeringssprog. Det hed Fortran.
42. John Backus
John Backus blev leder af IBMs gruppe, der udviklede det frste
programmeringssprog. Det hed Fortran.
Senere foreslog Backus en helt anden slags programmeringssprog,
nemlig funktionsorienterede sprog.
44. neret for ethvert naturligt tal n ved
n! = n (n 1) 1
Sadan kan man skrive fakultetsfunktionen i Fortran.
FUNCTION FACT(N)
INTEGER N,I,FACT
FACT=1
DO 10 I=1,N
10 FACT=FACT*I
END
45. Peter Naur (2005)
Den eneste dansker, der indtil nu har modtaget Turing-prisen, er
Peter Naur. Ordet datalogi skyldes ham.
46. Peter Naur (2005)
Peter Naur var oprindelig en kendt astronom; det var arbejdet med
at behandle astronomiske data, der gjorde ham interesseret i
databehandling.
47. Peter Naur og ALGOL
Sammen med John Backus og andre fremtrdende dataloger var
Naur bag programmeringssproget ALGOL 60. Ogsa
ere andre
senere Turing-prismodtagere var med til at udarbejde
ALGOL60-rapporten.
48. Peter Naur
program ::= erkl krop
erkl ::= type var; erkl | tom
type ::= int | bool | real
var ::= tegn*
tegn ::= a | b | c | d
krop ::= ...
Den grammatik-notation, Backus og Naur indfrte, kaldes ofte
BNF (Backus-Naur-Form). Notationen har en slaende lighed med
Noam Chomskys kontekstfrie grammatikker.
49. Fran Allen (2006)
Frances `Fran' Allen var oprindelig matematiker og holdt af at
undervise i high school. Som kandidatstuderende sidst i 1950'erne
tog hun nogle programmeringskurser. Sa
51. Fran Allen (2006)
Frances `Fran' Allen var oprindelig matematiker og holdt af at
undervise i high school. Som kandidatstuderende sidst i 1950'erne
tog hun nogle programmeringskurser. Sa
52. k hun et midlertidigt job
ved IBM. Mange af de teknikker, som i dag er helt gngse i
compilere, skyldes hende.
53. Donald Knuth og ALGOL
integer procedure mystik
begin comment x er en lokal variabel
x := x+1
mystik := 3
end mystik
I 1967 skrev Donald Knuth en bermt artikel om ALGOL 60. Han
stillede det grimme sprgsmal
Hvad er vrdien af x + mystik ?
54. Donald Knuth og ALGOL
integer procedure mystik
begin comment x er en lokal variabel
x := x+1
mystik := 3
end mystik
I 1967 skrev Donald Knuth en bermt artikel om ALGOL 60. Han
stillede det grimme sprgsmal
Hvad er vrdien af x + mystik ?
Det afhnger af hvilken rkkeflge vi udregner leddene i den lille
sum. ALGOL60-rapporten havde ikke beskrevet det!
55. Programmeringssprogs semantik
The establishment of formal standards for proofs about
programs [. . . ] and the proposal that the semantics of a
programming language may be de
56. ned independently of
all processors for that language, by establishing standards
of rigor for proofs about programs in the language,
appears to be novel. (Floyd, 1967)
Beskrivelsen af hvad et program laver, nar det bliver udfrt skal
vre prcis og skal vre maskinuafhngig.
58. k en bachelor-grad i fysik, men ogsa han blev suget
ind i algoritmernes verden. Han endte som professor i datalogi pa
Stanford uden nogen sinde at have faet en PhD-grad. Donald
Knuth siger i The Art of Computer Programming
. . . only
59. ve really good papers about compilers had been
written so far, and Bob had been the author of all
63. Tilbage til fakultetsfunktionen
En invariant er en logisk udsagn der glder efter ethvert
gennemlb af en programlkke.
FUNCTION FACT(N)
INTEGER N,I,FACT
FACT=1
DO 10 I=1,N
10 FACT=FACT*I
END
Det glder altid efter i gennemlb af lkken (0 i n) at
FAK = i !. Hvis vi kan vise dette, ved vi at programmet faktisk
beregner fakultetsfunktionen af N.
64. Dana Scott (1976)
Dana Scott var sammen med Christopher Strachey med til at
formulere en andet vigtig matematisk teori for programmers
semantik. Denne teori er baseret pa at vi kan opfatte et program
som en matematisk funktion.
65. Denotationel semantik
Tnk pa et program som en funktion fra mngden af mulige
hukommelsesindhold til mngden af mulige hukommelsesindhold.
i7! 0
n7! 5
fact7! 1
i7! 5
n7! 5
fact7! 120
Nu skal vi `bare' beskrive hvilken sadan funktion hver enkelt
konstruktion i et programmeringssprog beskriver.
68. i Cambridge. Efter en
tid som matematiklrer i gymnasiet blev han ansat hos Ferranti.
Siden arbejdede han sammen med Dana Scott, og han blev frst
professor i Edinburgh, siden i Cambridge. Robin Milner vejledte
mange PhD-afhandlinger, men
71. k Turing-prisen for
I Sit arbejde om typesystemer for funktionsorienterede
programmeringssprog; Milner var en af hovedmndene bag
sproget ML.
I Sit arbejde inden for semantik for parallelle programmer.
I Sit arbejde inden for bevisassistenter.
73. Fakultetsfunktionen i ML
fun fak 0 = 1
| fak n = n * (fak (n-1));
Hvad ML-systemet siger om funktionen:
Standard ML of New Jersey v110.76 [built: Mon Aug 19 10:38:12 - [opening /tmp/ml224N5O]
val fak = fn : int - int
val it = () : unit
- [opening /tmp/ml224N5O]
val fak = fn : int - int
val it = () : unit
- fak 7;
val it = 5040 : int
-
74. Kommunikerende systemer
En vigtig erkendelse, som Robin Milner gjorde, er at der er mange
andre interessante programmer, der ikke pnt kan beskrives som
matematiske funktioner:
I Mange programmer skal faktisk aldrig standse!
75. Kommunikerende systemer
En vigtig erkendelse, som Robin Milner gjorde, er at der er mange
andre interessante programmer, der ikke pnt kan beskrives som
matematiske funktioner:
I Mange programmer skal faktisk aldrig standse!
I Parallelle programmer bestar typisk af en samling
komponenter, der kommunikerer indbyrdes.
76. Kommunikerende systemer
Tnk pa det kommunikerende system, der hedder Internettet. Her
er et lille udsnit.
Hotel Rejsebureau
Flyselskab
77. Leslie Lamport (2014)
Dette ars prismodtager er Leslie Lamport, der har ydet store bidrag
til teorien om kommunikerende parallelle systemer. Lamport er
ogsa manden bag LATEX, der er en samling makroer ovenpa Knuths
TEX(disse slides er lavet med brug af LATEX).
79. Herbert Simon og Allen Newell (1975)
Herbert Simon havde oprindelig studeret statskundskab. Allen
Newell var fysiker. Sammen udviklede de nogle af de frste
programmer, der skulle simulere hvordan mennesker lste
problemer: Logic Theorist og General Problem Solver. Et af deres
vigtige bidrag var ideen om heuristikker.
80. Herbert Simon og Allen Newell (1975)
Herbert Simon og Allen Newell var ekstremt optimistiske!
Over the Christmas holiday, Allen Newell and I invented a
machine that thinks.
I 1978
81. k Herbert Simon Nobelprisen i konomi. Han er den
eneste, der har modtaget bade en Nobelpris og en Turing-pris.
82. Del V
Hvordan kan computere hjlpe med at
holde information hemmelig?
84. Lren om at skrive beskeder, sa de ikke kan lses af
uvedkommende. Dette kaldes at kryptere beskeder.
En metode til kryptering kaldes et kryptosystem.
Kryptanalyse Lren om at tyde beskeder, der er blevet krypteret.
85. To enkle principper for kryptering
Transposition
. . . D E F G H I J K L M . . .
. . . A B C D E F G H I J . . .
Denne ide blev allerede brugt pa Julius Csars tid.
Kryptosystemets ngle er forskydningen mellem klartekst-alfabet
og cier-alfabet { her er den 3.
Permutation
. . . K P F A L R Q B . . . D . . .
. . . A B C D E F G H I J . . .
Kryptosystemets ngle er her tabellen, der forklarer hvordan hvert
bogstav krypteres.
86. Symmetrisk og asymmetrisk kryptering
Et kryptosystem, hvor man bruger samme ngle K til at kryptere
og dekryptere med, kaldes symmetrisk. Sa har vi
decK(encK(M)) = M
for enhver besked M
Indtil begyndelsen af 1970'erne troede man ikke at andet var
muligt. Problemet er at nglen skal deles mellem brugerne og
holdes hemmelig.
87. Symmetrisk og asymmetrisk kryptering
Men de amerikanske kryptologer Die og Hellman opdagede at
man kan lave asymmetrisk kryptering. Her har hver bruger en
oentlig ngle Kpub og en privat ngle Kpriv .
Sa har vi
decKpriv (encKpub (M)) = M
for enhver besked M.
Alle kender alle andres oentlige ngle Kpub, men kun hver enkelt
bruger kender sin egen Kpriv .
Det store sprgsmal er nu: Hvordan kan man lave et praktisk
anvendeligt kryptosystem, der gr dette muligt og er svrt at
bryde?
88. Ronald Rivest, Adi Shamir og Leonard Adleman (2002)
Disse tre herrer opdagede i 1976 et af det frste praktisk
anvendelige asymmetriske kryptosystemer, som formodentlig er
svrt at bryde. Det er baseret pa resultater fra algebraisk talteori. I
dag bliver RSA-systemet brugt i nsten alle krypterede
kommunikationer pa internettet.
91. Grace Hopper
Grace Brewster Murray blev fdt i New York i 1906. Hun studerede
matematik og
92. k sin PhD i 1934. I 1930 blev hun gift og kaldte sig
fra da af Grace Murray Hopper (ogsa efter hun blev skilt). I 1943
meldte hun sig til USAs
ade. Langsomt steg hun i graderne, og i
1985 blev hun admiral.
94. rmaet Eckert{Mauchly
Computer Corporation, der byggede den tidlige computer UNIVAC.
Hun lavede en compiler (i dag ville man snarere kalde den for en
linker og loader) til UNIVAC-programmeringssproget A helt tilbage
i 1951-1952.
95. Grace Hopper
Grace Murray Hopper var en hoveddrivkraft i udviklingen af
programmeringssproget COBOL.
96. Hvorfor hedder det `debugging'?
Da Grace Hopper arbejdede med Mark II-computeren pa Harvard,
j der et stakkels ml ind i maskinen. (Ordet `bug' er dog ogsa
tidligere blevet brugt pa engelsk om en fejl.)
97. Admiral Grace Hopper
Grace Hopper sluttede sin militre karriere som admiral i USAs
ade.
98. Admiral Grace Hopper
Grace Hopper sluttede sin militre karriere som admiral i USAs
ade.
ACM har indstiftet The Grace Murray Hopper Award som en
srlig pris til dataloger under 35.
100. Jeg har ikke nvnt bl.a.
I Tony Hoare, der udviklede den logiske teori bag invarianter og
aksiomatisk semantik,
I John McCarthy, der skabte programmeringssproget LISP,
I Vinton Cerf og Robert Kahn, der
101. k prisen for deres arbejde
med Internet-protokollen TCP/IP,
I Charles Thacker, der var med til at udvikle den personlige
computer eller
I Ole-Johan Dahl og Kristen Nygaard, to norske dataloger, der
udviklede det frste objektorienterede programmeringssprog
SIMULA.
I . . . og mange
ere.