Holdet S3r Pro (2024/25) - Undervisningsbeskrivelse

Undervisningsbeskrivelse

Stamoplysninger til brug ved prøver til gymnasiale uddannelser
Termin(er) 2023/24 - 2024/25
Institution ZBC
Fag og niveau Programmering B
Lærer(e)
Hold S2022r Pro (S2r Pro, S3r Pro)
Oversigt over gennemførte undervisningsforløb
Titel 1 Introduktion
Titel 2 Projekt 1 - Algoritmisk kunst
Titel 3 Datastrukturer (sammensatte datatyper)
Titel 4 Algoritmemønstre
Titel 5 Projekt 2 - PyGame
Titel 6 Studieretningscase med Matematik (SRC)
Titel 7 Intro til Rust & repetition
Titel 8 Projekt Skak
Titel 9 Hukommelse
Titel 10 Projekt Droner
Titel 11 Generalisering og polymorfi
Titel 12 Projekt Planlægning
Titel 13 Eksamensprojekt

Beskrivelse af de enkelte undervisningsforløb (1 skema for hvert forløb)
Titel 1 Introduktion

Introduktion til programmering i Python.

Fokus på:

- Funktioner
- Forgreninger
- Løkker

Faglige mål:
- læse enkle programmer og redegøre for deres funktionsmåde og anvendelsesmuligheder
- rette og tilpasse enkle programmer
- anvende eksisterende programdele og biblioteksmoduler i arbejdet med at programmere et fungerende system

Kernestof:
- programmeringssprog og elementer i programmeringssprogets opbygning såsom data- og kontrolstrukturer
- programdele og biblioteksmoduler

Omfang:
10% - Systime, Programmering & Green Tea Press, Think Python 2e
Indhold
Kernestof:
Omfang Estimeret: 13,00 moduler
Dækker over: 15 moduler
Særlige fokuspunkter
  • Faglige
  • Lytte
  • Læse
  • Søge information
  • Skrive
  • Almene (tværfaglige)
  • Overskue og strukturere
  • Personlige
  • Selvstændighed
  • IT
Væsentligste arbejdsformer
  • Individuelt arbejde
  • Lærerstyret undervisning
Titel 2 Projekt 1 - Algoritmisk kunst

Projekt om algoritmisk kunst

Overordnet mål: Fremstille min. 3 forskellige kunstværker med brug af min. 2 forskellige metoder (såsom løkker, rekursion, animation)

Under projektet introduceres nye begreber løbende.

Individuelt arbejde eller små grupper: 1-3 personer.
Projektet afsluttes med mundtlig præsentation.

Faglige mål
̶ anvende eksisterende programdele og biblioteksmoduler i arbejdet med at programmere et fungerende system
̶ demonstrere systematik i programmeringsprocessen
̶ løse en enkel problemstilling gennem udviklingen af et program bl.a. i samspil med andre fag
̶ anvende grundlæggende konstruktioner i et programmeringssprog

Kernestof
̶ programmeringssprog og elementer i programmeringssprogets opbygning såsom data- og kontrolstrukturer
̶ programdele og biblioteksmoduler
̶ arbejdsgange og systematik i programmeringsprocessen

Omfang:
10% - Systime, Programmering & Green Tea Press, Think Python 2e
Indhold
Kernestof:

Supplerende stof:
Omfang Estimeret: 15,00 moduler
Dækker over: 17 moduler
Særlige fokuspunkter
  • Faglige
  • Lytte
  • Læse
  • Søge information
  • Projektarbejde
  • Formidling
  • Almene (tværfaglige)
  • Overskue og strukturere
  • Personlige
  • Selvstændighed
  • Kreativitet
  • Sociale
  • Samarbejdsevne
  • IT
Væsentligste arbejdsformer
  • Projektarbejde
Titel 3 Datastrukturer (sammensatte datatyper)

Forløb med sammensatte datatyper i Python: List, Dictionary, Tuple.

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

Omfang:
5% - Systime, Programmering & Green Tea Press, Think Python 2e
Indhold
Kernestof:
Omfang Estimeret: 6,00 moduler
Dækker over: 6 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 4 Algoritmemønstre

Deltagelse i Dansk DatalogiDyst - del 2 og "Tom's data onion" (som indebærer diverse indkodning/afkodning, binære operationer og kryptologi).

Kernestof:
- Algoritmemønstre.
Indhold
Kernestof:
Omfang Estimeret: 10,00 moduler
Dækker over: 7 moduler
Særlige fokuspunkter
  • Faglige
  • Almene (tværfaglige)
  • Analytiske evner
  • IT
Væsentligste arbejdsformer
  • Gruppearbejde
  • Individuelt arbejde
Titel 5 Projekt 2 - PyGame

I dette projekt programmeres et simpelt spil vha. PyGame. Man kan arbejde ud fra et af flere projektforslag eller lave sit eget forslag. Der udleveres simple eksempler der kan bruges som skabelon og/eller til inspiration.

Programmet skal opbygges vha. trinvis forfinelse og der skal skrives kommentarer til koden. Sørg for at holde koden overskuelig og logisk struktureret. Der vil løbende blive introduceret nye begreber under projektforløbet som så vidt muligt skal inddrages i projektet.

Under projektet trænes dokumentation af sin programmering og udformning af synopsis.

Gruppearbejde: 2-3 personer.
Projektet danner basis for mundtlig årsprøve.
Synopsis er på 5-8 sider.
Arbejdsprocessen skal dokumenteres i logbog.

Faglige mål:
̶ læse enkle programmer og redegøre for deres funktionsmåde og anvendelsesmuligheder
̶  anvende eksisterende programdele og biblioteksmoduler i arbejdet med at programmere et fungerende system
̶ anvende grundlæggende konstruktioner i et programmeringssprog
̶ demonstrere viden om fagets identitet og metoder.

Kernestof:
̶ programmeringssprog og elementer i programmeringssprogets opbygning såsom data- og kontrolstrukturer
̶ programdele og biblioteksmoduler
̶ arbejdsgange og systematik i programmeringsprocessen
̶ abstrakte programmeringsbeskrivelser og dokumentation.

Omfang:
10% - Systime, Programmering & Green Tea Press, Think Python 2e
Indhold
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
Synopsis til spilprojekt 28-04-2024
Omfang Estimeret: 30,00 moduler
Dækker over: 29 moduler
Særlige fokuspunkter
  • Faglige
  • Søge information - API dokumentation (pygame)
  • Skrive - Formidling vha. Synopsis
  • IT - Sammensatte datatyper (List, dictionary, Tuple, Set)
Væsentligste arbejdsformer
  • Gruppearbejde
  • Projektarbejde
Titel 6 Studieretningscase med Matematik (SRC)

I programmeringsdelen af SRC fokuseres der på klasser i Python og hvordan disse kan bruges til at lave funktionsobjekter.

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
- 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 variabler, typer, udtryk, kontrolstrukturer, parametrisering/abstraktionsmekanismer, rekursion
- arbejdsgange og systematik i programmeringsprocessen, herunder test og fejlfinding
- abstrakte programmeringsbeskrivelser og dokumentation.

Omfang:
10% - Systime, Programmering & Green Tea Press, Think Python 2e
Indhold
Kernestof:
Omfang Estimeret: 15,00 moduler
Dækker over: 3 moduler
Særlige fokuspunkter
  • Faglige - Funktionsobjekter
  • Læse
  • Søge information
  • Skrive
  • Projektarbejde
  • Formidling
  • Selvrefleksion
  • Almene (tværfaglige)
  • Overskue og strukturere
  • Personlige
  • Selvstændighed
  • Ansvarlighed
  • IT
Væsentligste arbejdsformer
  • Projektarbejde
Titel 7 Intro til Rust & repetition

Syntaks, kommentarer, variabler, funktioner, sammensatte datatyper, løkker og forgreninger.

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

Omfang:
10% - Systime, Programmering, "The Rust Programming Language" & egne noter
Indhold
Kernestof:
Omfang Estimeret: 6,00 moduler
Dækker over: 8 moduler
Særlige fokuspunkter
  • Faglige
  • Lytte
  • Læse
  • Skrive
  • IT
Væsentligste arbejdsformer
  • Individuelt arbejde
  • Lærerstyret undervisning
Titel 8 Projekt Skak

Fremstilling af skakprogram med generering af træk. Herunder teori om kontrolstrukturer, grådige algoritmer, minimax, fejlfinding, fejlhåndtering, abstraktion, indkapsling, klassediagram med relationer og programmeringsparadigmer.

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
- 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

Omfang:
10% - Systime, Programmering, "The Rust Programming Language" & egne noter
Indhold
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
Skakprojekt 13-10-2024
Omfang Estimeret: 20,00 moduler
Dækker over: 13 moduler
Særlige fokuspunkter
  • Faglige
  • IT
Væsentligste arbejdsformer
  • Projektarbejde
Titel 9 Hukommelse

Allokering af hukommelse, referencer og pointers.

Faglige mål:
- 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

Omfang:
10% - Rust bog & egne noter
Indhold
Kernestof:
Omfang Estimeret: 4,00 moduler
Dækker over: 3 moduler
Særlige fokuspunkter
  • Faglige
  • IT
Væsentligste arbejdsformer
  • Individuelt arbejde
  • Lærerstyret undervisning
Titel 10 Projekt Droner

Projektforløb hvor der udvikles et computerprogram at sende kommandoer til en lille indendørs drone og modtage svar, telemetri data samt videosignal.

Behandlede begreber:
- Netværkskommunikation (UDP)
- Anonyme funktioner
- Tråde (samtidig programmering)
- Kommunikation mellem programmer (grænseflader)
- Biblioteksmoduler

Faglige mål:
- demonstrere viden om fagets identitet og metoder
- arbejde inkrementelt og systematisk i programmeringsprocessen
- anvende avancerede konstruktioner i et programmeringssprog

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

Omfang:
10% - Systime, Programmering & egne noter
Indhold
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
Drone projekt 10-12-2024
Omfang Estimeret: 20,00 moduler
Dækker over: 18 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 11 Generalisering og polymorfi

Generalisering bl.a. vha. parametrisering. Polymorfi under kompilering (static dispatch) ved overlæsning og generisk funktion. Polymorfi under kørsel (dynamic dispatch) vha. referencer.

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
- redegøre for simple specifikationsmodeller og realisere disse i simple velstrukturerede programmer samt teste disse

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

Omfang:
10% - Systime, Programmering & egne noter
Indhold
Kernestof:
Omfang Estimeret: 4,00 moduler
Dækker over: 6 moduler
Særlige fokuspunkter
  • Faglige
  • Lytte
  • Læse
  • Søge information
  • Selvrefleksion
  • Almene (tværfaglige)
  • Analytiske evner
  • Overskue og strukturere
  • IT
Væsentligste arbejdsformer
  • Individuelt arbejde
  • Lærerstyret undervisning
Titel 12 Projekt Planlægning

Selvstændigt projektarbejde som optakt til eksamensprojekt. Der udvikles et program der kan anvendes til planlægning. Der skal anvendes polymorfi.

Faglige mål:
- bruge programmering til at løse et problem
- anvende avancerede konstruktioner i et programmeringssprog
- redegøre for arkitekturen af programmer på forskellige abstraktionsniveauer
- 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, rekursion, polymorfi og algoritmemønstre
- generiske programdele og biblioteksmoduler
- arbejdsgange og systematik i programmeringsprocessen, herunder test og fejlfinding
- abstrakte programmeringsbeskrivelser og dokumentation.

Omfang:
5% - Systime, Programmering & egne noter
Indhold
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
Projekt planlægning 09-03-2025
Omfang Estimeret: 20,00 moduler
Dækker over: 15 moduler
Særlige fokuspunkter
  • Faglige
  • Søge information
  • Skrive
  • Formidling
  • IT - Valgfrit sprog
Væsentligste arbejdsformer
  • Projektarbejde
Titel 13 Eksamensprojekt

Mål: Udarbejde et program og tilhørende dokumentation i form af synopsis.

Man vælger selv tema og programmeringssprog. Man kan evt. lade sig inspirere af egne tidligere projekter eller nedenstående liste af tidligere gennemførte eksamensprojekter.

Projektbeskrivelsen skal indeholde valg af programmeringssprog, en kort indledning, problemformulering og oversigt over hvert gruppemedlems forventede ansvar i projektet. (Dette må gerne genbruges i synopsis.)
Indhold
Kernestof:

Skriftligt arbejde:
Titel Afleveringsdato
Eksamensprojekt: Projektbeskrivelse 23-03-2025
Eksamensprojekt programmering 07-05-2025
Omfang Estimeret: 20,00 moduler
Dækker over: 20 moduler
Særlige fokuspunkter
  • Faglige
  • IT
Væsentligste arbejdsformer
  • Projektarbejde