Holdet S3 vf Pro (2025/26) - Undervisningsbeskrivelse

Undervisningsbeskrivelse

Stamoplysninger til brug ved prøver til gymnasiale uddannelser
Termin(er) 2025/26
Institution NEXT
Fag og niveau Programmering B
Lærer(e)
Hold S2023 vf Pro (S3 vf Pro)

Oversigt over gennemførte undervisningsforløb
Titel 1 Software Engineering
Titel 2 Funktionel Programmering
Titel 3 Eksamensprojekt

Beskrivelse af de enkelte undervisningsforløb (1 skema for hvert forløb)
Titel 1 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:
Omfang Estimeret: Ikke angivet
Dækker over: 70 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer

Titel 2 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:
Omfang Estimeret: Ikke angivet
Dækker over: 16 moduler
Særlige fokuspunkter
Væsentligste arbejdsformer