Programmeringsspråk
Gjentakingsinstruksjon i programmeringsspråket Python.
Les også
Den revolusjonerande energiløysinga til WorldPower Energy.
Kjelde: WorldPower Energy
Perpetuum mobile
Les også
E-bok-appar for ulike plattformer anno 2012.
Illustrasjon: Per Palmkvist Knudsen / Wikimedia Commons
Elektronisk papir
Les også
Vêrradar på Vestkapp på Stadlandet. Bak den kvite kuppelen skjuler det seg ein roterande parabolantenne.
Foto: Wolfmann / Wikimedia Commons
Vêrradar
Les også
Metaverset skal bli eit audiovisuelt rom der den fysiske og den digitale verda smeltar saman.
Foto: Pixabay
Metaverset
Les også
Figur 1. No har me alle vorte innovatørar.
Kreativ destruksjon
Les også
Figur 1. Slik ser det ut når ein opnar motoren til elsparkesykkelen.
Kjelde: sgscooters.co
Elsparkesykkel er moro, men hugs hjelm
Les også
Den revolusjonerande energiløysinga til WorldPower Energy.
Kjelde: WorldPower Energy
Perpetuum mobile
Les også
E-bok-appar for ulike plattformer anno 2012.
Illustrasjon: Per Palmkvist Knudsen / Wikimedia Commons
Elektronisk papir
Les også
Vêrradar på Vestkapp på Stadlandet. Bak den kvite kuppelen skjuler det seg ein roterande parabolantenne.
Foto: Wolfmann / Wikimedia Commons
Vêrradar
Les også
Metaverset skal bli eit audiovisuelt rom der den fysiske og den digitale verda smeltar saman.
Foto: Pixabay
Metaverset
Les også
Figur 1. No har me alle vorte innovatørar.
Kreativ destruksjon
Les også
Figur 1. Slik ser det ut når ein opnar motoren til elsparkesykkelen.
Kjelde: sgscooters.co
Elsparkesykkel er moro, men hugs hjelm
Næringslivet treng stadig fleire arbeidstakarar som er i stand til å programmere. Ingeniørar, økonomar, medisinarar og til og med enkelte journalistar må handtere data på avanserte måtar, og programmering er verktøyet for dette.
Nokre program er enkle, kanskje ein såkalla makro i eit rekneark. Andre er avanserte og må konstruerast i store prosjekt med mange programmerarar som lagar system for bankdrift eller oljeutvinning.
Programmering er ikkje alltid ein enkel dugleik å lære seg, og det kan vere ein fordel å starte tidleg. «Lær kidsa koding!» vart eit slagord for snart ti år sidan. Ideen var at born skulle få hjelp av profesjonelle IT-folk til å lære seg å programmere på fritida. Skuleverket var på etterskot og kunne ikkje tilby opplæring i programmering. I dag har dette endra seg noko, og mange elevar får no høve til å programmere i ung alder.
Programmeringsspråk er konstruerte språk som vi skriv instruksjonar til datamaskiner i. For å bli ein god programmerar må ein lære seg korleis eit slikt språk er bygd opp, kva ein kan uttrykkje i språket, og korleis ein set saman instruksjonar til større einingar som utfører samansette rekneoperasjonar. Programmeraren må kanskje lære seg eitt eller fleire av språka C++, C#, Java eller Python. Nokre av desse er til bruk i spesialiserte samanhengar. Scratch er til dømes eit språk som er spesielt veleigna til programmeringsopplæring for born.
Det er lett for ein erfaren programmerar å lære seg eit nytt programmeringsspråk. Dei har oftast lik oppbygnad, ulikskapen ligg til dømes i korleis ein skriv instruksjonane eller kva skiljeteikn ein nyttar. Utfordringa for programmeraren er helst å finne ei presis løysing på korleis ein skal rekne ut noko. Å finne ut av dei overordna stega for å løyse eit rekne- eller programmeringsproblem er slett ikkje så enkelt, men dette er gjerne viktigare enn det å kunne eit spesielt programmeringsspråk. Det er slike dugleikar kidsa bør lære.
Prosessoren i datamaskiner får instruksjonane sine i form av bits: nullar og einarar. Men det er nærast umogleg for menneske å skrive instruksjonar i dette formatet. Det er tungvint å halde styr på bitane, og faren for feil er enorm. Heilt frå starten av har ein derfor utvikla programmeringsspråk som gjer det lettare å lage og forstå instruksjonane.
Dei språka som vert brukte i dag, har setningsformer som liknar på matematiske uttrykk, men opnar òg for å skrive instruksjonar som kan likne på vanleg språk. Omsetjarprogram, gjerne kalla kompilatorar eller tolkarar, omset setningar i desse språka til binære program.
Alle programmeringsspråk har konstruksjonar som hjelper til med tre viktige mekanismar for kontroll. Desse er sekvens, val og gjentaking. I programmeringsspråket Java brukar ein til dømes eit semikolon for å skilje ein sekvens av instruksjonar. Instruksjonen før semikolonet skal utførast først. Setningane «a = b + 5; b = a + 2» vil altså gje eit anna resultat enn om setningane var i motsett rekkjefølgje. Ei valsetning kan sjå ut som «if (a < c ) {a = -c} else {a = c}».
I figuren over kan du sjå fire Python-programlinjer med ei gjentakingssetning. Gjentakinga er indikert med nøkkelordet «for». Du kan jo gjette kva dette reknar ut. For ein erfaren programmerar er dette som å snakke morsmål.
I eksempla ser vi ord eller namn som a, b og sum. Desse representerer data som programmet reknar med, og vert brukte av programmeraren til å mellomlagre data, men òg til å utrykkje formlar som skal reknast ut. Vi kallar desse namna for variablar, og dei kan innehalde tal, teikn (som bokstavar), ord, men òg endå meir komplekse data. Ein kan ha tabellar av slike variablar der ein kan få tilgang til kvart tabellelement ved hjelp av språkkonstruksjonar. «a[5]» kan til dømes vise til elementet i posisjon 5 i tabellen a.
Desse tre mekanismane er ikkje nok for å få til ei effektiv og feilfri programmering, og ein har derfor utvikla måtar å setje saman mindre programdelar til modular på. Dette vert ofte kalla objektorientering. Ein programmerar skriv det ein kallar klassar. Desse klassane skildrar korleis datamaskina skal rekne med ting som er viktige for programvara.
I ein bankapplikasjon vil ein gjerne ha ein klasse som heiter konto. Kontoen har data som inneståande, rentesats og eigar. Men i tillegg kan ein for ein konto ha metodar, det vil seie små programbitar som utfører ein konkret operasjon. Ein typisk operasjon vil vere innskot, som inneheld instruksjonar som aukar inneståande med innskotet.
Kvifor det heiter objektorientering? Kvar konto i banken kan no representerast med eit kontoobjekt i programmet. Kontoobjektet oppfører seg på den måten som er skildra i kontoklassen, og det er likt for alle kontoobjekt.
Kidsa som skal lære seg koding, byrjar nok ikkje med objektorientering, men denne tilnærminga er heilt essensiell i moderne programmering. Det er nesten umogleg å lage komplekse programsystem utan ein slik tenkjemåte. Korkje sosiale medium, ferdigutfylte sjølvmeldingar eller kjøp av flybillettar på veven hadde vore lett å få til.
Objektorientering vart funne opp av informatikkprofessorane Ole Johan Dahl og Kristen Nygaard ved Universitetet i Oslo på 1960-talet. Dei konstruerte programmeringsspråket Simula, som vart modell for mange andre viktige programmeringsspråk i ettertida. Dei fekk fortent nok Turing-prisen, datavitskapens nobelpris, for dette arbeidet.
Bjørnar Tessem og Lars Nyre
Er du abonnent? Logg på her for å lese vidare.
Digital tilgang til DAG OG TID – heilt utan binding
Prøv ein månad for kr 49.
Deretter kr 199 per månad. Stopp når du vil.
Næringslivet treng stadig fleire arbeidstakarar som er i stand til å programmere. Ingeniørar, økonomar, medisinarar og til og med enkelte journalistar må handtere data på avanserte måtar, og programmering er verktøyet for dette.
Nokre program er enkle, kanskje ein såkalla makro i eit rekneark. Andre er avanserte og må konstruerast i store prosjekt med mange programmerarar som lagar system for bankdrift eller oljeutvinning.
Programmering er ikkje alltid ein enkel dugleik å lære seg, og det kan vere ein fordel å starte tidleg. «Lær kidsa koding!» vart eit slagord for snart ti år sidan. Ideen var at born skulle få hjelp av profesjonelle IT-folk til å lære seg å programmere på fritida. Skuleverket var på etterskot og kunne ikkje tilby opplæring i programmering. I dag har dette endra seg noko, og mange elevar får no høve til å programmere i ung alder.
Programmeringsspråk er konstruerte språk som vi skriv instruksjonar til datamaskiner i. For å bli ein god programmerar må ein lære seg korleis eit slikt språk er bygd opp, kva ein kan uttrykkje i språket, og korleis ein set saman instruksjonar til større einingar som utfører samansette rekneoperasjonar. Programmeraren må kanskje lære seg eitt eller fleire av språka C++, C#, Java eller Python. Nokre av desse er til bruk i spesialiserte samanhengar. Scratch er til dømes eit språk som er spesielt veleigna til programmeringsopplæring for born.
Det er lett for ein erfaren programmerar å lære seg eit nytt programmeringsspråk. Dei har oftast lik oppbygnad, ulikskapen ligg til dømes i korleis ein skriv instruksjonane eller kva skiljeteikn ein nyttar. Utfordringa for programmeraren er helst å finne ei presis løysing på korleis ein skal rekne ut noko. Å finne ut av dei overordna stega for å løyse eit rekne- eller programmeringsproblem er slett ikkje så enkelt, men dette er gjerne viktigare enn det å kunne eit spesielt programmeringsspråk. Det er slike dugleikar kidsa bør lære.
Prosessoren i datamaskiner får instruksjonane sine i form av bits: nullar og einarar. Men det er nærast umogleg for menneske å skrive instruksjonar i dette formatet. Det er tungvint å halde styr på bitane, og faren for feil er enorm. Heilt frå starten av har ein derfor utvikla programmeringsspråk som gjer det lettare å lage og forstå instruksjonane.
Dei språka som vert brukte i dag, har setningsformer som liknar på matematiske uttrykk, men opnar òg for å skrive instruksjonar som kan likne på vanleg språk. Omsetjarprogram, gjerne kalla kompilatorar eller tolkarar, omset setningar i desse språka til binære program.
Alle programmeringsspråk har konstruksjonar som hjelper til med tre viktige mekanismar for kontroll. Desse er sekvens, val og gjentaking. I programmeringsspråket Java brukar ein til dømes eit semikolon for å skilje ein sekvens av instruksjonar. Instruksjonen før semikolonet skal utførast først. Setningane «a = b + 5; b = a + 2» vil altså gje eit anna resultat enn om setningane var i motsett rekkjefølgje. Ei valsetning kan sjå ut som «if (a < c ) {a = -c} else {a = c}».
I figuren over kan du sjå fire Python-programlinjer med ei gjentakingssetning. Gjentakinga er indikert med nøkkelordet «for». Du kan jo gjette kva dette reknar ut. For ein erfaren programmerar er dette som å snakke morsmål.
I eksempla ser vi ord eller namn som a, b og sum. Desse representerer data som programmet reknar med, og vert brukte av programmeraren til å mellomlagre data, men òg til å utrykkje formlar som skal reknast ut. Vi kallar desse namna for variablar, og dei kan innehalde tal, teikn (som bokstavar), ord, men òg endå meir komplekse data. Ein kan ha tabellar av slike variablar der ein kan få tilgang til kvart tabellelement ved hjelp av språkkonstruksjonar. «a[5]» kan til dømes vise til elementet i posisjon 5 i tabellen a.
Desse tre mekanismane er ikkje nok for å få til ei effektiv og feilfri programmering, og ein har derfor utvikla måtar å setje saman mindre programdelar til modular på. Dette vert ofte kalla objektorientering. Ein programmerar skriv det ein kallar klassar. Desse klassane skildrar korleis datamaskina skal rekne med ting som er viktige for programvara.
I ein bankapplikasjon vil ein gjerne ha ein klasse som heiter konto. Kontoen har data som inneståande, rentesats og eigar. Men i tillegg kan ein for ein konto ha metodar, det vil seie små programbitar som utfører ein konkret operasjon. Ein typisk operasjon vil vere innskot, som inneheld instruksjonar som aukar inneståande med innskotet.
Kvifor det heiter objektorientering? Kvar konto i banken kan no representerast med eit kontoobjekt i programmet. Kontoobjektet oppfører seg på den måten som er skildra i kontoklassen, og det er likt for alle kontoobjekt.
Kidsa som skal lære seg koding, byrjar nok ikkje med objektorientering, men denne tilnærminga er heilt essensiell i moderne programmering. Det er nesten umogleg å lage komplekse programsystem utan ein slik tenkjemåte. Korkje sosiale medium, ferdigutfylte sjølvmeldingar eller kjøp av flybillettar på veven hadde vore lett å få til.
Objektorientering vart funne opp av informatikkprofessorane Ole Johan Dahl og Kristen Nygaard ved Universitetet i Oslo på 1960-talet. Dei konstruerte programmeringsspråket Simula, som vart modell for mange andre viktige programmeringsspråk i ettertida. Dei fekk fortent nok Turing-prisen, datavitskapens nobelpris, for dette arbeidet.
Bjørnar Tessem og Lars Nyre
Ingeniørar, økonomar, medisinarar og til og med enkelte journalistar må handtere data på avanserte måtar, og programmering er verktøyet for dette.
Les også
Den revolusjonerande energiløysinga til WorldPower Energy.
Kjelde: WorldPower Energy
Perpetuum mobile
Les også
E-bok-appar for ulike plattformer anno 2012.
Illustrasjon: Per Palmkvist Knudsen / Wikimedia Commons
Elektronisk papir
Les også
Vêrradar på Vestkapp på Stadlandet. Bak den kvite kuppelen skjuler det seg ein roterande parabolantenne.
Foto: Wolfmann / Wikimedia Commons
Vêrradar
Les også
Metaverset skal bli eit audiovisuelt rom der den fysiske og den digitale verda smeltar saman.
Foto: Pixabay
Metaverset
Les også
Figur 1. No har me alle vorte innovatørar.
Kreativ destruksjon
Fleire artiklar
Teikning: May Linn Clement
Krigen er ei ufatteleg ulukke for Ukraina. Men også for Russland er det som skjer, ein katastrofe.
Tusen dagar med russisk katastrofe
KrF-leiar Dag Inge Ulstein får ikkje Stortinget med seg på å endre retningslinjene for kjønnsundervisning i skulen.
Thomas Fure / NTB
Utfordrar kjønnsundervisninga
Norske skulebøker kan gjere elevar usikre på kva kjønn dei har, meiner KrF-leiar Dag Inge Ulstein.
Jens Stoltenberg gjekk av som generalsekretær i Nato 1. oktober. No skal han leie styringsgruppa for Bilderberg-møta.
Foto: Thomas Fure / NTB
Jens Stoltenberg blir partyfiksar for Bilderberg-møta, ein institusjon meir i utakt med samtida enn nokon gong.
Den rumenske forfattaren Mircea Cartarescu har skrive både skjønnlitteratur, lyrikk og litterære essay.
Foto: Solum Bokvennen
Mircea Cărtărescu kastar eit fortrolla lys over barndommen i Melankolien
Taiwanarar feirar nasjonaldagen 10. oktober framfor presidentbygget i Taipei.
Foto: Chiang Ying-ying / AP / NTB
Illusjonen om «eitt Kina»
Kina gjer krav på Taiwan, og Noreg anerkjenner ikkje Taiwan som sjølvstendig stat. Men kor sterkt står argumenta for at Taiwan er ein del av Kina?