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
Familien Nerdrum ved garden i Stavern.
Foto: Agnete Brun / NRK
Ikkje alt er politikk
Politiseringa av Nerdrum-familien er påfallande i lys av kor upolitisk Nerdrum eigentleg er.
Torje Hommedal Knausgård tek mastergrad i fransk ved Universitetet i Oslo. Lea Marie Krona gjer det same i tysk. Dei har få å sitje i kollokviegruppe med.
Foto: Sigurd Arnekleiv Bækkelund
Framandspråka forsvinn
Tilgangen på framandspråk er større enn nokon gong. Likevel er det stadig færre som vil studere dei.
Teikning: May Linn Clement
Forgard i nord
Kan USA kome til å ta over Grønland med makt?
Rune Slagstad på veg inn til Finansdepartementet i november i fjor.
Foto: Dag og Tid
Fylgjene av konkurransestaten
Rune Slagstad syner korleis venstresida lenge har gløymt røtene og prinsippa sine. Der andre held seg til vande spor, gjenetablerer han vona om at vi kan finne ut av kva som er viktigast å diskutere.
Jean-Marie Le Pen døydde 7. januar, 96 år gamal.
Foto: Stephane Mahe / Reuters / NTB
Ein politisk krigar har falle
Jean-Marie Le Pen (1928–2025) vart ein nybrotsmann for all høgrepopulisme i dag.