Visst är det kul med Raspberry Pi, men vore det inte ännu roligare om man kunde programmera på den? Och om man förstod vad koden gör?

Tanken med den här lilla introduktionen till programmering är att ge en liten bakgrund till programmeringen, vilka olika paradigmer (“sätt” att programmera) som finns och vad man kan försöka ha i åtanke för att skriva effektiv kod. Vi kommer huvudsakligen titta på Python när det handlar om kod, då det är det språk som är smidigast att använda på Raspberry Pi.

I detta första avsnitt ska vi däremot gå igenom lite kort om datorns och programmeringens historia.

 

1800-talet (!)

Ada Lovelace och "The analytical Engine"

Den första pryl som sägs ha varit “Turing-komplett”, det vill säga i teorin kunnat lösa alla beräkningsproblem givet nog med tid och minnesutrymme, var Charles Babbages “Analytical Engine som han beskrev första gången 1837. Han lyckades aldrig bygga en färdig version, men en kvinnlig matematiker vid namn Ada Lovelace utvecklade vad som idag betraktas som den första algoritmen tänkt att köras på en dator, för den. På grund av detta har hon ofta kallats världens första programmerare. På 1980-talet tog amerikanska militären också fram ett programmeringsspråk döpt efter henne, Ada.

1900-talet

ENIAC, den första elektriska och programmeringsbara datorn.

Efter Babbages/Lovelaces alster under 1800-talet dröjde det ända till andra världskriget innan en fungerande, programmeringsbar dator till slut byggdes. Det handlade då om ENIAC, som under andra världskriget byggdes för att beräkna artilleriskottbanor, men som inte hann slutföras förrän efter krigsslutet. På den här tiden fanns inte de mikroskopiska nanometer-transistorer som används i dagens datorer, så man fick istället använda bland annat vakuumrör och andra relativt stora komponenter (alltså snarare decimeter-komponenter). Detta gjorde att datorn tog upp 167 kvadratmeter och vägde 27 ton, och kunde ta flera dagar att programmera. Trots denna enorma storlek har man beräknat att dess prestanda motsvarade en dator med klockfrekvens på 100 kHz, att jämföras med dagens skrivbordsdatorer som har ca 5 GHz (5 000 000 kHz, eller 50 000 gånger mer). Intressant är också att även här var det kvinnor som stod för programmeringen, närmare bestämt 6 stycken som hjälptes åt med det tidskrävande arbetet.

Värd att nämna är också Alan Turing, som dels lade grunden för den moderna datavetenskapen, men också var väldigt viktig i arbetet med att knäcka nazisternas meddelandekryptering vilket var en stor del i att de allierade till slut vann andra världskriget. Turings livsöde är tragiskt, och en film om honom med Benedict Cumberbatch i huvudrollen, The Imitation Game, har precis haft premiär i USA (och kommer till Sverige i Januari, boka biljetter redan nu!).

Commodore 64, den populäraste hemdatorn på 80-talet.

De tidigaste datorerna hade inga skärmar, utan skrev ut output på papper istället.  På 60- och 70-talet började datorer med skärmar dyka upp, och så även  numera välkända programmeringsspråk som C, vilket inspirerade till C++ på 80-talet. Båda är idag två av världens mest använda språk (och C++-standarden uppdaterades så sent som 2011). Det var även under denna tidsperiod som programmering blev mer tillgängligt för hemanvändare med språk som BASIC och hemdatorer som Commodore 64, AMIGA och MSX. Ytterligare ett språk som blivit väldigt stort (störst, faktiskt) är Java, som kom 1995.

Vad som skiljer dessa språk åt ska vi gå igenom i nästa del, som kommer nästa onsdag (24/9). Håll ut! 🙂

 

Datavetenskap i Sverige

En intressant anekdot, särskilt för oss Östgötar, är Anders Haraldssons arbete med datavetenskap och att utbilda andra i ämnet.

Anders började arbeta vid Linköpings Tekniska Högskola och grundade Sveriges första datautbildning (Civilingenjör i Datateknik) 1975. Detta tyckte andra högskolor/universitet var skrattretande, och frågan ställdes om nästa steg var en civilingenjörsutbildning i räknesticka. Den typen av utbildning blev aldrig av, men några år senare började även andra lärosäten erbjuda datautbildningar, av en ren slump 😉

Uppdatering: Nu finns nästa del i introduktionen här!

Källor bilder:

http://commons.wikimedia.org/wiki/File:Ada_Lovelace_portrait.jpg

http://commons.wikimedia.org/wiki/File:AnalyticalMachine_Babbage_London.jpg

http://en.wikipedia.org/wiki/ENIAC#mediaviewer/File:Eniac.jpg

http://commons.wikimedia.org/wiki/File:C64c_system.jpg

[minimera]