Undervisningsbeskrivelse
Stamoplysninger til brug ved prøver til gymnasiale uddannelser
|
Termin(er)
|
2023/24 - 2025/26
|
|
Institution
|
Skive College
|
|
Fag og niveau
|
Programmering B
|
|
Lærer(e)
|
|
|
Hold
|
T23b Pro (T23b Pro, T23b Pro, T23b Pro)
|
Oversigt over gennemførte undervisningsforløb
Beskrivelse af de enkelte undervisningsforløb (1 skema for hvert forløb)
|
Titel
1
|
Opstart på programmering
Eleverne starter på programmering, hvor de skal lære om:
* kontrol loops, variabler, funktioner.
Eleverne skal løse små opgaver inden for de enkelte begreber.
Faglige mål
• rette, tilpasse og udvide simple programmer
Kernestof
• programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer
|
|
Indhold
|
|
|
Omfang
|
Estimeret:
Ikke angivet
Dækker over:
8 moduler
|
|
Særlige fokuspunkter
|
|
|
Væsentligste arbejdsformer
|
|
|
Titel
2
|
Trekantsberegner
Eleverne skal i programmering lave en trekantsberegner. De skal udarbejde et dataflowdiagram for processen, hvorefter algoritmen skal implementeres i C# og Unity.
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 simple 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 simple programmer
• arbejde inkrementelt og systematisk i programmeringsprocessen.
Kernestof
• programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer, parametrisering
• arkitekturen for programmers interaktion med omgivelserne med henblik på hændelsesstyret interaktion og interaktion mellem systemer
• arbejdsgange og systematik i programmeringsprocessen, herunder test og fejlfinding
• abstrakte programmeringsbeskrivelser og dokumentation.
|
|
Indhold
|
|
|
Omfang
|
Estimeret:
Ikke angivet
Dækker over:
8 moduler
|
|
Særlige fokuspunkter
|
|
|
Væsentligste arbejdsformer
|
|
|
Titel
3
|
Towerdefence spil
Der skal laves et towerdefence spil i programmering. Der skal her fokuseres på at lave et objektorienteret design, samt begynde at lære om avancerede konstruktioner som klasser, nedarvning og polymorfi. Eleverne får udleveret noget eksempel kode, som der skal arbejdes videre på.
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
• demonstrere viden om fagets identitet og metoder
• arbejde inkrementelt og systematisk i programmeringsprocessen.
Kernestof
• programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer, parametrisering/abstraktionsmekanismer og polymorfi
• 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
|
|
|
Omfang
|
Estimeret:
Ikke angivet
Dækker over:
14 moduler
|
|
Særlige fokuspunkter
|
|
|
Væsentligste arbejdsformer
|
|
|
Titel
4
|
Vagter - Tilstandsmaskiner
Der skal laves en tilstandsmaskine til vagter i et spil. Vagternes opførelse skal tage udgangs punkt i hvad spilleren skal gøre. I projektet skal eleverne:
* Der skal tages udgangspunkt i følgende asset. https://assetstore.unity.com/packages/essentials/starter-assets-thirdperson-updates-in-new-charactercontroller-pa-196526
* Der skal laves et tilstandsdiagram, der beskriver vagtens opførelse.
* Tilstands maskinen skal implementeres med både et state pattern og ved hjælp af en switch
* Der skal arbejdes sammen med pakken Navigation AI, så vagterne selv kan finde en rute.
* Der sluttes med en mundtligt præsentation af projektet, der svare til at lave fremlæggelse til en mundtlig eksamen.
Følgende gaglige mål og kernestof er omfattet af projektet:
Faglige mål
• 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
• arbejde inkrementelt og systematisk i programmeringsprocessen.
Kernestof
• programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer, parametrisering/abstraktionsmekanismer og polymorfi
• 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
|
|
|
Omfang
|
Estimeret:
Ikke angivet
Dækker over:
13 moduler
|
|
Særlige fokuspunkter
|
|
|
Væsentligste arbejdsformer
|
|
|
Titel
5
|
Dialogsystem
I dette projekt skal I lave et dialogsystem til et spil og dialogsystemet skal opfylde følgende krav:
• Man skal kunne tage valg i dialog systemet
• Der skal være mere end en npc, som I skal i dialog med
• Dialogen skal starte, når man kommer indenfor en bestemt afstand
• Dialog valg for en NPC skal kunne have indflydelse på dialogen for en anden NPC.
• Man skal kunne gemme sine dialoger fra spil til spil.
• Dialoger skal laves i en chatbot.
Der skal laves en synopsis til projektet
Der arbejdes med følgende mål
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
• arbejde inkrementelt og systematisk i programmeringsprocessen.
Kernestof
• programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer,, rekursion,
• 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
|
|
|
Omfang
|
Estimeret:
Ikke angivet
Dækker over:
20 moduler
|
|
Særlige fokuspunkter
|
|
|
Væsentligste arbejdsformer
|
|
|
Titel
6
|
Colab spil
Eleverne skal lave et spil i fællesskab. De skal:
* Lære at dele kode ved hjælp af github.
* Definere undersystemer ved hjælp af diagrammer som klassediagrammer, sekvensdiagrammer og tilstandsdiagrammer.
* Holde status og snakke sammen om at kode den rigtige funktionalitet
* Få forskellige systemer til at arbejde sammen
* Arbejde med events i C# og implementere singleton pattern.
Der er arbejdet med følgende mål:
Faglige mål
• 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
• arbejde inkrementelt og systematisk i programmeringsprocessen.
Kernestof
• 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
|
|
|
Omfang
|
Estimeret:
Ikke angivet
Dækker over:
14 moduler
|
|
Særlige fokuspunkter
|
|
|
Væsentligste arbejdsformer
|
|
|
Titel
7
|
SR-case
Der skal laves en SR-case i samarbejde med matematik, hvor eleverne skal lave en styring til soltårne. Eleverne skal:
* Lave en simulering af soltårne
* Udarbejde algoritme til at placere mange heliostater.
* Lave styring til at regulere heliostater
Faglige mål
• behandle problemstillinger i samspil med andre fag
• 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
• demonstrere viden om fagets identitet og metoder
Kernestof
• programmeringssprog og elementer i programmers opbygning, herunder algoritmemønstre
• generiske programdele og biblioteksmoduler
• abstrakte programmeringsbeskrivelser og dokumentation.
|
|
Indhold
|
|
|
Omfang
|
Estimeret:
Ikke angivet
Dækker over:
2 moduler
|
|
Særlige fokuspunkter
|
|
|
Væsentligste arbejdsformer
|
|
|
Titel
8
|
Datadrevet applikation i Unity
Du skal udvikle et program i Unity, som henter og visualiserer eksterne data fra en API – fx vejrdata (OpenWeatherMap) eller nyheder (NewsAPI). Programmet skal demonstrere avancerede programmeringskonstruktioner og hændelsesstyret interaktion, og du skal dokumentere din udviklingsproces i en synopsis.
Der skal arbejdes i grupper og dele software via github.
Faglige mål
• Bruge programmering til at undersøge et problem og skabe ny indsigt
• Anvende avancerede konstruktioner
• Redegøre for programmets arkitektur og interaktion
• Dokumentere og teste programmet
• Vise forståelse for programmering som fag og metode
• Arbejde inkrementelt og systematisk
|
|
Indhold
|
|
|
Omfang
|
Estimeret:
Ikke angivet
Dækker over:
13 moduler
|
|
Særlige fokuspunkter
|
|
|
Væsentligste arbejdsformer
|
|
|
Titel
9
|
GameJam
Eleverne skal i grupper lave et spil, der skal opfylde følgende krav. De skal arbejde i store grupper.
• Spillet skal være et simuleringsspil.
○ Man skal kunne placere bygninger.
○ UI.
○ Der skal være en UI, hvis man så trykker på en knap, kommer der en bygning op, og den skal placeres på en valgfri måde (Ideer: Flytte rundt med cursor eller placeres i et grid.)
• Instantiating prefabs via kode.
• Lav UML-Diagrammer der passer til projektet.
• Der skal være 2 grupper, som er inddelt 50/50.
• Der skal være roller, hver rolle er udleveret til en person.
○ Asset manager
○ GitHub manager
○ Spil manager
○ Scrum master
• Minimal design: Alle skal have kode opgaver.
• Et eller flere af disse systemer skal være repræsenteret:
○ Shop system
○ Ressource system.
○ Bygge system.
○ Cyklus system.
○ Inventory.
• Per system man vælger, skal der være et design-pattern der passer til systemet.
○ En god hjælp: https://refactoring.guru/design-patterns/catalog
○ En anden god hjælp: https://github.com/Habrador/Unity-Programming-Patterns
○ Man kan altid spørge chatbots til hvilke design-patterns der passer ind.
• Hvilke unitests skal man have?
○ Koden skal opfylde de tests.
○ Hver gang man ændrer koden skal man køre de unitests.
• Plakat som aflevering.
○ UML-Diagrammer med designeret design pattern (Hvilke systemer repræsenterer UML-Diagrammerne?)
○ Kode eksempler.
○ Billeder af spillet.
○ Kort forklaring af spillet.
Anbefalede programmer: Adobe Illustrator, Canva: https://www.canva.com/ & PowerPoint.
Faglige mål
Eleverne skal kunne:
• 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
• arbejde inkrementelt og systematisk i programmeringsprocessen
Kernestof
Gennem kernestoffet skal eleverne opnå faglig fordybelse, viden og kundskaber. Kernestoffet er:
• programmeringssprog og elementer i programmers opbygning, herunder:
variabler
typer
udtryk
kontrolstrukturer
parametrisering/abstraktionsmekanismer
polymorfi
• arkitekturen for programmers interaktion med omgivelserne med henblik på:
hændelsesstyret interaktion
• generiske programdele og biblioteksmoduler
• arbejdsgange og systematik i programmeringsprocessen, herunder:
test
fejlfinding
• abstrakte programmeringsbeskrivelser og dokumentation
|
|
Indhold
|
|
|
Omfang
|
Estimeret:
Ikke angivet
Dækker over:
14 moduler
|
|
Særlige fokuspunkter
|
|
|
Væsentligste arbejdsformer
|
|
|
Titel
10
|
Selvstændig forløb
Ved hjælp af AI, skal eleverne finde områder inden for programmering B, hvor de har behov for at lave flere opgaver. Så eleverne kan både lave en masse små opgaver eller lidt støre projekter, hvor de arbejder med udvalgte emner indenfor pensum.
Faglige mål:
anvende avancerede konstruktioner i et programmeringssprog
redegøre for arkitekturen af programmer på forskellige abstraktionsniveauer, herunder relationen mellem brug og funktion
rette, tilpasse og udvide avancerede programmer
Kernestof
programmeringssprog og elementer i programmers opbygning, herunder:
* variabler
* typer
* kontrolstrukturer
* parametrisering/abstraktionsmekanismer
* rekursion
* polymorfi
Der sluttes af med at eleven fremlægger hvad man har lavet.
|
|
Indhold
|
|
|
Omfang
|
Estimeret:
Ikke angivet
Dækker over:
7 moduler
|
|
Særlige fokuspunkter
|
|
|
Væsentligste arbejdsformer
|
|
|
Titel
11
|
Eksamensprojekt
Tema 1 - spilelement til spil
I jeres eksamensprojekt i programmering, skal I udvælge et element indenfor spil. Det er vigtigt at I skal udvælge jer enkelte dele af et spil, som I kan gå i dybden med.
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
• 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
• demonstrere viden om fagets identitet og metoder
• arbejde inkrementelt og systematisk i programmeringsprocessen.
Kernestof
• programmeringssprog og elementer i programmers opbygning, herunder variabler, typer, udtryk, kontrolstrukturer, parametrisering/abstraktionsmekanismer, 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
|
|
|
Omfang
|
Estimeret:
14,00 moduler
Dækker over:
14 moduler
|
|
Særlige fokuspunkter
|
|
|
Væsentligste arbejdsformer
|
|
|
Titel
12
|
Forløb#11
|
|
Indhold
|
|
|
Omfang
|
Estimeret:
Ikke angivet
Dækker over:
0 moduler
|
|
Særlige fokuspunkter
|
|
|
Væsentligste arbejdsformer
|
|
{
"S": "/lectio/562/stamdata/stamdata_edit_student.aspx?id=666\u0026prevurl=studieplan%2fuvb_hold_off.aspx%3fholdid%3d63903614956",
"T": "/lectio/562/stamdata/stamdata_edit_teacher.aspx?teacherid=666\u0026prevurl=studieplan%2fuvb_hold_off.aspx%3fholdid%3d63903614956",
"H": "/lectio/562/stamdata/stamdata_edit_hold.aspx?id=666\u0026prevurl=studieplan%2fuvb_hold_off.aspx%3fholdid%3d63903614956"
}