Holdet cbht3f-prob (2025/26) - Undervisningsbeskrivelse

Undervisningsbeskrivelse

Stamoplysninger til brug ved prøver til gymnasiale uddannelser
Termin(er) 2024/25 - 2025/26
Institution X - aktivitetsplanlægning UNORD
Fag og niveau Programmering B
Lærer(e) Christian Reinhold
Hold cb24ht2f-prob (cbht2f-prob, cbht3f-prob)

Oversigt over gennemførte undervisningsforløb
Titel 1 Grundlæggende Python
Titel 2 Objektorienteret Python
Titel 3 Objektorienteret Python - Flask
Titel 4 Design Patterns - State Machine
Titel 5 Numpy, STL, m.fl.
Titel 6 Maskinlæring
Titel 7 Assembly programmering
Titel 8 Grundlæggende C
Titel 9 Cybermissionen
Titel 10 Javascript
Titel 11 AI agents
Titel 12 Klassifikation - Naive Bayes
Titel 13 Eksamensprojekt

Beskrivelse af de enkelte undervisningsforløb (1 skema for hvert forløb)
Titel 1 Grundlæggende Python

Grundlæggende programmering i Python:
- variabler, datatyper, løkker, betinget udførsel, lister, procedurer, m.m.

Kernestof:
̶ programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer, parametrisering/abstraktionsmekanismer, rekursion, polymorfi og algoritmemønstre
Indhold
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
Skudårsberegner 29-08-2024
Sorteringsalgoritmer 03-09-2024
Forarbejder Vigenere kryptering 29-09-2024
Kunder og Varer 07-11-2024
Omfang Estimeret: Ikke angivet
Dækker over: 14 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 2 Objektorienteret Python

Klasser og objekter, metoder, konstruktører, arv, komposition m.m.
Klassediagrammer

Faglige mål:
- anvende avancerede konstruktioner i et programmeringssprog
- rette, tilpasse og udvide avancerede programmer
- arbejde inkrementelt og systematisk i programmeringsprocessen.
Indhold


Skriftligt arbejde:
Titel Afleveringsdato
10 centrale begreber 02-02-2025
Omfang Estimeret: Ikke angivet
Dækker over: 6 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 3 Objektorienteret Python - Flask

OOP demonstreret gennem dynamisk Flask Website

Klasser og objekter, metoder, konstruktører, arv, komposition m.m.
HTML, CSS, JS, Jinja, SQLite
Introduktion til Git, Github

Faglige mål:
- anvende avancerede konstruktioner i et programmeringssprog
- rette, tilpasse og udvide avancerede programmer
- arbejde inkrementelt og systematisk i programmeringsprocessen.
Indhold
Kernestof:
Omfang Estimeret: Ikke angivet
Dækker over: 30 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 4 Design Patterns - State Machine

State Machine Design pattern - PyGame spil opbygget efter et state machine design pattern.

Faglige Mål:
- bruge programmering til at undersøge et emne eller problemområde, med henblik på – via programmets funktion - at skabe ny indsigt eller til at løse et problem
- anvende avancerede konstruktioner i et programmeringssprog
̶- redegøre for arkitekturen af programmer på forskellige abstraktionsniveauer, herunder relationen mellem brug og funktion
̶  redegøre for simple specifikationsmodeller og realisere disse i simple velstrukturerede programmer samt teste disse
̶  rette, tilpasse og udvide avancerede programmer

Kernestof:
- programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer, parametrisering/abstraktionsmekanismer, rekursion, polymorfi og algoritmemønstre


Indhold
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
Grupper - Pygameprojekt 07-01-2025
Omfang Estimeret: Ikke angivet
Dækker over: 14 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 5 Numpy, STL, m.fl.

Numpy, STL, Matplotlib og 3D-print
Vi tager udgangspunkt i diverse kapitler fra denne bog:
https://jakevdp.github.io/PythonDataScienceHandbook/

Gennemgang af Numpy
To individuelle opgaver

Projektforløb, hvor en 3D-model defineres i Numpy-arrays og eksporteres til STL-fil og 3D-printes.

Faglige mål:
- bruge programmering til at undersøge et emne eller problemområde, med henblik på –via programmets funktion -at skabe ny indsigt eller til at løse et problem ̶behandle problemstillinger i samspil med andre fag
- anvende avancerede konstruktioner i et programmeringssprog

Kernestof:
- programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer, parametrisering/abstraktionsmekanismer, rekursion, polymorfi og algoritmemønstre

Supplerende stof:
Vektorer og matricer, manipulation af 3D-grafik
Indhold
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
Numpy opgave 1 02-03-2025
Numpy opgave 2 09-03-2025
STL fil 14-03-2025
Omfang Estimeret: Ikke angivet
Dækker over: 24 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 6 Maskinlæring

Supplerende stof, Introduktion til Maskinlæring:
- klargøring af data
- udvælgelse af 'feature'-variable
- visualisering af data
- opdeling i trænings-, test- og valideringsdata
- træning af modellen
- evaluering af modellen, over- og underfitting
- finindstil parametre
- forudsigelse

Kernestoffet:

- programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer, parametrisering/abstraktions-mekanismer, rekursion, polymorfi og algoritmemønstre

- arkitekturen for programmers interaktion med omgivelserne med henblik på hændelsesstyret interaktion og interaktion mellem systemer

- generiske programdele og biblioteksmoduler

- arbejdsgange og systematik i programmeringsprocessen, herunder test og fejlfinding

- abstrakte programmeringsbeskrivelser og dokumentation
Indhold
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
Linar model - Housing datasættet 28-03-2025
Lineær model - Huosing datasættet 31-03-2025
Undersøg datasæt 04-04-2025
Grupper - ML/Flask opgave 02-05-2025
Flask og ML-model 11-05-2025
Omfang Estimeret: Ikke angivet
Dækker over: 16 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 7 Assembly programmering

Registre, Instruktionssæt, Gates, Binær aritmetik
Little man computer
RISC processor (Raspberry Pi)

Kernestof:
̶  programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer, parametrisering/abstraktionsmekanismer, rekursion, polymorfi og algoritmemønstre

̶  arbejdsgange og systematik i programmeringsprocessen, herunder test og fejlfinding
Indhold
Kernestof:
Omfang Estimeret: Ikke angivet
Dækker over: 8 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 8 Grundlæggende C

evt. også Ncurses
Indhold
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
Ohms Lov Beregner 10-09-2025
C-opgaver 18-09-2025
Ncurses Cæsar kryptering 19-10-2025
Omfang Estimeret: Ikke angivet
Dækker over: 20 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 9 Cybermissionen

Deltaget i konkurrencen Cybermissionen, mission 2

Faglige mål:
- bruge programmering til at undersøge et emne eller problemområde, med henblik på – via programmets funktion - at skabe ny indsigt eller til at løse et problem
- behandle problemstillinger i samspil med andre fag
- demonstrere viden om fagets identitet og metoder
Indhold
Kernestof:
Omfang Estimeret: Ikke angivet
Dækker over: 8 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 10 Javascript

Indhold
Kernestof:
Omfang Estimeret: Ikke angivet
Dækker over: 16 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer


Titel 12 Klassifikation - Naive Bayes

Indhold
Kernestof:
Omfang Estimeret: Ikke angivet
Dækker over: 14 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 13 Eksamensprojekt

Fra bekendtgørelsen:
"I den afsluttende periode af undervisningen afsættes 20 timers undervisningstid til, at eleverne med vejledning fra læreren,
udarbejder et eksamensprojekt i grupper på to til tre. Hvor dette ikke er muligt eller ønskeligt, kan man lade eleverne arbejde individuelt. Eksamensprojektet består af et produkt samt en synopsis. Synopsen skal dokumentere udviklingen af det færdige produkt og må højst have et omfang af fem til otte normalsider, eksklusiv koder, rutediagrammer, bilag mm.
Eksamensprojektet udarbejdes inden for rammerne af projektoplæg stillet af skolen. Eksamensprojektgrupperne udarbejder en fælles projektbeskrivelse, der inkluderer en beskrivelse af den enkelte eksaminands fokus. Projektbeskrivelsen godkendes af skolen, når beskrivelsen er tilstrækkelig fagligt bred og niveaumæssigt relevant. Eksamensprojektets synopsis er individuelt udarbejdet.
Afleveringstidspunktet skal normalt være senest en uge før eksamensperiodens begyndelse.
Eksamensprojektet indgår i grundlaget for den afsluttende standpunktskarakter, hvis der gives en sådan, og udgør grundlaget
for prøven.
Eksamensprojektets synopsis er forinden prøven ikke rettet og kommenteret af eksaminator.
Den enkelte elev dokumenterer løbende sin faglige udvikling i en logbog. Dokumentationen i logbogen kan have form af f.eks.
it-systemer, programmer, noter, synopser, programbeskrivelser og flowcharts."
Indhold
Omfang Estimeret: Ikke angivet
Dækker over: 26 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer