"9 Algorithms That Changed the Future - The Ingenious Ideas That Drive Today's Computers" heiter ei bok av John MacCormick. Eg vart merksam på boka då eg las Paul Chaffeys blogg og hans omtale av den. MacCormick er professor ved Dickinson College (USA), Departement of Mathematics and Computer Science , der han forskar og underviser.
Manglande IT-utdanning og forståing for den
I forordet dveler Chris Bishop, professor ved University of Edinburgh, ved paradokset at sjølv om IT omgir oss på alle kantar, er det framleis ikkje eit eige fag før på universitetsnivå. Dersom det blir tilbydd undervisning før universitetsnivå, er det ofte berre opplæring i diverse verktøy og ikkje innføring i "computer science" slik ein gjer i fysikk og kjemi t.d.
Utvalskriterium
Det trengst bøker som skaper entusiasme og forståing for det grunnleggjande ved datateknologi, og det er det MacCormick tek mål av seg til å bidra med. Som tittelen seier, tek boka hans for seg ni algoritmar som har endra framtida vår. Han sette opp følgjande kriterium for utveljinga:
Manglande IT-utdanning og forståing for den
I forordet dveler Chris Bishop, professor ved University of Edinburgh, ved paradokset at sjølv om IT omgir oss på alle kantar, er det framleis ikkje eit eige fag før på universitetsnivå. Dersom det blir tilbydd undervisning før universitetsnivå, er det ofte berre opplæring i diverse verktøy og ikkje innføring i "computer science" slik ein gjer i fysikk og kjemi t.d.
Kva er algoritmar?
Ein skulle gjerne tru at ei bok med denne tittelen, og som handlar algoritmar, ville gått litt tilbake i historien og sett på den etymologiske tydinga av algoritme. Det gjer MacCormick ikkje; han stuper inn i detaljane ved dei ni algoritmane nesten utan vidare refleksjon. Det er den første svakheita ved boka.
Algoritme er eit sett instruksjonar for ei datamaskin. Ordet kjem frå den persiske matematikaren (og astronom + geograf) Muḥammad ibn Mūsā al-Khwārizmī. Han er rekna for ein av forfedrane til algebra og skreiv fleire bøker. I tillegg til opphavet for 'algoritme' er ha også opphavet til ordet 'algebra'. 'Algoritme' kjem av det latinske namnet til al-Khwārizmī.
Det trengst bøker som skaper entusiasme og forståing for det grunnleggjande ved datateknologi, og det er det MacCormick tek mål av seg til å bidra med. Som tittelen seier, tek boka hans for seg ni algoritmar som har endra framtida vår. Han sette opp følgjande kriterium for utveljinga:
- Algoritmen må vera i bruk dagleg av (datamaskin-)brukarar
- Algoritmen må adressera konkrete, reelle problem (real-world problems)
- Algoritmen må hovudsakeleg vera relatert til computer science-teori (og då fell alt som har med maskinvare bort)
Offentleg nøkkel-kryptografi og digitale signaturar
Ei anna svakheit er etter mitt syn dei ni algoritmane som er valde ut. Det er ikkje lett å velja dei ni viktigaste algoritmane i IT-verda, og det vil nødvendigvis bli mykje diskusjon rundt eit slikt val. Men å bruka to av dei ni plassane på offentleg nøkkel-kryptografi og digitale signaturar, meiner eg er feil. Offentleg nøkkel-kryptografi og digitale signaturar er to sider av same sak og burde vore omtalt under eitt - då kunne han fått plass til ein algoritme til.
PageRank byggjer på?
Ei tredje svakheit er at han i drøftinga av søk og Googles PageRank-algoritme ikkje nemner opphavsmannen til algoritmen: Eugene Garfield (som seinare vart tilsett i Google). Garfield utvikla ein siterings-algoritme (Science Citation Index) ved University of Pennsylvania i 1950-åra. Kjernen i algoritmen var at til meir meritterte forfattarane som siterte artikkelen din var, til høgre verdi fekk artikkelen din - den såkalla impact factor.
Kva med Bitcoin?
Boka kom ut i 2011 og eg kan difor vanskeleg kritisera han for ikkje å ha teke med Bitcoin; som elles burde hatt ein opplagt plass blant dei ni. Men MacCormick er snublande nær, for i det siste kapitlet der han spekulerer over kva algoritmar me kan komma til å sjå i framtida, diskuterer han zero knowledge proofs og ei løysing på dei bysantinske generalars problem. Bitcoin er jo nettopp svaret på den siste utfordringa, og kanskje skulle ein professor i computer science ha oppdaga det i 2011?
Dei aktuelle algoritmane
Dei ni algoritmane han har valt ut, er:
- Search Engine Indexing
- PageRank
- Public Key Cryptography
- Error-Correcting Codes
- Pattern Recognition
- Data Compression
- Databases
- Digital Signatures
- What Is Computable?
Den siste er strengt teke ikkje ein algoritme, men ein gjennomgang av Alan Turings banebrytande bevis for at det er umuleg å forutsjå alle feil i eit dataprogram. Eller sagt på ein annan måte: Det finst ting som er umuleg å forutsjå: vil eit program eventuelt krasja eller vil det gå i det uendelege? Dette er kjendt som the halting problem og the undecidability problem.
Det som er bra med boka
Sidan eg har vore ganske kritisk til MacCormick innleiingsvis får eg ta med det som er positivt også. Han har skrive ei lettlesen og pedagogisk god bok. Det skin gjennom at MacCormick verkeleg er interessert i å formidla dette, og han gjer det som sagt på ein god pedagogisk måte.