Programmering B årsprøve

Årsprøve

Årsprøven afvikles som en generalprøve på næste års eksamen, og tager derfor udgangspunkt i en projekteksamen, muligvis med et simpelt tillægsspørgsmål. Der afsættes tyve minutters forberedelsestid, samt tyve minutters eksaminationstid.

Udvalgt projekt

Det udvalgte projekt, skal være et programmeringsprojekt, hvor eksaminanden selv har stået for væsentlige dele af den kode som fremlægges. Man må gerne vælge et projekt man har lavet i samarbejde med andre, og også projekter som er en videreudvikling af kode man har taget udefra. Men man skal selvfølgelig redegøre for sin egen rolle – både i den tilhørende synopsis samt i præsentationen.

I programmering arbejder vi indenfor de faglige kerneområder som er beskrevet på de følgende sider. Man kan vælge at fokusere på allesammen eller udvalgte dele i forhold til ens projekt.

User Interface (UI)

Opbygning af brugergrænseflade og brug af biblioteker til brugergrænsefladen. Et UI består af forskellige komponenter. En komponent er kort sagt en ting på brugergrænsefladen. Det kan være en knap, et stykke tekst, en menu – eller andre ting, som udgør det som brugere ser og kan interagere med.

For eksempel hvordan man anvender biblioteket p5.js til at opbygge et Canvas og lave elementer i brugergrænsefladen med det: input elementer, menuknapper, div elementer samt visuelle komponenter, for eksempel i et lille spil, tegneprogram eller lignende.

Eller for eksempel hvordan man opretter stylesheets og manipiulerer indholdet i sin p5 skitse af den vej.

Eller hvordan man anvender en css boilerplate (såsom materialize.css eller skeleton.css) til at designe en html sides brugergrænse komponenter.

Eller også hvordan man (lidt mere avanceret), anvender biblioteket handlebars.js, til at lave templates til dynamisk indhold.

Grundlæggende elementer i programmers opbygning

Når vi laver programmer, er der en række helt grundlæggende metoder som vi bruger igen og igen: Variabler, typer, udtryk, kontrolstrukturer, funktioner og parametre.

Vi programmerer i javascript, men det er klart at disse fænomener går igen på tværs af mange forskellige sprog. Til årsprøven skal i kunne redegøre for hvad de betyder og hvordan man bruger dem.

For eksempel når man opretter globale variable af forskellige typer i begyndelsen af et program (tal, tekst, arrays, booleans osv). Eller når man opretter funktioner med parametre, for at kunne løse standardopgaver i programmet.

Eller når man opretter objekter for at skabe klasser – eksempelvis biler, bolde eller animationer, men også mange alle ting der kan inddeles i en klasse.

Der findes allerede god dokumentation af de grundlæggende elementer i programmering på siden her – og forhåbentlig også på jeres egne blogs – men vælg blandt de emner i synes i savner at opdatere.

Arkitektur og integration med eksterne data

I programmering er det vigtigt at have et overblik over arkitekturen i et projekt: hvilke dele er programmet bygget op af? Ofte importerer vi en række scripts i begyndelsen af et program – det handler om at kunne beskrive hvorfor de er nyttige.

Når vi begynder at anvende eksterne API’er til at indhente data – så kommer der flere elementer i spil, og vi skal kunne danne et billede af den samlede kode.

For eksempel når vi bruger asynkrone javascript funktioner til at hente eksterne data. Denne arkitektur kaldes AJAX (Asynchronous JavaScript And XML), og det er vigtigt at i læser lidt op på netop disse funktioner.

For eksempel når vi bruger (biblioteket) jQuery til at hente data fra et eksternt API via AJAX.

Eller når vi bruger biblioteket handlebars.js til at parse disse eksterne data i templates.

Og når vi bruger en css boilerplate – materialize.css – til at lay-oute dem til sidst.

Denne del af faget går altså ud på at kunne forklare – og gerne vise med figurer, flowcharts eller andre modeller – hvordan et program er skruet sammen. Jeg har lavet et eksempel du lige nedenfor.

Generiske programdele og biblioteksmoduler

Vi har været inde på dem før – men de er altså også et selvstændigt kernefagligt emne i programmering: generiske programdele og biblioteksmoduler. Hvad betyder egentlig generisk? Jo, det betyder at man kan bygge en “klump” kode op, som andre kan bruge som en svejtserkniv til at løse forskellige formål.

For eksempel når vi anvender jQuery til at vælge HTML DOM elementer ud fra deres elementnavn, klasse eller id.

Eller når vi bruger p5.js til at gøre det nemt at skabe visuelle programmer på et canvas.

Eller når vi bruger en css boilerplate til at skabe en lay-out ramme for et program.

Arbejdsgange og systematik

Som i har bemærket er der en masse redskaber og software i programmering – til programmering. Vi bruger forskellige slags software afhængig af hvilke programmer vi vil skabe. Programmeringen er somme tider – for eksempel i spilproduktion – kun en delmængde af den software, fx Unity. Andre gange er programmeringen det eneste vi ser – fx når vi programmerer i Visual Studio Code.

Næste år går vi mere i dybden med arbejdsgange. I bliver præsenteret for metoden SCRUM, som er smart til at holde styr på fremdriften i større programmeringsprojekter. Indtil videre har i dog arbejdet med en del redskaber, som det er værd at reflektere over i forhold til processen med at skabe et program.

For eksempel kode-editoren visual studio code, som bl.a (via dens biblioteksmoduler) gør det muligt at få automatiske kodeforslag, at autoformattere koden (beautify), at se et live preview i browseren eller at integrere med versionskontrol (github). Alle disse funktioner er relevante i forhold til arbejdsgange og systematik i programmering.

Senere skal vi også se på hvordan man bruger editoren til at lave mere avanceret test og fejlfinding – men det gemmer vi til næste år.

I har også lært at bruge github, som versionskontrol og samarbejdsredskab. I skal her redegøre for de grundlæggende funktioner i git og github – for eksempel at oprette et git clone, forke, committe og pushe.

Webkonsollen bruger vi også meget når vi programmerer javascript. Den er et naturligt redskab til at følge HTML DOM’en samt at se kode og fejlbeskeder.

Abstrakte programmeringsbeskrivelser og dokumentation

Dokumentation er ufattelig vigtigt i programmering. I har allerede selv oplevet det: man fordyber sig i et eller andet, finder langt om længe løsningen – men næste gang man ser sin kode, er det pist væk fra ens helt egen hjerne.

Selvom vi ikke har arbejdet med meget komplekse kodeprojekter endnu, har i allerede lært en del redskaber til at dokumentere koden undervejs.

For eksempel hvordan man opretter kommentarer i Javascript, i HTML og i CSS – husk, det er ikke samme syntaks, men i skal kunne den på fingerspidserne.

Hvordan man bruger pseudokode til at opbygge en forståelse af hvilke dele og hvilken arkitektur ens program skal have.

Hvordan man bruger github som dokumentation – særligt i forhold til readme fil og løbende commit beskeder.

Men også hvordan man bruger github pages eller WordPress til at publicere sin kode.

Leave a comment

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *