Holdet cb23ht2c-prob - Undervisningsbeskrivelse

Undervisningsbeskrivelse

Stamoplysninger til brug ved prøver til gymnasiale uddannelser
Termin(er) 2023/24 - 2024/25
Institution UNORD
Fag og niveau Programmering B
Lærer(e) Christian Reinhold
Hold cb23ht2c-prob (cbht2c-prob, cbht3c-prob)
Oversigt over gennemførte undervisningsforløb
Titel 1 Grundlæggende Python
Titel 2 Objektorienteret Python - Flask
Titel 3 Design Patterns - State Machine
Titel 4 Numpy, STL, m.fl.
Titel 5 Maskinlæring
Titel 6 AI assistenter
Titel 7 Grundlæggende C
Titel 8 C og Ncurses
Titel 9 Assembly programmering
Titel 10 Prøve-eksamensprojekt
Titel 11 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
Litteraturlisteprogram 22-10-2023
Omfang Estimeret: Ikke angivet
Dækker over: 32 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 2 Objektorienteret Python - Flask

OOP demonstreret gennem dynamisk Flask Website

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

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

Skriftligt arbejde:
Titel Afleveringsdato
2C til Haloween i London 31-10-2023
Grupper - Flask projektopgave 28-11-2023
Auktionssite 09-01-2024
Omfang Estimeret: Ikke angivet
Dækker over: 30 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 3 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 - Pygame 11-01-2024
Omfang Estimeret: Ikke angivet
Dækker over: 18 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 4 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
Brug af AI i programering 05-03-2024
Numpy opgave 2 12-03-2024
STL-fil lavet med Numpy 19-03-2024
Omfang Estimeret: Ikke angivet
Dækker over: 14 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 5 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
Website med ML-model 30-04-2024
Klassificering af frugt 09-06-2024
Omfang Estimeret: Ikke angivet
Dækker over: 24 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 6 AI assistenter

crewAI bruges til at lave dine egne LLM baserede AI-assistenter.
Indhold
Kernestof:
Omfang Estimeret: Ikke angivet
Dækker over: 26 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 7 Grundlæggende C

Evt. også ASM
Indhold
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
C programmer 27-10-2024
Omfang Estimeret: Ikke angivet
Dækker over: 12 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 8 C og Ncurses

Indhold
Kernestof:
Omfang Estimeret: Ikke angivet
Dækker over: 18 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 9 Assembly programmering

Indhold
Omfang Estimeret: Ikke angivet
Dækker over: 6 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 10 Prøve-eksamensprojekt

Faglige mål:
- behandle problemstillinger i samspil med andre fag
- anvende avancerede konstruktioner i et programmeringssprog
- rette, tilpasse og udvide avancerede programmer
- demonstrere viden om fagets identitet og metoder
Supplerende stof.
Indhold
Kernestof:
Omfang Estimeret: Ikke angivet
Dækker over: 20 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 11 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
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
Grupper - eksamensprojekt 12-03-2025
Projektbeskrivelse - eksamensprojekt 25-03-2025
Synopsis - Eksamensprojekt Prog B 15-05-2025
Omfang Estimeret: Ikke angivet
Dækker over: 30 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer