Hvad er programmering?
Hvad er programmering? Programmering vil sige, at skrive koder, sådan at de kan omsættes fra et høj-niveau-sprog (fx C, Java el.lign.) til et lav-niveau-sprog, noget som computere kan udføre.
- Nogle programmeringssprog fortolkes af en fortolker, fx SCRATCH - dvs. programmerne kan ikke køre uden for det miljø (Scrath), de er skabt i.
- Andre programmer kan være scripts, der kan indlejres i andre IT-systemer, fx JavaScript, som kan lægges ind på HTML-sider.
- Eksekverbare programmer er programmer, der bliver oversat eller compileret af en compiler, se de kan køres direkte fra operativsystemer, fx MacOs, Windows eller Linux, uafhængigt af det miljø/programmeringssystem, som de er skabt i. Office-pakken og TI-Nspire er eksempler på sådanne programmer. Det er naturligvis mest brugervenligt, at brugerne ikke skal ind og se i alt muligt kode, men blot kan køre et program og få løst deres opgaver.
Se her på WebExplorations, hvordan man skaber et simpelt program i Visual Basic.
Man deler it-systemer op i
- Software: Programmer og operativsystem m.m.
- Hardware: Al maskiner, tastatur, skærm, hukommelse, processor, harddisk m.m.
De fleste programmeringssprog ligner hinanden. De består af et antal ordrer eller koder, som man skal skrive rigtigt (korrekt syntaks).
Her er et eksempel på et program, skrevet i pseudo-kode (dvs. noget kode, som ikke er rigtig kode, men som en programmør hurtigt vil kunne omsætte til kode i et programmeringssprog
indlæs talA;
indlæs talB;
hvis talA = talB så udskriv "tallene er ens" og stop;
hvis talA < talB så udskriv "Det første tal er mindre end det andet"
ellers
udskriv "Det første tal er større end det andet"
Programmer minder om madopskrifter - man skal udføre tingene i en helt præcis rækkefølge.
Begreber
- Generelle opskrifter på, hvordan man gør noget kaldes for algoritmer og minder om matematik. Ofte kaldes processen at skrive programmer for at kode og rette fejl (hvilket en meget stor del af tiden går med) at debugge.
- Når en programmør eller koder skal finde ud af, hvordan han/hun skal løse et problem for en kunde, så benyttes modellering. Det kan fx være at han/hun tegner nogle mockups/skitser på papir for at finde ud af, hvordan brugergrænsefladen skal være, udarbejder nogle rutediagrammer for at finde ud af, hvordan flowet i programmet skal være, eller benytter andre værktøjer.
- Ofte arbejdes i en iterativ, dvs gentagen struktur, hvor man designer, programmerer, tester, designer, programmerer, tester og så videre - indtil man har et program, der virker.
- En anden teknik er skridtvis forfinelse, at man sætter sig nogle enkle mål, udvikler lidt, ofte bare nogle få linier, tester om det havde det ønskede resultat, hvis ja, så sætter sig nogle nye mål og så fremdeles. Dette står i modsætning til at sætte sig ned og skrive 10.000 linier kode i een omgang og så først herefter teste. Man vil så (med mindre, man er meget dreven programmør) får en lang række fejl og mange af dem hænger sammen, og det vil være helt uoverskueligt at få et program, der virker.
Se mere om programmering på KhanAcademy og her
Hvad er en Turing maskine?
En Turing maskine er en teoretisk model for en moderne computer, beskrevet af Allan Turing. Se videoen ovenfor.
Den moderne computer
En moderne computer består af
- Processor
- Intern Hukommelse
- Ekstern Hukommelse fx harddisk
- Eksterne enheder, fx tastatur og skærm
- USB-enheder, fx USB-harddiske, Printer, Mus
I dag er tablets (f.eks. iPads), smartphones m.m. også computere.
Man kan også have sensorer, fx har mange laptops en fingertouch-sensor, der kan aflæse fingeraftryk og således fungerer som login-funktion.
Hvilke typer programmeringssprog findes der??
- imperative sprog - ordrer står i rækkefølge
- procedurale sprog - ordrer kan koble sammen i procedurer, der kan kaldes flere gange
- objekt-orienterede sprog - der kan erklæres sammensatte variable = objekter
- hændelsestyrede sprog = programmet er skabt som hændelser, typisk koblet på noget, der skal på brugergrænseflader. Et eksempel er Scratch.
Centrale ordrer og begreber
- Variable: Bruges til at opbevare data (fines også i matematik, fx diskriminanten d, når man løser 2. gradsligninger).
- Iteration: Gentagelse eller loops, bruges når noget skal gentages, fx man skal løbe hele det danske CPR-nummer-register igennem.
- Betingelser: if sætninger eller hvis-så sætninger, se eksemplet i den grå boks ovenfor.
- Funktioner og procedurer: Blokke af ordrer, som kan kaldes flere gange.
Computational thinking / Datalogisk tænkning
Computational thinking er populært sagt, "en måde at løse problemer på, som både mennesker og maskiner kan anvende"
Det kan beskrive med disse 4 strategier
- Abstraktion: Ignorere de ubetydelige detaljer og fokusere på det væsentlige og generelle ved et problem.
- Opdeling: Bliv ved at opdele i mindre problemer, indtil man har noget, der nemt kan omdannes til et program på en computer.
- Mønstergenkendelse: At se mønstre i store mængder af data
- Algoritmer: At kunne beskrive ting på en generel måde, som 'computere kan forstå'.
Se også:
- 3 lagsmodellen
- Client server
- Rekursion
LINKS & Henvisninger
- Kurt Nørmark, IFTEK: "En note om Programmering" her
- Læs om programmering på Wikipedia
- "What is computerprogramming" DeepWizzard
- VOX & Netflix: "Coding explained" her