LUP - H4 - Datatekniker programmering - V10.4

Overordnet struktur for H4 – Programmering

Hovedforløbet H4 er struktureret i tre temaer, der hver er organiseret som en selvstændig case. Temaerne er tilrettelagt, så de tilsammen dækker centrale kompetenceområder inden for avanceret softwareudvikling og giver eleverne mulighed for at arbejde helhedsorienteret med komplekse systemer, teknologier og metoder.

De tre temaer er:

  • Big Data og GUI (3 uger)

  • App-programmering, energioptimering og OOAD (3 uger)

  • API og IoT (4 uger)

Hvert tema har egne læringsmål, indhold og bedømmelseskriterier, der er tilpasset det faglige fokus i den konkrete case. Temaerne gennemføres som praksisnære projektforløb, hvor eleverne arbejder undersøgende, udviklingsorienteret og refleksivt med teknologier og problemstillinger, der afspejler professionel praksis.

Selvom temaerne har forskelligt fagligt fokus, vurderes elevernes arbejde på tværs af H4 ud fra et fælles bedømmelsesgrundlag, som sikrer en ensartet, gennemsigtig og fagligt begrundet vurdering af elevernes kompetencer indenfor programmering.

Tværfaglighed og helhedsorientering

H4 Programmering er tilrettelagt helhedsorienteret og casebaseret, således at eleverne arbejder med analyse, design, implementering og refleksion i sammenhængende udviklingsforløb.

De tre cases har forskelligt teknologisk fokus, men bidrager samlet til udvikling af professionelle softwareudviklingskompetencer, hvor tekniske valg, arkitektur, kvalitet og dokumentation indgår som integrerede elementer.

Tværfagligheden understøttes ved, at eleverne på tværs af cases anvender og kombinerer kompetencer inden for programmering, systemforståelse, brugergrænseflader, datahåndtering og refleksion over praksis.

Fælles bedømmelsesgrundlag

Anvendelse af bedømmelsesgrundlag på tværs af cases

Selvom de tre cases på H4 har forskelligt fagligt og teknologisk fokus, vurderes elevernes arbejde ud fra et fælles bedømmelsesgrundlag.

De faglige indikatorer anvendes fleksibelt i relation til den enkelte case og danner grundlag for en professionel helhedsvurdering, hvor underviseren inddrager både løsningens kvalitet, elevens faglige valg og evne til refleksion i forhold til læringsmålene.

Bedømmelsesgrundlaget udgøres af følgende faglige indikatorer, som tilsammen belyser i hvilken grad eleven har opnået læringsmålene for programmeringsdelen:

  • Funktionalitet og korrekthed
    Vurderer i hvilken grad løsningen opfylder de opstillede krav, og om systemets adfærd er korrekt og hensigtsmæssig i forhold til problemstillingen.

  • Kodekvalitet og struktur
    Vurderer elevens anvendelse af programmeringsprincipper, herunder struktur, modularisering, læsbarhed og vedligeholdbarhed.

  • Problemløsning og abstraktion
    Vurderer elevens evne til at analysere problemstillinger, træffe faglige valg og omsætte komplekse krav til implementerbare løsninger.

  • Faglige valg og refleksion
    Vurderer elevens evne til at begrunde valg, overveje alternativer og reflektere over løsningens styrker, begrænsninger og udviklingsmuligheder.

  • Dokumentation og formidling
    Vurderer i hvilken grad eleven kan dokumentere og forklare løsningens opbygning, funktion og anvendelse i relation til læringsmålene.

  • Arbejdsproces og selvstændighed
    Vurderer elevens planlægning, gennemførelse og justering af eget arbejde samt evnen til at anvende feedback konstruktivt.

De faglige indikatorer anvendes ikke som enkeltstående tjekpunkter, men indgår samlet i vurderingen af elevens kompetenceniveau.

Programmering er et kreativt og problemløsende fag, hvor opgaver på dette hovedforløb kan løses på flere fagligt valide måder. Derfor foretages bedømmelsen som en professionel helhedsvurdering, hvor underviseren inddrager elevens samlede kompetencer, faglige valg og evne til refleksion i forhold til læringsmålene for casen.

Case: Big Data og GUI

Mål for undervisningen

Målet med undervisningen i denne case er at give eleverne en overordnet forståelse for Big Data-baserede systemer og deres anvendelse i moderne softwareløsninger. Undervisningen skal sætte eleverne i stand til at arbejde med sammenhængen mellem dataindsamling, databehandling og præsentation af data gennem grafiske brugerflader.

Casen har endvidere til formål at styrke elevernes evne til at analysere komplekse problemstillinger, træffe og begrunde tekniske valg samt reflektere over anvendelse af data i relation til arkitektur, sikkerhed og ansvarlig datahåndtering.

Gennem arbejdet med casen udvikler eleverne en helhedsforståelse for, hvordan Big Data-koncepter og GUI-baserede løsninger kan indgå som en integreret del af professionelle softwareudviklingsprojekter.

Læringsmål:
  1. Du skal kunne forklare centrale Big Data-begreber, herunder forskellen mellem operationel og analytisk data, samt struktureret, semi-struktureret og ustruktureret data.
  2. Du skal kunne identificere og anvende forskellige dataformater og transportteknologier, eksempelvis CSV, XML, JPEG, og protokoller som REST, Kafka og MQTT.
  3. Du skal kunne designe og implementere simple data pipelines, samt anvende versionskontrol og forstå principper for orkestrering, f.eks. med Apache Beam og git.
  4. Du skal kunne skelne mellem arkitekturer og datamodeller, herunder star/snowflake-skemaer og begreber som Data Warehouse, Data Lake og Data Mesh.
  5. Du skal kunne arbejde med både batch- og stream-baserede løsninger, og forklare forskelle på f.eks. ETL, ELT og realtids-datahåndtering.
  6. Du skal kunne kendskab til datalagring og -sikkerhed, herunder anonymisering, kryptering, GDPR og strategier som Master Data Management.
  7. Du skal kunne bygge en simpel Big Data-løsning, som opsamler, behandler og visualiserer data fra forskellige kilder og adresserer relevante sikkerhedsaspekter.
  8. Du skal kunne udvikle grafiske brugerflader til desktop og web, herunder klienter bygget på SPA-arkitektur med routing, moduler og komponenter.
  9. Du skal kunne anvende event-handling, multitrådning og UI-design patterns, samt udvikle brugergrænseflader, der opfylder funktionelle krav og understøtter brugervenlighed.
  10. Du skal kunne forbinde GUI med datakilder, f.eks. ved at lade en SPA klient hente og præsentere data fra webservices og visualisere det med værktøjer som PowerBI, Grafana eller Plotly.

Målpinde for fagene i case: Big Data og GUI

Ingen resultater

Målpinde
GUI-programmering - Avanceret (16475)
  • Lærlingen kan foretage GUI-programmering rettet mod både clientside-applikationer, og webbaserede applikationer, der bygger på SPA (Single Page Application).
  • Lærlingen kan implementere en grafisk brugergrænseflade, som understøtter et eller flere funktionelle krav.
  • Lærlingen kan anvende forskellige typer af layout containers.
  • Lærlingen kan udvælge og konfigurere de korrekte kontroller til at understøtte et eller flere funktionelle krav.
  • Lærlingen kan implementere "event-handling".
  • Lærlingen kan implementere et UI Design pattern.
  • Lærlingen kan designe, udvikle og anvende "custom-controls".
  • Lærlingen kan konfigurere Application-klassen og dens lifetime-events.
  • Lærlingen kan implementere en multitrådet applikation.
  • Lærlingen kan udføre en simpel usability-test.
  • Lærlingen kan beskrive arkitekturen for en Single Page Application (SPA) med dens fordele og ulemper.
  • Lærlingen kan udvikle en SPA client vha. et eller flere SPA frameworks.
  • Lærlingen kan anvende og konfigurere komponenter, moduler, services osv. i et eller flere frameworks.
  • Lærlingen kan udvikle en SPA client med flere "sider" vha. Routing.
  • Lærlingen kan udvikle en SPA client, der vha. HTTP kommunikerer asynkront med en webservice.
  • Lærlingen kan redegøre for sikkerhedsmæssige udfordringer ved en SPA løsning.
  • Lærlingen kan debugge en SPA client.
Big Data begreber, teknikker og processer - Avanceret (20555)
  • Lærlingen kan, ud fra en case-opgave, selvstændigt designe og opbygge en mindre Big Data løsning, der kan opsamle, behandle og præsentere strukturerede og ustrukturerede data fra forskellige typer af datakilder. En løsning, hvor lærlingen har taget hensyn til relevante sikkerhedsproblemer, og som lever op til de stillede krav i opgaven. Lærlingen kan herigennem demonstrere viden, færdigheder og kompetencer ud over de i faget beskrevne mål og målniveauer.
  • Lærlingen kan redegøre for forskelle og sammenhænge mellem operationelt data, data pipelines og analytisk data.
  • Lærlingen kan beskrive Big Data og dens karakteristika.
  • Lærlingen kan beskrive de grundlæggende forskelle på struktureret, semi-struktureret og ustruktureret data.
  • Lærlingen kan beskrive og arbejde med de forskellige filformater som indgår i arbejdet med dataløsninger, f.eks. CSV, HDF5, XML, JPEG, MP3, MP4.
  • Lærlingen har kendskab til muligheder indenfor forskellige protokoller og transport teknologier, f.eks. HTTPS (REST), Kafka, og MQTT.
  • Lærlingen kan forklare muligheder i at deklarativt beskrive pipelines og sammenhæng til versionskontrol, f.eks. Apache Beam og git.
  • Lærlingen kan redegøre for forskellige software og cloudløsninger, der typisk anvendes til indsamling, opbevaring, analyse, og preprocessering og fortolkning f.eks. Hadoop, Microsoft (SSRS, SSAS, SSIS), Big Query, Redshift.
  • Lærlingen kan beskrive sikkerhed og anonymisering, når data bliver flyttet fra et system til et andet, f.eks. kryptering af data under transport.
  • Lærlingen kan beskrive, hvornår og i hvilket omfang data er omfattet af persondataforordningen (GDPR) og Databeskyttelsesloven.
  • Lærlingen kan beskrive principper og muligheder ved forskellige data håndteringsstrategier herunder vigtighed og placering af data governance f.eks. Master Data Management versus domænespecifik data ejerskab.
  • Lærlingen kan ud fra en konkret opgave opbygge en mindre Big Data løsning, som kan opsamle, behandle og præsentere data fra forskellige formater, og relevante sikkerhedsproblemer bliver adresseret.
Big Data modeller og datamodellering - Avanceret (20556)
  • Lærlingen kan, ud fra en case-opgave, selvstændigt designe og opbygge en mindre cloud baseret Big Data løsning, der kan opsamle data fra forskellige datakilder og lagre, og behandle samt præsentere dataene, og som lever op til de stillede krav i opgaven. Lærlingen kan herigennem demonstrere viden, færdigheder og kompetencer ud over de i faget beskrevne mål og målniveauer.
  • Lærlingen kan redegøre for forskelle og sammenhænge på reporting, dashboards, og data mining.
  • Lærlingen kan anvende datamodellering og redegøre for konceptuelle sammenhænge mellem data og design valg.
  • Lærlingen kan beskrive forskelle og muligheder i centrale og decentrale data platforme f.eks. Data warehouse, Data Lake, Data Mesh, samt cloud storage.
  • Lærlingen kan beskrive forskelle, principper og muligheder indenfor arkitekturer som f.eks. star og snowflake skemaer samt Kimball og Inmon i SQL baserede data platforme.
  • Lærlingen har kendskab til forskellige data stores inden for både SQL og NoSQL paradigmerne og deres muligheder f.eks. RDBMS, document, object storage, key-value, column, geospatial, time series.
  • Lærlingen kan beskrive muligheder og forskelle inden for batch (ETL, ELT) og streaming processing, herunder arkitekturvalg.
  • Lærlingen kan beskrive data flows og data pipelines samt hvordan data kan flyttes fra kilden og til en data store.
  • Lærlingen har kendskab til versionering og backupstrategier af data løsninger f.eks. persistent state, retention, untouched source data og snapshotting.
  • Lærlingen kan beskrive forskelle på at gemme rå- og aggregeret data til videre analyse.
  • Lærlingen kan beskrive og lave et simpelt konceptuelt design for, hvornår det er nødvendigt at benytte parallel processing og beskrive hvordan dette kan gøres.
  • Lærlingen har kendskab til principper og sammenhænge mellem data pipelines, queues og orkestrering af data jobs, f.eks. via Apache Beam, Apache Kafka, RabbitMQ, Apache Airflow, eller Azure Resource Groups.
  • Lærlingen kan hente og præsentere simple data med et værktøj f.eks. Plotly, Grafana, PowerBI.

Indhold i undervisningen

Undervisningen i denne case omfatter både teoretiske og praktiske elementer inden for Big Data og GUI-udvikling. Eleverne introduceres til centrale begreber, arkitekturer og teknologier, som anvendes i moderne Big Data-løsninger, og arbejder med at omsætte denne viden til konkrete softwarekomponenter.

Eleverne arbejder med teknologistudier, hvor forskellige teknologier og tilgange undersøges, afprøves og sammenlignes. De enkelte delområder belyses gennem mindre opgaver og delprojekter, som gradvist samles i en større, sammenhængende løsning bestående af dataindsamling, databehandling og visualisering.

Indhold

Eleverne arbejder med følgende fagområder:

  • Big Data-arkitektur og -teori
    Eleverne arbejder med opbygning af en simuleret Big Data-pipeline, herunder begreber og lag som collection, ingestion, storage, compute og consume, samt samspillet mellem disse.

  • Big Data i en virkelighedsnær kontekst
    Der arbejdes med ansvarlig datahåndtering, herunder GDPR, datasikkerhed og principper for data management, som inddrages i design og implementering af løsningerne.

  • Eksisterende løsninger til datavisualisering
    Eleverne præsenteres for og analyserer eksisterende GUI- og visualiseringsløsninger, der anvendes til præsentation af større datamængder, med fokus på anvendelighed og formål.

  • Udvikling af egen GUI-løsning
    Eleverne udvikler en samlet frontend-løsning, der forbinder til en Big Data-pipeline og visualiserer data. Der arbejdes med hensigtsmæssig anvendelse af UX-principper, struktur og brugerinteraktion.

Arbejdsformer og læringstilgang

Undervisningen veksler mellem teoretiske oplæg, praktiske øvelser, teknologistudier og projektarbejde. Eleverne arbejder i grupper med casen og gennemfører analyser, udvikler softwarekomponenter og afprøver teknologier i en realistisk kontekst.

Teknologistudierne giver eleverne mulighed for at fordybe sig i udvalgte teknologier og reflektere over deres anvendelighed og begrænsninger i forhold til casens krav.

Differentiering

Forløbet er tilrettelagt, så elever med forskellige kompetenceniveauer kan udfordres på passende vis:

  • Der tilbydes grundlæggende vejledning for at sikre, at alle elever opnår forståelse for casens centrale begreber og teknologier.

  • Elever, der er udfordrede i forhold til hovedforløbets opgaver, kan efter individuel vurdering modtage støtte i form af simplificering af opgaver, hjælp til planlægning og fokusering.

  • Elever med særlige forudsætninger kan fordybe sig i mere avancerede aspekter, såsom performanceoptimering, sikkerhedsanalyser eller integration af yderligere teknologier.

Tværfaglighed og helhedsorientering

Undervisningen integrerer flere IT-discipliner, hvor Big Data-pipeline og GUI-frontend udvikles som én samlet løsning. Eleverne arbejder med sammenhængen mellem data, backend-logik, clientside-visualisering og sikkerhed, hvilket understøtter en helhedsorienteret forståelse af softwareudvikling.

Casen stiller krav om samarbejde og koordinering på tværs af faglige områder og teknologier.

Praksisrelateret undervisning

Eleverne arbejder med en praksisnær case, der simulerer virkelige udfordringer inden for Big Data-baserede systemer. Der anvendes metoder og teknologier, som afspejler praksis i IT-branchen, så eleverne opnår erfaring med løsninger, der kan anvendes i erhvervsmæssige sammenhænge.

Casen afsluttes med præsentation af den samlede løsning samt aflevering af relevant dokumentation, som indgår i den samlede vurdering.

Evaluering og bedømmelse

Evalueringen af undervisningsforløbet sker løbende gennem formative evalueringer og afsluttes med en summativ vurdering baseret på elevernes arbejde, dokumentation og præsentationer af casen. Evalueringen har til formål at sikre, at eleverne opnår de faglige mål for hovedforløbet og udvikler både tekniske og metodiske kompetencer gennem arbejdet med den gennemgående case.

Løbende evaluering og feedback (formativ evaluering)

Den formative evaluering foregår løbende gennem hele forløbet og har til formål at understøtte elevernes læringsproces. Evalueringen tilpasses den enkelte elevs og gruppes projekt, niveau og udviklingstrin.

Den formative evaluering gennemføres blandt andet gennem:

  • Delafleveringer af specifikke dele af projektet, herunder centrale komponenter i Big Data-pipelinen og tilhørende frontend-løsninger.

  • Løbende teknologistudier, hvor eleverne fordyber sig i udvalgte teknologier og anvender dem i praksis. Disse vurderes gennem gennemgang af kode og løsningsforslag.

  • Kodegennemgang og tekniske reviews, hvor eleverne modtager mundtlig feedback på implementering, herunder arkitektur, struktur og anvendelse af coding conventions.

  • Gruppediskussioner og faglige refleksioner, hvor eleverne redegør for deres tekniske valg, prioriteringer og overvejelser.

  • Fremlæggelser af delresultater, hvor underviseren giver feedback på både løsningernes kvalitet og arbejdsprocessen.

Formålet med den formative evaluering er at give eleverne mulighed for løbende at forbedre deres løsninger samt udvikle deres tekniske og metodiske forståelse undervejs i forløbet.

Afsluttende bedømmelse (summativ evaluering)

Den summative evaluering foretages ved forløbets afslutning og baseres på en samlet vurdering af:

  • En systemdokumentation, der beskriver projektets udvikling, tekniske løsninger og faglige begrundelser.

  • En mundtlig præsentation, hvor eleverne fremlægger deres løsning, reflekterer over teknologivalg og besvarer faglige spørgsmål.

  • En praktisk demonstration, hvor eleverne viser, hvordan den udviklede softwareløsning fungerer i praksis.

Bedømmelsen tager højde for både individuelle præstationer og gruppens samlede arbejde.

Bedømmelseskriterier

Bedømmelseskriterierne tager udgangspunkt i de fastlagte læringsmål for casen og synliggør, hvordan disse kommer til udtryk i elevens arbejde, herunder elevens evne til at:

  • Udarbejde og anvende en kravspecifikation, der beskriver funktionelle og ikke-funktionelle krav til systemet, og som danner grundlag for udvikling af en sammenhængende softwareløsning med database, backend, clientside og eventuel app.

  • Udvikle en sammenhængende softwareløsning, hvor kravspecifikationen omsættes til implementerede funktioner, og hvor løsningens funktionalitet kan relateres direkte til de opstillede krav.

  • Designe og implementere en teknisk arkitektur, hvor samspillet mellem systemets dele er velbegrundet og understøtter krav til funktionalitet, vedligeholdelse, sikkerhed og performance.

  • Dokumentere systemet på et teknisk niveau, der redegør for kravspecifikation, arkitektur, datahåndtering og centrale komponenter, således at sammenhængen mellem krav, design og implementering er tydelig.

  • Præsentere og formidle løsningen samt forklare og argumentere for, hvordan kravspecifikationen har påvirket tekniske valg, prioriteringer og eventuelle fravalg.

  • Indarbejde overvejelser om sikkerhed og performance i løsningen, herunder autentificering, databeskyttelse og optimering, i relation til de opstillede krav.

  • Arbejde struktureret og professionelt med udviklingsprocessen, herunder organisering af arbejdet, samarbejde i team, anvendelse af feedback samt refleksion over teknologistudier og kravspecifikationens rolle i udviklingsforløbet.

Disse bedømmelseskriterier anvendes både i den formative og den summative evaluering.

Case: APP og Energioptimering

Mål for undervisningen

Målet med undervisningen i denne case er at give eleverne kompetencer til at designe og udvikle energieffektive, brugervenlige mobilapplikationer baseret på objektorienteret analyse og design.

Undervisningen skal sætte eleverne i stand til at arbejde systematisk med krav, arkitektur og implementering af cross-platform apps samt at forstå sammenhængen mellem softwaredesign, brugergrænseflade og energiforbrug.

Casen har endvidere til formål at styrke elevernes evne til at analysere tekniske problemstillinger, anvende objektorienterede designprincipper og dokumentere faglige valg i relation til både funktionalitet og energioptimering.

Læringsmål
  • Udvikle en flerskærms cross-platform mobilapplikation med API-integration.

  • Implementere vedvarende tilstand og caching i applikationen.

  • Strukturere applikationen ved anvendelse af relevante komponenter og state management-løsninger.

  • Analysere og modellere krav ved hjælp af UML-diagrammer.

  • Udarbejde objektmodeller med klasser og relationer samt anvende objektorienterede designprincipper.

  • Analysere energiforbrug i applikationen og optimere kodens effektivitet.

  • Minimere energiforbrug relateret til grafik, netværkskommunikation og animationer.

  • Anvende relevante værktøjer til måling og dokumentation af performance og energiforbrug.

Læringsmålene danner grundlag for arbejdet med casen og indgår i vurderingen af elevernes faglige progression og målopfyldelse.

Målpinde for case: App og Energioptimering

Ingen resultater

Målpinde
App programmering III - Avanceret (16480)
  • Lærlingen kan udvikle en appløsning, som manipulerer eksterne data, herunder f.eks. fjernstyrer ting over internettet, og husker opsætninger imellem flere udførsler af den pågældende app.
  • Lærlingen kan selvstændigt udvikle en appløsning.
  • Lærlingen kan vælge det bedst egnede udviklingsværktøj til en given opgave, under hensyntagen til crossplatform-kompatibilitet og performance.
  • Lærlingen kan programmere en appløsning, der kan kommunikere med eksterne datakilder, så som databaseserver, web API o.l., herunder Cloud-baserede services.
  • Lærlingen kan programmere en appløsning, der kan kommunikere med andre apps på enheden ved f.eks. at opdatere en kontakt, sende en SMS eller hente GPS-data.
  • Lærlingen kan programmere en appløsning med threads med det formål at udføre parallelle opgaver.
  • Lærlingen kan optimere koden i appløsningen med henblik på optimal udnyttelse af enhedens ressourcer.
  • Lærlingen kan redegøre for mulige sikkerhedsproblemer når en app skal kommunikere med eksterne datakilder og Cloud-services og tage højde for disse i forbindelse med udvikling af en appløsning ved f.eks. at kryptere og benytte authentication/authorization.
  • Lærlingen kan gennem en test dokumentere funktionaliteten i en udviklet appløsning.
Objekt Orienteret Analyse og Design - Rutineret (17334)
  • Lærlingen har grundlæggende viden om indhold og faser i objektorienteret analyse og design.
  • Lærlingen kan analysere problemområdet, hvad der skal ændres og hvilke arbejdsgange, der berøres (ændres/fjernes/nye).
  • Lærlingen kan identificere og definere klasser i problemområdet.
  • Lærlingen kan identificere og definere hændelser/handlinger i problemområdet.
  • Lærlingen har grundlæggende viden om kodekonventioner i forbindelse med navngivning af klasseobjekter m.m.
  • Lærlingen kan udarbejde relevante diagrammer efter UML standarden.
  • Lærlingen har kendskab til Rige Billeder, Use Case/User stories, tilstandsdiagrammer, flowchart/state diagrammer eller tilsvarende diagrammering af adfærdsmønstre/handlinger i problem- og/eller anvendelsesområdet.
  • Lærlingen har kendskab til pseudokode og brug af Wireframe/navigationsdiagram i forbindelse med præsentation af design løsninger.
Energioptimeret programmering - Rutineret (22254)
  • Lærlingen kan redegøre for, hvordan visuelle designvalg (film, billeder, animationer, filstørrelser, plugins) påvirker en webapplikations energiforbrug.
  • Lærlingen kan udtrykke forståelse for at optimere energiforbruget ved anvendelse af kodesprog og hosting.
  • Lærlingen kan anvende værktøjer til at måle energiforbruget i en digital løsning.
  • Lærlingen kan identificere løsninger, der kan nedbringe ressourceforbruget i fx en webapplikation.
  • Lærlingen kan udvælge og anvende energieffektive databaser og datakilder, samt optimere dataanmodninger og datatransfer for at reducere serverbelastning.
  • Lærlingen kan skrive ren, strømlinet og vedligeholdelsesvenlig kode, der fremmer genbrug og minimerer ressourceforbruget.
  • Lærlingen kan designe og implementere brugergrænseflader, der minimerer dataoverførsler, reducerer antallet af serveranmodninger, dataforbrug i designvalg og anvender effektiv caching for at reducere energiforbruget.

Indhold i undervisningen

Undervisningen i denne case omfatter analyse, design og implementering af en mobilapplikation til intelligent energiovervågning. Eleverne arbejder projektorienteret med udvikling af en cross-platform app, hvor data præsenteres gennem en brugervenlig og energieffektiv brugergrænseflade.

Eleverne arbejder med både objektorienteret analyse og design, app-arkitektur, GUI-udvikling og energioptimering, og omsætter teori til praksis gennem udvikling af en samlet løsning.

Indhold

Eleverne arbejder med følgende fagområder:

  • App-arkitektur og programmering
    Udvikling af en flerskærms mobilapplikation baseret på Flutter, herunder strukturering af app’en, navigation, state management og integration med API eller simulerede datakilder.

  • Objektorienteret analyse og design (OOAD)
    Analyse af krav og udarbejdelse af objektmodeller, herunder anvendelse af UML-diagrammer og designprincipper som f.eks. SOLID.

  • Energioptimeret programmering
    Analyse og optimering af app’ens energiforbrug med fokus på grafik, netværkskald, animationer og datahåndtering, samt dokumentation af effekten af foretagne forbedringer.

  • GUI og brugervenlighed
    Udvikling af brugergrænseflader med fokus på overskuelighed, anvendelighed og energieffektiv interaktion.

Arbejdsformer

Undervisningen veksler mellem teoretiske oplæg, praktiske øvelser, teknologistudier og projektarbejde. Eleverne arbejder med casen i et sammenhængende udviklingsforløb, hvor analyse, design, implementering og test indgår som integrerede dele af processen.

Differentiering

Forløbet er designet, så elever med forskellige kompetenceniveauer kan udfordres på passende vis:

  • Grundlæggende vejledning tilbydes for at sikre, at alle elever har forståelse for kerneelementerne i casen.
  • Støtte tilbydes til de elever der er udfordrede i forhold til hovedforløbets opgaver, efter en individuel vurdering, i form af simplificering, hjælp til tilrettelæggelse og fokusering.
  • Mulighed for fordybelse for de elever, der ønsker at eksperimentere med avancerede funktioner som performanceoptimering, sikkerhedsanalyser eller integration af nye teknologier.
Tværfaglighed og helhedsorientering

Undervisningen i denne case er tværfaglig og integrerer app-programmering, objektorienteret analyse og design samt energioptimeret programmering i ét sammenhængende udviklingsforløb.

Eleverne arbejder med sammenhængen mellem kravspecifikation, arkitektur, implementering og brugergrænseflade, hvor tekniske valg inden for objektorienteret design og state management har direkte betydning for både funktionalitet, brugervenlighed og energiforbrug.

Den helhedsorienterede tilgang understøtter elevernes forståelse for, hvordan softwarearkitektur, designprincipper og energieffektivitet påvirker hinanden, og hvordan velbegrundede tekniske valg kan bidrage til både kvalitet, bæredygtighed og langsigtet anvendelighed af softwareløsninger.

Praksisrelateret undervisning

Eleverne arbejder med en praksisnær case, der tager udgangspunkt i aktuelle udfordringer inden for udvikling af mobile applikationer og intelligent energiovervågning. Casen afspejler problemstillinger, som er relevante i IT-branchen, hvor krav til funktionalitet, brugervenlighed og energieffektivitet i stigende grad spiller en central rolle.

Der arbejdes med teknologier, værktøjer og metoder, som anvendes i professionel softwareudvikling, og eleverne opnår erfaring med at analysere, implementere og dokumentere løsninger, der kan anvendes i erhvervsmæssige sammenhænge.

Særligt arbejdet med energioptimering giver eleverne indsigt i, hvordan softwareudviklere kan bidrage aktivt til reduktion af energiforbrug og mere bæredygtige digitale løsninger. Dette perspektiv understøtter forståelsen for, hvordan energieffektiv programmering ikke blot er et teknisk hensyn, men også et område med potentiale til at inspirere og påvirke udviklingen i IT-branchen.

Evaluering og bedømmelse

Evalueringen af undervisningsforløbet sker løbende gennem formative evalueringer og afsluttes med en summativ vurdering af elevens samlede projektarbejde. Evalueringen har til formål at sikre, at eleverne opnår læringsmålene for de involverede fagområder og udvikler både tekniske og metodiske kompetencer.

Løbende evaluering og feedback (formativ evaluering)

Den formative evaluering foregår løbende gennem forløbet og tilpasses den enkelte elevs og gruppes projekt og udviklingstrin. Evalueringen gennemføres blandt andet gennem:

  • Gennemgang af delresultater, herunder kravspecifikation, objektmodeller og arkitekturvalg.

  • Kodegennemgang og tekniske reviews med fokus på struktur, kvalitet, state management og energieffektivitet.

  • Dialog og faglige refleksioner, hvor eleverne redegør for deres design- og teknologivalg.

  • Løbende feedback på dokumentation, GUI-design og energioptimering.

Formålet med den formative evaluering er at understøtte elevernes læring og give mulighed for løbende forbedring af både løsning og arbejdsproces.

Afsluttende bedømmelse (summativ evaluering)

Den summative evaluering foretages ved forløbets afslutning og baseres på en samlet vurdering af:

  • Den udviklede mobilapplikation og dens funktionalitet.

  • Projektets system- og energidokumentation.

  • En mundtlig præsentation, hvor eleverne forklarer og argumenterer for deres tekniske valg, herunder arkitektur, objektmodeller og energioptimering.

Bedømmelsen tager højde for både individuelle præstationer og gruppens samlede arbejde og foretages på baggrund af det fælles bedømmelsesgrundlag for H4.

Bedømmelseskriterier 

Bedømmelseskriterierne tager udgangspunkt i de fastlagte læringsmål for casen og synliggør, hvordan disse kommer til udtryk i elevens arbejde. Bedømmelsen foretages som en professionel helhedsvurdering, hvor der lægges særlig vægt på løsningens funktionalitet, struktur og energimæssige kvalitet.

Centrale bedømmelseskriterier:
  • Udvikle en velfungerende og sammenhængende mobilapplikation, hvor funktionalitet, arkitektur og kodens kvalitet understøtter applikationens formål og anvendelse.

  • Strukturere applikationen hensigtsmæssigt ved anvendelse af objektorienterede principper, modulopbygning og relevant state management, så løsningen fremstår overskuelig, vedligeholdbar og robust.

  • Designe og implementere en brugervenlig grafisk brugergrænseflade, hvor navigation, layout og interaktion er velbegrundede og tilpasset mobilplatforme.

Supplerende bedømmelseskriterier:
  • Analysere og optimere applikationens energiforbrug, herunder minimere belastning fra grafik, netværkskommunikation og animationer, samt dokumentere effekten af foretagne forbedringer.

  • Udarbejde og anvende relevante analyse- og designdokumenter, herunder kravbeskrivelse og UML-diagrammer, som understøtter sammenhængen mellem krav, design og implementering.

  • Præsentere og formidle løsningen samt redegøre for tekniske valg, prioriteringer og fravalg, herunder refleksion over energioptimeringens betydning for løsningens kvalitet og anvendelighed.

  • Arbejde struktureret med udviklingsprocessen og anvende feedback konstruktivt i videreudviklingen af løsningen.

Disse bedømmelseskriterier anvendes både i den formative og den summative evaluering og indgår samlet i vurderingen af elevens kompetenceniveau i forhold til læringsmålene for casen.

Case: API og IoT

Mål for undervisningen

Målet med undervisningen i denne case er at give eleverne kompetencer til at designe, implementere og dokumentere IoT-baserede systemer, hvor embedded enheder, sensorer og centrale API-løsninger indgår i en samlet arkitektur.

Undervisningen skal sætte eleverne i stand til at arbejde med kommunikation mellem IoT-klienter og et centralt system, herunder håndtering af sensordata, anvendelse af HTTP-baserede API’er samt grundlæggende sikkerhedsforanstaltninger i netværks- og datakommunikation.

Casen har endvidere til formål at styrke elevernes evne til at anvende tidligere opnåede kompetencer inden for programmering, databaser, backend, netværk, dokumentation og projektarbejde i en praksisnær IoT-kontekst.

Læringsmål
  • Installere og opsætte et Linux-baseret styresystem på en embedded platform.

  • Anvende og navigere i et Linux-miljø, herunder forstå grundlæggende struktur, kommandoer og anvendelse.

  • Opbygge og udvikle et IoT-baseret system med fokus på håndtering og kommunikation af sensordata mellem klienter og et centralt system.

  • Arbejde med sikkerhed i IoT-løsninger, herunder anvende best-practice principper og fejlfinding.

  • Anvende standard programbiblioteker og udvikle grundlæggende IoT-programmer i relevante sprog og miljøer.

  • Dokumentere egne løsninger og redegøre for tekniske valg og implementering.

Læringsmålene danner grundlag for arbejdet med casen og indgår i vurderingen af elevernes faglige progression og målopfyldelse.

Målpinde for case: API og IoT

Ingen resultater

Målpinde
Linux rettet mod server og embedded - Avanceret (16481)
  • Lærlingen kan, ud fra en case-opgave, selvstændigt beskrive, opbygge og dokumentere en Linux baseret løsning, og kan herigennem demonstrere viden, færdigheder og kompetencer ud over de i faget beskrevne mål og målniveauer.
  • Lærlingen har en generel viden om Linux miljøet, og kan anvende denne viden i forbindelse med opgaver rettet mod Linux baserede systemer.
  • Lærlingen kan navigere i et Linux shell miljø og anvende almindeligt forekommende Linux kommandoer.
  • Lærlingen har en grundlæggende viden om Linux distributioner og Linux open source miljøet.
  • Lærlingen har en grundlæggende viden om Linux opbygning og Linux kernen.
  • Lærlingen kan anvende Linux programmeringsmiljøet.
  • Lærlingen kan anvende værktøjer og programmeringsmodellen til Linux.
  • Lærlingen kan anvende programmeringsmodellen til forskellige Linux varianter, herunder Linux server og embedded Linux.
  • Lærlingen kan anvende Linux dokumentationen til selvstændigt at finde nødvendig information.
  • Lærlingen kan dokumentere egne løsninger i Linux dokumentationssystemet.
IoT og Embeddede Linux systemer - Avanceret (17683)
  • Lærlingen kan installere og opsætte et Linux-baseret styresystem på en embedded platform.
  • Lærlingen kan beskrive den grundlæggende filstruktur i det Linux-baserede styresystem, og kan anvende almindeligt forekommende Shell kommandoer.
  • Lærlingen kan anvende et eksternt klientprogram som fx winscp og puTTY, til at arbejde på et Linux-baseret styresystem.
  • Lærlingen kan, via Shell kommandoer, installere, opgradere og afinstallere software på et Linux-baseret styresystem.
  • Lærlingen kan, i forhold til en given opgave, opsætte rettigheder og brugerprofiler på et Linux-baseret styresystem.
  • Lærlingen kan, i forhold til en given opgave, udvikle applikation på et Linux-baseret embedded system.
  • Lærlingen kan opbygge og udvikle et IoT/IIoT-baseret system, som kan indlæse data fra sensorer som fx vision-sensorer, eller data fra intelligente sensorer, behandle dataene og videresende dem til et centralt system eller en skyløsning.
  • Lærlingen kan, på baggrund af sin viden om sikkerhed, følge Best-Practice sikkerhedsanvisninger, og tage stilling til nødvendigheden af procedurer for løbende opdatering.
IoT og Embeddede systemer - Avanceret (17682)
  • Lærlingen kan redegøre for målsætningen med IoT og IIoT.
  • Lærlingen kan redegøre for de forskellige begreber, teknikker, standarder, modeller og processer, der typisk indgår i IoT og IIoT løsninger.
  • Lærlingen kan redegøre for, hvornår en enhed kan betegnes som en IoT/IIoT enhed.
  • Lærlingen kan redegøre for konkrete teknologier, komponenter og enheder, der kan anvendes i IoT/IIoT løsninger.
  • Lærlingen kan redegøre for hvilke risici og udfordringer, der skal tages i betragtning ved IoT/IIoT.
  • Lærlingen kan redegøre for løsningsmuligheder ud fra konkrete cases på IoT/IIoT løsninger.
  • Lærlingen kan redegøre for system- og integrationsmuligheder med IoT/IIoT på nuværende systemer, som f.eks. produktionssystemer.
  • Lærlingen kan beskrive kendte anvendelsesområder med IoT/IIoT.
  • Lærlingen kan opbygge og dokumentere en mindre IoT løsning, der anvender standard IoT software, hardware og enheder
  • Lærlingen kan udvælge relevante sensortyper og sensorsystemer i forhold til opbygning af en given IoT og IIoT løsning.
  • Lærlingen kan, på baggrund af sin viden om analoge og digitale outputsignaler fra forskellige sensortyper, foretage kvalitetsmåling og validering af sensor-outputs, og vurdere, om signal-outputtet er validt.
  • Lærlingen kan, på baggrund af sin viden om elektronik og måleteknik, foretage fejlanalyse på analoge, digitale, serielle og trådløse outputs.
  • Lærlingen kan, på baggrund af sin viden om tidsaktuelle IoT/IIoT datakommunikationsteknologier og protokoller, foretage valg af den datakommunikationsteknologi, der er bedst egnet i forhold til opbygning af en given IoT/IIoT løsning.
  • Lærlingen kan, på baggrund af sin viden om sikkerhedsproblemer foretage en risikoanalyse af mulige sikkerhedsproblemer og på baggrund heraf indføre forebyggende foranstaltninger, som fx en plan for opdatering af enhedernes firmware/software.
  • Lærlingen kan, på baggrund af sin viden om teknikker til fejlfinding på netværksforbindelser, foretage elementær fejlfinding på trådede og trådløse netværksforbindelser.
  • Lærlingen kan arbejde med IoT/IIoT relaterede opgaver, som omfatter anvendelse af designguideline til design af mindre IoT/IIoT løsninger, og viden om aktuelle industristandarder
  • Lærlingen kan beskrive hvilke hardwarekomponenter, der typisk indgår i et embedded system, såsom digitale og analoge interfacemuligheder og opkobling til netværk. Desuden kan lærlingen beskrive mulige programmeringssprog og tilhørende udviklingsværktøj.
  • Lærlingen kan, ud fra en konkret opgave og med et standard embedded system, opbygge en mindre prototype-løsning.
  • Lærlingen kan anvende programmeringssproget i et embedded system til at styre input og output af data. Dette sker vha. programmeringssprogets programbiblioteker.
  • Lærlingen kan anvende værktøjer til at kommunikere med et embedded system, og til håndtering af programudvikling.
  • Lærlingen kan anvende programmeringssprogets aritmetiske operatorer, kontrolstrukturer, løkker og arrays.
  • Lærlingen kan opbygge og programmere en IoT/IIoT embedded løsning, der integrerer en sensor med et embedded system, og hvor det udviklede program kan analysere eller bearbejde signalet/dataene inden det/de sendes på nettet.
  • Lærlingen kan programmere en IoT/IIoT embedded løsning, der kan foretage analyse af input værdier i forhold til referenceværdier, og udføre handlinger på baggrund af analysens resultater, samt foretage databehandling af analoge og digitale værdier.
  • Lærlingen kan, ud fra viden om metoder til at foretage test af og fejlfinding på et udviklet program, foretage afprøvning og fejlretning af en udviklet løsning

Indhold i undervisningen

Undervisningen i denne case omfatter udvikling af et samlet IoT-system bestående af embedded enheder, sensorer og en central API-baseret løsning. Eleverne arbejder projektorienteret og anvender kompetencer fra tidligere hovedforløb, herunder API-udvikling, grundlæggende programmeringsteknikker, versionsstyring og databasedesign.

Eleverne beskæftiger sig med både server- og klientperspektivet i IoT-systemer og arbejder med kommunikation, datahåndtering og sikkerhed i en samlet løsning.

Indhold

Eleverne arbejder med følgende fagområder:

  • Linux og embedded systemer
    Installation og opsætning af Linux OS Lite på embedded enheder, herunder grundlæggende Linux-struktur, sikkerhed, shell-kommandoer og opsætning af services som LAMP-stack og firewall.

  • API og central IoT-arkitektur
    Udvikling og anvendelse af en central Linux-baseret API-løsning, som modtager, behandler og lagrer data fra IoT-klienter.

  • IoT-klienter og sensordata
    Udvikling af IoT-klientløsninger på Linux-baserede systemer samt embedded enheder programmeret i C/C++ eller MicroPython, der indsamler data fra analoge og digitale sensorer og videresender dem til det centrale system.

  • Sikkerhed og fejlfinding
    Arbejde med sikkerhedshensyn i IoT-systemer, herunder netværk, datahåndtering og stabil drift, samt systematisk fejlfinding.

Arbejdsformer

Undervisningen veksler mellem teoretiske oplæg og praktisk arbejde, hvor teorien afprøves gennem brug af udleveret hardware. Eleverne arbejder i grupper og udvikler i fællesskab den samlede IoT-løsning, samtidig med at hver elev har ansvar for dele af systemet.

Differentiering

Forløbet er tilrettelagt, så elever med forskellige kompetenceniveauer kan udfordres på passende vis:

  • Der tilbydes grundlæggende vejledning for at sikre, at alle elever opnår forståelse for casens centrale elementer.

  • Elever med særlige forudsætninger kan fordybe sig i mere avancerede IoT-opsætninger, udvidet softwarefunktionalitet eller grafisk visualisering af data.

Tværfaglighed og helhedsorientering

Undervisningen integrerer flere IT-discipliner, hvor valg af hardware indgår sammen med programmering, API-udvikling, databaser, backend-logik og sikkerhed.

Eleverne arbejder med sammenhængen mellem embedded enheder, netværk, datakommunikation og centrale systemer og opnår en helhedsorienteret forståelse af IoT-løsninger og Embedded Linux-baserede systemer.

Praksisrelateret undervisning

Eleverne arbejder med en praksisnær case, der afspejler reelle udfordringer inden for udvikling af IoT-systemer, herunder valg af hardware- og softwareløsninger, kommunikation og sikkerhed.

Der anvendes teknologier, metoder og hardware, som anvendes i IT-branchen, og eleverne opnår erfaring med IoT-løsninger, der med begrænsede justeringer kan implementeres i erhvervsmæssige sammenhænge.

Evaluering og bedømmelse

Evalueringen af undervisningsforløbet sker løbende gennem formative evalueringer og afsluttes med en summativ vurdering af elevens faglige standpunkt. Evalueringen har til formål at sikre, at eleverne opnår læringsmålene for casen og udvikler både tekniske og metodiske kompetencer.

Løbende evaluering og feedback (formativ evaluering)

Den formative evaluering foregår løbende gennem hele forløbet og gennemføres blandt andet gennem:

  • Løbende opfølgning på projektets status, hvor eleverne demonstrerer hardware- og softwareløsninger.

  • Kodegennemgang og dialog om tekniske valg, struktur, kommunikation og sikkerhed.

  • Feedback på projektarbejde via fælles projektboard, hvor eleverne dokumenterer aktiviteter og progression.

Formålet med den formative evaluering er at understøtte elevernes læring og give mulighed for løbende forbedring af både løsning og arbejdsproces.

Afsluttende bedømmelse (summativ evaluering)

Den summative evaluering foretages ved forløbets afslutning og baseres på en samlet vurdering af:

  • Gruppens samlede systemdokumentation med beskrivelse af projektets udvikling, tekniske løsninger og begrundelser.

  • En individuel mundtlig præsentation, hvor eleven redegør for eget bidrag, tekniske valg og refleksioner.

  • En praktisk demonstration af den udviklede IoT-løsning og tilhørende hardware.

Bedømmelseskriterier – CASE 3: API og IoT

Bedømmelseskriterierne tager udgangspunkt i de fastlagte læringsmål for casen og synliggør, hvordan disse kommer til udtryk i elevens arbejde. Bedømmelsen foretages som en professionel helhedsvurdering.

Der lægges særlig vægt på elevens evne til at:

  • Udvikle og konfigurere en velfungerende IoT-løsning, hvor embedded enheder, sensorer og et centralt API-baseret system indgår i en sammenhængende arkitektur.

  • Anvende Linux-miljøet hensigtsmæssigt på embedded platforme, herunder opsætning, drift og grundlæggende sikkerhed.

  • Implementere stabil og korrekt kommunikation af sensordata mellem klienter og det centrale system.

  • Arbejde med sikkerhed og fejlfinding i IoT-systemer i overensstemmelse med gældende best-practice principper.

  • Dokumentere løsningen og redegøre for tekniske valg, implementering og begrundelser.

  • Arbejde struktureret og professionelt med udviklingsprocessen og samarbejde i projektgruppen.

Disse bedømmelseskriterier anvendes både i den formative og den summative evaluering.