NEXT - Sukkertoppen Gymnasium
lan
Hovedmenu
history
Versionsinformation
NEXT - Sukkertoppen Gymnasium
Hovedmenu
Log ind
keyboard_arrow_down
login
Brugernavn
login
MitID
Kontakt
Hjælp
Hjælp
Holdet S2023 Pro/j - Undervisningsbeskrivelse
menu
document_scanner
Vis udskriftsvenlig udgave
print
Print med tilpasset bredde til A3
print
Print med tilpasset bredde til A4
Undervisningsbeskrivelse
Stamoplysninger til brug ved prøver til gymnasiale uddannelser
Termin(er)
2024/25 - 2025/26
Institution
NEXT
Fag og niveau
Programmering B
Lærer(e)
Hold
S2023 Pro/j (
S2p Pro
,
S3j Pro
)
Oversigt over gennemførte undervisningsforløb
Titel 1
Fundamentale koncepter
Titel 2
Først større projekt
Titel 3
SRC
Titel 4
OOP
Titel 5
Software Engineering
Titel 6
Funktionel Programmering
Titel 7
Eksamensprojekt
Beskrivelse af de enkelte undervisningsforløb (1 skema for hvert forløb)
Titel 1
Fundamentale koncepter
Til introduktion til program er det valgt at lære dem at programmere i javascript med anvendelse af biblioteket P5.
Forløbet har haft følgende fokus områder.
1) Anvendelse af function setup() og function draw() samt funktioner som line(), circle(), rect(), background(), fill() samt begrebet RGB.
2) Oprettelse af variabler anvendelse af ’let’ og ’const’ (const i mindre grad anvendt af didaktiske årsager) samt forståelse for forskellige datatyper som numbers, floats, bools ,strings. Anvendelse af mouseX og mouseY som inputsvariabler.
3) Anvendelse af konsol til simpel fejl-finding.
4) Betingede udførsler ’if’, ’if-else’ og ’if-else-if’, samt anvendelse de mest gængse logiske operatorer
5) Kontrol strukturer som switch-case og løkker, herunder for- og while-løkker samt nestede løkker og deres anvendelser.
6) Enkelt samt multidimensionelle arrays. Array metoder som pop(), push(), shift(), unshift(), slice().
7) Funktioner, argumenter, parametre samt return værdier. Gængse biblioteks funktion keyPressed(), keyReleased() samt keyCodes. Opstilling udvikling af egne funktioner.
8) GUI elementer som knapper og tekst-inputfelter, samt anvendelse af callback functioner i forbindelse disse.
Igennem det meste af forløbet anvendte vi Visual Studio Code som IDE.
I denne IDE blev eleverne bedt om at installere følgende extensions.
• p5.vscode
• p5js Snippets
• Live Server
Under vejs arbejde vi på en masse små mindre programmeringsopgave for at træne programmeringsfærdighederne i de ovennævnte begreber.
Indhold
Kernestof:
https://henriksterner.github.io/P5Programmering/
I dag er virtuel undervisning i mine timer. I arbejder selv på øvelserne 1-11 i kap. 4, samt projektet "Katten efter musen" (også kap. 4). Jeg er tilgængelig på team, så skriv, hvis der er noget.
Jeg er syg, så I skal i dag arbejde selv med øvelserne fra kapitel 5.
Skriftligt arbejde:
Titel
Afleveringsdato
Øvelser kapitel 3
08-09-2024
Øvelser kapitel 3
08-09-2024
Øvelser kapitel 3
08-09-2024
Øvelser kapitel 4
06-10-2024
Øvelser kapitel 4
06-10-2024
Øvelser kapitel 4
06-10-2024
Øvelser kapitel 5
27-10-2024
Øvelser kapitel 5
27-10-2024
Øvelser kapitel 5
27-10-2024
Omfang
Estimeret:
Ikke angivet
Dækker over: 24
moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 2
Først større projekt
I dette forløb arbejdede eleverne primært med deres projekt. Eleverne fik til opgave at en app eller et spil med udgangspunkt i P5 biblioteket i javascript. Projektet blev afslutningsvis mundtligt præsenteret for læreren.
For at understøtte eleverne i deres første større udvikling projekt af et program. Blev følgende gængse problemstilling undervejs gennemgået for eleverne i form af klasseundervisning.
- Computational Thinking & Hierarchy chart; som værktøjer til at bryder problemer ned. Dette blev sammenkoblet med anvendelsen af funktioner.
- File organisering; her blev gennemgået fordele og ulemper ved forskellige måde man kunne strukturere ens fil, specielt med fokus på samarbejde i en kontekst af gruppe. Kobling mellem en og flere javascript-file, og hvordan man kan skifte imellem forskellige html-sider.
- Data storage; her blev der set nærmere på hvordan man kan læse og gemme data. Læsning af data gemt i txt- og JSON-filer, samt lagering af data via. cookies, session storage og local storage.
- Object Notation (JSON), elever blev introduceret til konceptet af objekter (uden at omkomme ind på klasse og OOP), og hvordan disse kan anvendes som en slags template til at lave mange lignende objekter.
Indhold
Kernestof:
Som nævnt er der prøve på fredag. For dem der er tutorer på fredag laves der en anden prøve fredag næste uge. Prøven er på papir med blyant. Til prøven for i udleveret det vedhæftede dokument (P5 cheat sheet), som er det eneste der må bruges til prøv
Skriftligt arbejde:
Titel
Afleveringsdato
Projektbeskrivelse
10-11-2024
Projektbeskrivelse
10-11-2024
Projektbeskrivelse
10-11-2024
Projekt
12-01-2025
Projekt
12-01-2025
Projekt
12-01-2025
Omfang
Estimeret:
Ikke angivet
Dækker over: 26
moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 3
SRC
Studieretningscase (SRC). Dette var et tværfagligt af SO-forløb med matematik. Som introduktion til forløbet så vi videoen The Beauty of Bézier Curves:
https://www.youtube.com/watch?v=aVwxzDHniEw
Eleverne fik følgende eksempler på cases som de kunne lave til et program.
• En racerbane i en racerspil
• En Bézier funktion i et tegneprogram
• En rutsjebane generator i et ala Theme Park spil
• En håndskrift efterligner givet en almindelig tekst strenge som input
• Etc. I er selv velkommen til at finde på andre så længe de bliver godkendt og indeholder Bézier kurver
Elever blev i programmering introduceret til linear interpolation i form at lerp() funktionen, for at de kunne lave deres program.
Mens elever i matematik havde fokus på det teoretisk bag Bézier kurver, var den reelle hensigt med forløbet, at de skulle lære at dokumentere deres software og udviklingen af denne. Dette skete i form af følgende to del-forløb
1) Dokumentation af den udviklingen af softwaren:
Her blev eleverne introduceret til Git og GitHub. Dels for at give eleverne et værktøj, med hvilken de kunne dokumentere udvikling af deres software, i form af jeres commit-history. Men dels også for senere at give eleverne et værktøj, som de kan bruge til at samarbejde omkring deres kode i senere projekter. Som undervisningsmateriale fik eleverne følgende slides:
- Git – del 1 - GitHub
- Git – del 2 – Setup, Commit, Checkout
- Git – del 3 – Branches og Merge
Hvis der ønskes dybere indsigt, blev disse slides skabt med udgangspunkt i følgende kilder:
-
https://emu.dk/sites/default/files/2023-07/gym_programmering_Versionsstyring%20i%20progammeringsundervisning.pdf
-
https://jonascj.dk/git/
-
https://git-scm.com/docs/gitglossary
-
https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
2) Dokumentation af selve programmet:
I denne del af forløbet blev eleverne introduceret til softwaredokumentationsmetoderne:
Flowchart, pseudokode, indlejrede kodekommenterer, samt kodeblokke med tilhørende forklaring og uddybelse.
Eleverne blev også introduceret til konceptet af refaktorisering. Refaktoriseret kode skaber bedre software dokumentation, da denne er mere velstruktureret og derfor ofte vil være nemmere at dokumentere.
Her blev følgende anvendt som undervisningsmateriale:
- Kapitel 12 - "Dokumentation og kravspecifikation" – P5-bogen af Henrik Sterner
- Slides: Struktured Programming & Flowchart
- Slides: Procedural Programmering & Refactoring
Som det fremgår blev flowcharts og refaktorisering hhv. koblet sammen med programmerings paradigmerne Structured og Procedural Programming. Det blev gjort for at skabe en rødtråd til det næste forløb som handlede om programmeringsparadigmet OOP.
Indhold
Kernestof:
Læs kap. 12 P5Programmering/kap12/kap12.md at main · HenrikSterner/P5Programmering
Se videoen "Getting Started with GitHub Pages"
Afsnit
Skriftligt arbejde:
Titel
Afleveringsdato
SRC - ekstra aflevering
23-02-2025
SRC - ekstra aflevering
23-02-2025
SRC - ekstra aflevering
23-02-2025
Omfang
Estimeret:
Ikke angivet
Dækker over: 20
moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 4
OOP
I dette forløbet blev eleverne introduceret til programmerings paradigmet Objekt-Orienteret Programmering. Forløbet er baseret på EMU materialet ”flokadfærd” udviklet af Henrik Sterner:
https://emu.dk/htx/programmering/avancerede-konstruktioner/algoritmer-i-naturen-emergerende-flokadfaerd-og
Hvor eleverne lærer om de 4 søjler for OOP:
1) Indkapsling
2) Abstraktion
3) Nedarv
4) Polymorfi
Elever udarbejder her først eget vektor-bibliotek (søjle 1 og 2), samt derefter et akvarium med forskellige fisk (søjle 3 og 4). Hertil blev tilføjet Reynolds algoritme for flokadfærd.
Eleverne blev undervist ud fra slidene:
- OOP – Projekt
- OOP – Teori -del 1 (Indkapsling og Abstraktion)
- OOP – Øvelser - del 1 (Indkapsling og Abstraktion)
- OOP – Teori -del 2 (Relation og Polymorfi)
- OOP – Øvelser - del 2 (Relation og Polymorfi)
- OOP – Teori -del 3 (Reynolds algoritme)
- OOP – Øvelser - del 3 (Reynolds algoritme)
Som det fremgår af slidene blev søjle 3, nedarv, udvidet til at omfatte relatationerne.
- Association
- Dependency
- Aggregation
- Composition
- Inheritance (nedarv)
De blev i denne forbindelse også introduceret til UML klasse diagrammer.
Forløbet blev afsluttet med en årsprøve om OOP samt en præsentation af deres udviklede program med flokadfærd.
Indhold
Kernestof:
Muligvis fysisk for dem der ønsker, men i så fald skal I besvare beskeden på Teams
Her er mødetiderne for, hvornår I skal ind, møde op minimum 10 min. før.
Skriftligt arbejde:
Titel
Afleveringsdato
GIF-Bezier
02-05-2025
GIF-Bezier
02-05-2025
GIF-Bezier
02-05-2025
Årsprøve præsentation
18-05-2025
Årsprøve præsentation
20-05-2025
Årsprøve præsentation
25-05-2025
Omfang
Estimeret:
Ikke angivet
Dækker over: 18
moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 5
Software Engineering
Applikations forløb:
Dette er et større forløb som kommer til at køre de næste ca. 2,5 måned. I forløbet vil I undervejs blive introduceret til følgende (ikke nødvendigvis i denne rækkefølge):
TKinter som GUI
MVC, 3-lags- og client-server-arkitektur
Use Case Diagram
API
Hvad formålet med jeres applikationen er, er helt op til jer. Der vil igennem undervisningen blive taget udgangspunkt i en vejr-applikation, som I gerne må bruge og udvide.
Kravspecifikationer for applikationen:
Applikation bør følger en 3-lags arkitektur (præsentations-, logik- og datalag).
I præsentations- og logik-laget skal der være implementeret et MVC pattern (Model View Controller) med View og Controller i præsentationslaget og Model i logik-laget.
View og Controller skal implementeres ved brug af TKinter modulet i Python.
Datalaget kan enten gør brug af en API og Database for at tilgå det nødvendige data fra data-laget.
Hvis de enkelte dele kan sammenstykkes til en stor og velfungerende applikation, er dette naturligvis optimalt, men dette er ikke et krav. Det er okay, hvis det afleverede, består af flere separate enkeltstående dele, der fungerer hver for sig.
Dokumentationskrav:
Jeres dokumentation skal indeholde følgende:
Use Case diagram der beskriver brugerens interaktion med præsentationslaget.
Et klasse-diagram med korrekt afbildninger af relationerne imellem klasserne.
Et eller flere flowcharts over relevant selv udvalgt kode.
Mindst en selv-designet abstrakt illustration, der hjælper en med at forstå en del af koden.
Som gruppe på 2-3: 5-8 normalside
Indhold
Kernestof:
Dagens opgave består af to dele
Jeg er syg, I arbejd selv med jeres projekt eller aflevering til på søndag
What is Use Case Diagram?
Omfang
Estimeret:
Ikke angivet
Dækker over: 70
moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 6
Funktionel Programmering
Funktionel Programmering: Forløbs-oversigt
1) Udvidelse af værktøjskassen:
Afsnittet: ”Side effects”
https://python-course.eu/python-tutorial/passing-arguments.php
Afsnittet: ”Global Variables in Nested Functions”
https://python-course.eu/python-tutorial/global-local-variables-namespaces.php
Ned til og med afsnittet ”Set”
https://python-course.eu/python-tutorial/sets-and-frozen-sets.php
OOP Purely Functional
https://python-course.eu/oop/oop-purely-functional.php
Magic Methods (Ikke krav, men hvis man er nysgerrig)
https://python-course.eu/oop/magic-methods.php
2) Intro til Funktionel Programmering i Python
Decorators and Decoration
https://python-course.eu/advanced-python/decorators-decoration.php
Function Composition In Python
https://python-course.eu/advanced-python/function-composition-in-python.php
Currying in Python
https://python-course.eu/advanced-python/currying-in-python.php
3) Lambda functions, map(), filter() & Zip
Lambda Operator, filter, reduce and map
https://python-course.eu/advanced-python/lambda-filter-reduce-map.php
Zip introduction and examples
https://python-course.eu/advanced-python/zip-tutorial.php
4) Intro til Funktionel Programmering i Python
Iterators and Iterables
https://python-course.eu/advanced-python/iterable-iterator.php
Generators and Iterators
https://python-course.eu/advanced-python/generators-and-iterators.php
List Comprehension
https://python-course.eu/advanced-python/list-comprehension.php
5) Recursion
Recursive Functions
(alle afsnit op til ”Generalized Fibonacci Sequence”)
https://python-course.eu/advanced-python/recursive-functions.php
Memoization and Decorators
https://python-course.eu/advanced-python/memoization-decorators.php
Functional Programming OOP
https://python-course.eu/advanced-python/functional-programming-oop.php
6) Algoritmer
What is Algorithm? - Nutshell Explanation
Sorting Algorithm
Divide and Conquer Strategy for Problem Solving (Skip afsnittet Efficiency Analysis of Divide and Conquer Approach)
7) Analyse af Algoritmer
Efficiency Analysis Framework of Algorithm
Asymptotic Notations - Big Oh, Omega, and Theta (Skim – dybdeforståelse forventes ikke)
Analyzing Control Structures in Algorithm
8) Tower of Hanoi
https://python-course.eu/applications-python/towers-of-hanoi.php
Tower of Hanoi - Algorithm and Recurrence Equation
Ekstra relateret info:
https://codecrucks.com/what-is-algorithm-nutshell-explanation/
Intro:
What is Algorithm? - Nutshell Explanation
How a Smart Algorithm Can beat a Great Hardware?
Correctness of Algorithm - Concept and Proof
(Efficient Algorithm Writing - Tricks and Examples) – fin men ikke essentiel
SOP metode-relevant
(Proof Techniques for Algorithms)
Efficiency Analysis
(Approaches for Efficiency Analysis of Algorithm) – fin men ikke essentiel
Efficiency Analysis Framework of Algorithm
Asymptotic Notations - Big Oh, Omega, and Theta (Skim – dybdeforståelse forventes ikke)
Analyzing Control Structures in Algorithm
Tower of Hanoi - Algorithm and Recurrence Equation
Indhold
Kernestof:
Afsnittet: ”Side effects”
6. Decorators and Decoration
4. Lambda Operator, filter, reduce and map
2. Iterators and Iterables
Recursive Functions
What is Algorithm? - Nutshell Explanation
Samme lektie er også sat på til onsdag, så vælg selv hvornår I vil læse det.
Efficiency Analysis Framework of Algorithm
Omfang
Estimeret:
Ikke angivet
Dækker over: 16
moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Titel 7
Eksamensprojekt
Indhold
Kernestof:
Jeg er desværre syg i dag, så I må arbejde selv i dag på eksamensprojektet. Jeg er dog tilgængelig via Teams, hvis I måtte have nogle spørgsmål.
Jeg er på ekskursion med en anden klasse, så I arbejder selv i mine lektioner.
Vi mødes først fysisk for at tale sammen om forløbet for de sidste lektioner vi har i programmering.
Omfang
Estimeret:
Ikke angivet
Dækker over: 40
moduler
Særlige fokuspunkter
Væsentligste arbejdsformer
Vis samlet undervisningsbeskrivelse samt elevtilknytning til forløb
lan
Hovedmenu
login
MitID
login
Brugernavn
more_horiz
Mere
{ "S": "/lectio/518/stamdata/stamdata_edit_student.aspx?id=666\u0026prevurl=studieplan%2fuvb_hold_off.aspx%3fholdid%3d67267540552", "T": "/lectio/518/stamdata/stamdata_edit_teacher.aspx?teacherid=666\u0026prevurl=studieplan%2fuvb_hold_off.aspx%3fholdid%3d67267540552", "H": "/lectio/518/stamdata/stamdata_edit_hold.aspx?id=666\u0026prevurl=studieplan%2fuvb_hold_off.aspx%3fholdid%3d67267540552" }