first commit
This commit is contained in:
@@ -0,0 +1,137 @@
|
|||||||
|
# Læringsmål – AI til softwareløsninger
|
||||||
|
|
||||||
|
*Del af 30 ECTS-projekt, 26/8–6/12 2026. Se den fælles [Projektplan – Ugeplan.md](Projektplan%20-%20Ugeplan.md) for tidsplan og timefordeling.*
|
||||||
|
|
||||||
|
## 🎯 Mål
|
||||||
|
|
||||||
|
Jeg vil opnå praktisk kompetence i at anvende AI til fortolkning af hoteldata og udvikle AI-baserede funktioner, som kan understøtte hotellets beslutninger.
|
||||||
|
|
||||||
|
Mit fokus er at forstå, hvordan forskellige AI-teknologier og LLM'er kan anvendes til at fortolke data, samt hvordan jeg vælger den AI-model eller teknologi, der passer bedst til en konkret problemstilling.
|
||||||
|
|
||||||
|
Som en del af projektet vil jeg desuden undersøge og anvende Machine Learning til OCR-behandling af pas, så relevante oplysninger som pasnummer, navn og nationalitet automatisk kan identificeres fra et pasbillede.
|
||||||
|
|
||||||
|
Jeg vil som grundlag for arbejdet gennemføre de relevante dele af et Python-for-AI-kursus med fokus på:
|
||||||
|
|
||||||
|
- Python
|
||||||
|
- LLM (rapportgenerering med visuelle modeller og konklusion for forbedringer)
|
||||||
|
- Machine Learning (lagring af pasinformationer)
|
||||||
|
|
||||||
|
Fokus er dermed på at forstå, vælge, anvende og evaluere AI-teknologier – ikke på at udvikle en komplet kommerciel AI-løsning.
|
||||||
|
|
||||||
|
### Jeg vil kunne – med Bloom-niveau
|
||||||
|
|
||||||
|
| # | Jeg vil kunne | Bloom-niveau |
|
||||||
|
|---|---|---|
|
||||||
|
| 1 | identificere hvor AI kan skabe værdi i hotelprojektet | Analysere |
|
||||||
|
| 2 | vælge og begrunde valg af relevante LLM'er og AI-modeller | Vurdere |
|
||||||
|
| 3 | sammenligne forskellige LLM'er ud fra kriterier som kvalitet, hastighed, pris, privacy og anvendelighed | Analysere |
|
||||||
|
| 4 | anvende LLM'er til fortolkning af strukturerede og ustrukturerede hoteldata | Anvende |
|
||||||
|
| 5 | formulere prompts, der giver brugbare og reproducerbare resultater | Skabe |
|
||||||
|
| 6 | anvende AI til at identificere mønstre, sammenhænge og mulige forklaringer i hoteldata | Analysere |
|
||||||
|
| 7 | vurdere AI's fortolkninger kritisk og sammenholde dem med de faktiske data | Vurdere |
|
||||||
|
| 8 | undersøge Machine Learning til OCR-behandling af pas | Forstå/Analysere |
|
||||||
|
| 9 | udvikle eller integrere en OCR-løsning, der kan identificere pasnummer, navn og nationalitet | Skabe |
|
||||||
|
| 10 | teste AI-løsningernes nøjagtighed og håndtere fejl og usikkerhed | Analysere/Vurdere |
|
||||||
|
| 11 | vurdere hvornår AI-output kræver menneskelig kontrol | Vurdere |
|
||||||
|
| 12 | dokumentere mine valg, eksperimenter, resultater og refleksioner | Forstå/Anvende |
|
||||||
|
|
||||||
|
Niveauet spænder bevidst fra analysere til skabe, så ambitionen matcher et 30 ECTS-forløb frem for et rent gengivelses- eller forståelsesniveau.
|
||||||
|
|
||||||
|
## 📚 Kerneområder
|
||||||
|
|
||||||
|
**I større grad:**
|
||||||
|
Python for AI · Machine Learning · AI til fortolkning af data · Large Language Models (LLM) · Modelvalg og model comparison · Prompt engineering · Generativ AI · AI-baseret beslutningsstøtte · OCR · Feature extraction
|
||||||
|
|
||||||
|
**I mindre grad:**
|
||||||
|
Fortolkning af hoteldata (delt med Læringsmål 2) · Test og evaluering af AI-output · Fejlhåndtering og usikkerhed · Human-in-the-loop · Privacy og ansvarlig AI
|
||||||
|
|
||||||
|
Dette læringsmål bærer hovedvægten af kerneområderne **AI & Machine Learning** i projektet, med **Programmering** som understøttende (mindre) kerneområde via kursus og implementering.
|
||||||
|
|
||||||
|
## 📊 Målbare succeskriterier
|
||||||
|
|
||||||
|
Jeg betragter læringsmålet som opnået, når jeg kan dokumentere:
|
||||||
|
|
||||||
|
**1. Python-for-AI-kursus**
|
||||||
|
Jeg gennemfører de relevante dele af et Python-for-AI-kursus med fokus på Python, Pandas, NumPy, Matplotlib og Machine Learning, og dokumenterer hvordan læringen anvendes i de efterfølgende AI-eksperimenter og i hotelprojektet.
|
||||||
|
|
||||||
|
**2. Valg af AI-model**
|
||||||
|
Jeg undersøger mindst 3 relevante LLM'er eller AI-modeller til projektets problemstillinger. For hver model dokumenterer jeg: hvad den kan anvendes til, styrker/begrænsninger, kvalitet af output, hastighed, ressourceforbrug, privacy/datahåndtering, og hvorfor den er/ikke er relevant. Jeg vælger mindst én model og begrunder valget ud fra konkrete testresultater.
|
||||||
|
|
||||||
|
**3. AI til fortolkning af hoteldata**
|
||||||
|
Jeg anvender en LLM eller anden AI-model til at fortolke hoteldata, fx til at identificere mønstre i belægningen, usædvanlige perioder, sammenhænge mellem faktorer, effekten af events/sæsoner, mulige forklaringer på ændringer i efterspørgslen og mulige forbedringer af hotellets marketing. Jeg sammenholder AI'ens fortolkning med de faktiske data og dokumenterer, hvor AI'en giver en korrekt, usikker eller forkert fortolkning.
|
||||||
|
|
||||||
|
**4. Prompting og AI-eksperimenter**
|
||||||
|
Jeg udvikler mindst 3 forskellige prompts eller promptstrategier til fortolkning af hoteldata og dokumenterer prompt, inputdata, AI-output, ændringer i prompten, forskelle i resultater og min vurdering af resultatets kvalitet.
|
||||||
|
|
||||||
|
**5. Machine Learning til OCR**
|
||||||
|
Jeg undersøger, hvordan Machine Learning og OCR kan anvendes til automatisk behandling af pasbilleder. Løsningen skal kunne identificere mindst pasnummer, navn og nationalitet. Jeg dokumenterer, hvordan data bevæger sig fra: Pasbillede → OCR/ML → tekst → strukturerede pasoplysninger.
|
||||||
|
|
||||||
|
**6. Test og evaluering**
|
||||||
|
Jeg gennemfører mindst 10 dokumenterede testcases fordelt på AI-funktionerne og registrerer input, forventet resultat, faktisk resultat, fejl/usikkerhed, hvordan fejlen håndteres, og om menneskelig kontrol er nødvendig.
|
||||||
|
|
||||||
|
## 🚀 Milestones (se ugeplan for datoer)
|
||||||
|
|
||||||
|
| Milestone | Uge | Indhold |
|
||||||
|
|---|---|---|
|
||||||
|
| M1 – Afprøvning af LLM-modeller | Uge 1–3 (26/8–9/9) | Identificér ≥3 LLM'er, afprøv på mindre datamængde, sammenlign kvalitet/hastighed/ressourceforbrug/anvendelighed, vælg model(ler) |
|
||||||
|
| M2 – Første LLM-eksperimenter | Uge 4–8 (16/9–14/10) | Systematiske eksperimenter med ≥3 promptstrategier, identificér mønstre/sammenhænge/årsager, udarbejd AI-baserede marketingkonklusioner |
|
||||||
|
| M3 – Implementering i NF Hotel | Uge 9–10 (21/10–28/10) | Integrér valgt AI-model med hoteldata i NF Hotel, præsentér AI-fortolkning som beslutningsstøtte |
|
||||||
|
| M4 – OCR/ML | Uge 11–13 (4/11–18/11) | Afprøv OCR/ML-teknologi på testbilleder, identificér pasnummer/navn/nationalitet, dokumentér nøjagtighed/fejl/begrænsninger, vurdér integration i NF Hotel |
|
||||||
|
| Aflevering | Uge 15 (2/12–6/12) | Samlet konklusion, SMART-tjek, portfolio |
|
||||||
|
|
||||||
|
## 🔄 Læring gennem Kolbs læringscirkel
|
||||||
|
|
||||||
|
**1. Konkret erfaring**
|
||||||
|
Jeg gennemfører Python-for-AI-kurset og eksperimenterer derefter med LLM'er, prompts og OCR/ML-teknologier på konkrete problemstillinger fra hotelprojektet.
|
||||||
|
|
||||||
|
**2. Refleksion**
|
||||||
|
Jeg dokumenterer: hvad der fungerede, hvad der ikke fungerede, forskelle mellem modeller, fejl i AI'ens fortolkninger, fejl i OCR-resultater, hvordan jeg vurderede kvaliteten.
|
||||||
|
|
||||||
|
**3. Abstrakt begrebsliggørelse**
|
||||||
|
Jeg kobler erfaringerne til teori om: Python for AI, LLM'er, Machine Learning, OCR, Computer Vision, prompting, model selection, AI-evaluering, hallucinationer og usikkerhed, human-in-the-loop.
|
||||||
|
|
||||||
|
**4. Aktiv eksperimenteren**
|
||||||
|
Jeg bruger mine erfaringer til at ændre model, prompt eller metode og gennemfører nye eksperimenter.
|
||||||
|
|
||||||
|
Eksperiment → refleksion → teori → forbedring → nyt eksperiment
|
||||||
|
|
||||||
|
## 🗂️ Bevis / portfolio
|
||||||
|
|
||||||
|
- Dokumentation fra relevante dele af Python-for-AI-kurset
|
||||||
|
- Sammenligning af mindst 3 AI-modeller/LLM'er
|
||||||
|
- Begrundelse for valg af model
|
||||||
|
- AI-fortolkning af hoteldata
|
||||||
|
- Mindst 3 promptstrategier
|
||||||
|
- AI-baserede konklusioner om mulige marketingforbedringer
|
||||||
|
- Integration af AI-fortolkning i NF Hotel
|
||||||
|
- ML/OCR-prototype til pasinformation
|
||||||
|
- Mindst 10 dokumenterede testcases
|
||||||
|
- Eksempler på fejl og usikkerhed
|
||||||
|
- Mine egne vurderinger af AI-output
|
||||||
|
- Refleksioner gennem Kolbs læringscirkel
|
||||||
|
- Konklusion på AI-teknologiernes anvendelighed
|
||||||
|
|
||||||
|
## ✅ SMART-tjek
|
||||||
|
|
||||||
|
### 🎯 S – Specifikt
|
||||||
|
🎯 **Måltavle:** Jeg vil udvikle mine kompetencer inden for AI ved at anvende LLM'er og Machine Learning på konkrete problemstillinger i NF Hotel, med fokus på AI-baseret fortolkning af hoteldata, rapportgenerering og OCR-behandling af pasinformation.
|
||||||
|
📍 **Placeringsnål:** Målet er placeret præcist ved skæringspunktet mellem modelvalg, prompt engineering og OCR/ML til pasdata – ikke bred AI-udvikling generelt.
|
||||||
|
|
||||||
|
### 📊 M – Målbart
|
||||||
|
📊 **Søjlediagram:** Sammenligning af ≥3 AI-modeller/LLM'er på tværs af kvalitet, hastighed, ressourceforbrug og privacy.
|
||||||
|
📈 **Stigende kurve:** ≥3 promptstrategier med dokumenterede forbedringer mellem iterationer.
|
||||||
|
📏 **Lineal:** ≥1 AI-baseret analyse/rapport af hoteldata, ≥1 OCR/ML-prototype til pasnummer/navn/nationalitet, ≥10 dokumenterede testcases med fejl/usikkerhed og behov for menneskelig kontrol.
|
||||||
|
|
||||||
|
### 🤝 A – Attraktivt/Opnåeligt
|
||||||
|
🤝 **Håndtryk:** Læringsmålet tager udgangspunkt i eksisterende teknologi og data fra NF Hotel – jeg afgrænser arbejdet til at undersøge, udvikle og evaluere AI-baserede funktioner frem for at bygge en komplet kommerciel AI-platform.
|
||||||
|
💪 **Spændt biceps:** De 8 ugentlige programmeringstimer og 26 ugentlige lærings-/portfolio-timer giver realistisk tid til kursus, eksperimenter og dokumentation inden for de 15 uger.
|
||||||
|
✅ **Flueben:** Hvert milestone har konkrete, afkrydsbare leverancer (se milestone-tabel og portfolio-liste).
|
||||||
|
|
||||||
|
### ⚖️ R – Relevant
|
||||||
|
⚖️ **Vægt:** Læringsmålet balancerer teoretisk forståelse af AI-teknologier med praktisk anvendelse på reelle hoteldata.
|
||||||
|
🔑 **Nøgle:** Det låser op for kompetencer inden for AI i softwareudvikling – valg, anvendelse og evaluering af AI-teknologier på reelle data – som er centrale for projektets AI-kerneområde.
|
||||||
|
|
||||||
|
### ⏱️ T – Tidsbestemt
|
||||||
|
⏱️ **Stopur:** 26/8–6/12 2026, milestone hver uge (se ugeplan).
|
||||||
|
📅 **Kalender:** M1 uge 1–3, M2 uge 4–8, M3 uge 9–10, M4 uge 11–13, aflevering uge 15.
|
||||||
|
⏳ **Timeglas:** Ved eksamen afgøres det, om læringsmålet er opnået, ud fra om jeg kan dokumentere mine AI-eksperimenter, begrunde mine teknologivalg, evaluere resultaterne kritisk og anvende mindst én AI-baseret funktion i NF Hotel.
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
# Læringsmål – Dataanalyse og databehandling
|
||||||
|
|
||||||
|
*Del af 30 ECTS-projekt, 26/8–6/12 2026. Se den fælles [Projektplan – Ugeplan.md](Projektplan%20-%20Ugeplan.md) for tidsplan og timefordeling.*
|
||||||
|
|
||||||
|
## 🎯 Mål
|
||||||
|
|
||||||
|
Jeg vil opnå praktisk kompetence i at indsamle, strukturere, rense, analysere og visualisere data med fokus på historiske hoteldata.
|
||||||
|
|
||||||
|
Jeg vil kunne anvende statistiske metoder og datavisualisering til at identificere trends, mønstre og sammenhænge i data og kunne forklare, hvad resultaterne betyder.
|
||||||
|
|
||||||
|
Jeg vil desuden kunne vurdere datakvalitet og begrænsninger og formidle analyseresultater på en måde, der kan understøtte beslutninger om eksempelvis kapacitet, priser, bemanding og planlægning.
|
||||||
|
|
||||||
|
Fokus er på dataenes kvalitet, behandling og fortolkning – ikke på at udvikle Machine Learning-modeller (det ligger i [Læringsmål 1](Læringsmål%20–%20AI%20til%20hotelbelægning%20og%20prisforudsigelse.md)).
|
||||||
|
|
||||||
|
### Jeg vil kunne – med Bloom-niveau
|
||||||
|
|
||||||
|
| # | Jeg vil kunne | Bloom-niveau |
|
||||||
|
|---|---|---|
|
||||||
|
| 1 | dokumentere datakilde, struktur og begrænsninger for et historisk hoteldatasæt | Forstå |
|
||||||
|
| 2 | gennemføre en systematisk kontrol af datakvalitet (manglende værdier, dubletter, fejlformater m.m.) | Analysere |
|
||||||
|
| 3 | anvende statistiske mål (gennemsnit, median, kvartiler, standardafvigelse m.fl.) | Anvende |
|
||||||
|
| 4 | forklare, hvad statistiske resultater fortæller om datasættet | Forstå |
|
||||||
|
| 5 | identificere trends, mønstre og sammenhænge i data | Analysere |
|
||||||
|
| 6 | vælge og designe relevante visualiseringer til en given problemstilling | Skabe |
|
||||||
|
| 7 | begrunde valg af visualiseringstype ud fra hvad den skal vise | Vurdere |
|
||||||
|
| 8 | vurdere datakvalitet, begrænsninger og hvad data kan/ikke kan fortælle | Vurdere |
|
||||||
|
| 9 | formidle analyseresultater som grundlag for beslutninger om kapacitet, pris, bemanding og planlægning | Skabe |
|
||||||
|
|
||||||
|
Niveauet spænder fra anvende til vurdere/skabe – passende for et 30 ECTS-forløb, hvor formidling og kritisk vurdering af data vejer tungere end ren beskrivelse.
|
||||||
|
|
||||||
|
## 📚 Kerneområder
|
||||||
|
|
||||||
|
**I større grad:**
|
||||||
|
Dataindsamling · Datastrukturering · Datakvalitet · Datarensning · Dataanalyse · Statistik · Deskriptiv statistik · Trends og mønstre · Sammenhænge mellem variable · Datavisualisering
|
||||||
|
|
||||||
|
**I mindre grad:**
|
||||||
|
Fortolkning af resultater (delt med Læringsmål 1) · Formidling af data
|
||||||
|
|
||||||
|
Dette læringsmål bærer hovedvægten af kerneområdet **Dataanalyse & databehandling**, med **Formidling/dokumentation** som understøttende (mindre) kerneområde.
|
||||||
|
|
||||||
|
## 📊 Målbare succeskriterier
|
||||||
|
|
||||||
|
Jeg betragter læringsmålet som opnået, når jeg kan dokumentere:
|
||||||
|
|
||||||
|
**1. Datasæt**
|
||||||
|
Jeg anvender mindst ét historisk datasæt med hotelrelaterede data, som indeholder relevante variable såsom dato, ugedag, måned/sæson, antal bookede værelser, kapacitet, belægningsprocent, værelsestype og pris. Jeg dokumenterer datakilde, struktur og eventuelle begrænsninger.
|
||||||
|
|
||||||
|
**2. Datakvalitet og databehandling**
|
||||||
|
Jeg gennemfører en systematisk kontrol af datasættet og identificerer manglende værdier, ugyldige værdier, dubletter, fejlformater og irrelevante data. Jeg dokumenterer mindst 3 konkrete datakvalitetsproblemer og beskriver, hvordan de håndteres.
|
||||||
|
|
||||||
|
**3. Statistisk analyse**
|
||||||
|
Jeg anvender mindst 4 statistiske mål eller beregninger (fx gennemsnit, median, minimum/maksimum, kvartiler, standardafvigelse, variation) og kan forklare, hvad resultaterne fortæller om datasættet.
|
||||||
|
|
||||||
|
**4. Trends og mønstre**
|
||||||
|
Jeg identificerer mindst 5 konkrete trends, mønstre eller sammenhænge (fx forskel mellem hverdage/weekender, sæsonvariation, perioder med høj/lav belægning, forskelle mellem værelsestyper, sammenhæng mellem pris og belægning). Hver observation understøttes af en relevant beregning eller visualisering.
|
||||||
|
|
||||||
|
**5. Visualisering**
|
||||||
|
Jeg udvikler mindst 4 forskellige relevante visualiseringer (fx linjediagram, søjlediagram, histogram, boxplot, scatterplot) og kan forklare, hvorfor hver er valgt, og hvad den viser.
|
||||||
|
|
||||||
|
**6. Fortolkning**
|
||||||
|
Jeg udarbejder en samlet analyse, hvor jeg forklarer hvilke mønstre der findes, hvilke variable der ser ud til at hænge sammen, hvad data kan/ikke kan fortælle, og hvilke begrænsninger der er ved analysen.
|
||||||
|
|
||||||
|
## 🚀 Milestones (se ugeplan for datoer)
|
||||||
|
|
||||||
|
| Milestone | Uge | Indhold |
|
||||||
|
|---|---|---|
|
||||||
|
| M1 – Datasæt og datakvalitet | Uge 1–2 (26/8–2/9) | Find/opret datasæt, dokumentér variable/kilde, identificér ≥3 datakvalitetsproblemer, første Kolb-refleksion |
|
||||||
|
| M2 – Første databehandling | Uge 3–4 (9/9–16/9) | Rens data, beregn gennemsnit/median/min/maks, ≥2 indledende visualiseringer |
|
||||||
|
| M3 – Uddybet statistik | Uge 5 (23/9) | Udvid til ≥4 statistiske mål (kvartiler, standardafvigelse) |
|
||||||
|
| M4 – Trends og mønstre | Uge 6–9 (30/9–21/10) | Identificér ≥5 trends/mønstre understøttet af beregning/visualisering, ≥4. visualisering |
|
||||||
|
| M5 – Samlet fortolkning | Uge 11 (4/11) | Beskriv hvad data kan/ikke kan fortælle, og analysens begrænsninger |
|
||||||
|
| M6 – Konklusion | Uge 14 (25/11) | Samlet konklusion på analysen, portfolio klargøres |
|
||||||
|
| Aflevering | Uge 15 (2/12–6/12) | SMART-tjek, samlet konklusion, portfolio |
|
||||||
|
|
||||||
|
## 🔄 Læring gennem Kolbs læringscirkel
|
||||||
|
|
||||||
|
**1. Konkret erfaring**
|
||||||
|
Jeg arbejder praktisk med et hoteldata-sæt og gennemfører dataindsamling, datarensning og analyse.
|
||||||
|
|
||||||
|
**2. Refleksion**
|
||||||
|
Jeg dokumenterer: hvilke problemer jeg fandt i data, hvilke valg jeg foretog, hvilke visualiseringer der fungerede, hvilke resultater der overraskede mig.
|
||||||
|
|
||||||
|
**3. Abstrakt begrebsliggørelse**
|
||||||
|
Jeg kobler mine erfaringer til teori om: statistik, datakvalitet, databehandling, visualisering, korrelation og sammenhænge.
|
||||||
|
|
||||||
|
**4. Aktiv eksperimenteren**
|
||||||
|
Jeg bruger min nye forståelse til at ændre analysen, afprøve andre metoder eller visualiseringer og sammenligne resultaterne.
|
||||||
|
|
||||||
|
Analyse → refleksion → teori → ny analyse
|
||||||
|
|
||||||
|
## 🗂️ Bevis / portfolio
|
||||||
|
|
||||||
|
- Datasæt og datakilde
|
||||||
|
- Beskrivelse af variable
|
||||||
|
- Analyse af datakvalitet
|
||||||
|
- Dokumentation af mindst 3 datakvalitetsproblemer
|
||||||
|
- Mindst 4 statistiske beregninger
|
||||||
|
- Mindst 4 visualiseringer
|
||||||
|
- Mindst 5 identificerede trends/mønstre
|
||||||
|
- Fortolkning af resultater
|
||||||
|
- Beskrivelse af dataenes begrænsninger
|
||||||
|
- Refleksioner efter Kolbs læringscirkel
|
||||||
|
- Samlet konklusion på analysen
|
||||||
|
|
||||||
|
## ✅ SMART-tjek
|
||||||
|
|
||||||
|
### 🎯 S – Specifikt
|
||||||
|
🎯 **Måltavle:** Jeg vil analysere historiske hoteldata med fokus på datakvalitet, statistik, trends, mønstre og visualisering.
|
||||||
|
📍 **Placeringsnål:** Målet er placeret ved databehandling og -fortolkning, afgrænset fra ML-modelbygning, som hører til Læringsmål 1.
|
||||||
|
|
||||||
|
### 📊 M – Målbart
|
||||||
|
📊 **Søjlediagram:** ≥3 dokumenterede datakvalitetsproblemer med håndtering.
|
||||||
|
📈 **Stigende kurve:** ≥4 statistiske beregninger og ≥5 identificerede trends/mønstre, hver understøttet af beregning eller visualisering.
|
||||||
|
📏 **Lineal:** ≥1 datasæt, ≥4 visualiseringer, samlet fortolkning med eksplicitte begrænsninger.
|
||||||
|
|
||||||
|
### 🤝 A – Attraktivt/Opnåeligt
|
||||||
|
🤝 **Håndtryk:** Projektet afgrænses til dataanalyse og databehandling uden krav om at udvikle Machine Learning-modeller.
|
||||||
|
💪 **Spændt biceps:** De 26 ugentlige lærings-/portfolio-timer giver plads til grundig databehandling og dokumentation gennem hele perioden.
|
||||||
|
✅ **Flueben:** Hvert milestone har konkrete, afkrydsbare leverancer (se milestone-tabel og portfolio-liste).
|
||||||
|
|
||||||
|
### ⚖️ R – Relevant
|
||||||
|
⚖️ **Vægt:** Læringsmålet balancerer teknisk databehandling med formidling, der kan bruges til reelle beslutninger.
|
||||||
|
🔑 **Nøgle:** Det giver et praktisk grundlag for at arbejde med datadrevne softwareløsninger og understøtter projektets dataanalyse-kerneområde.
|
||||||
|
|
||||||
|
### ⏱️ T – Tidsbestemt
|
||||||
|
⏱️ **Stopur:** 26/8–6/12 2026, milestone hver uge (se ugeplan).
|
||||||
|
📅 **Kalender:** M1 uge 1–2, M2 uge 3–4, M3 uge 5, M4 uge 6–9, M5 uge 11, M6 uge 14, aflevering uge 15.
|
||||||
|
⏳ **Timeglas:** Ved eksamen afgøres det, om læringsmålet er opnået, ud fra om jeg kan indsamle, behandle, analysere, visualisere og fortolke et datasæt samt forklare mine metodiske valg og analysens begrænsninger.
|
||||||
@@ -0,0 +1,177 @@
|
|||||||
|
# Mit lab – fra simpel opsætning til fejlfinding
|
||||||
|
|
||||||
|
**Dato:** 01/9 2026
|
||||||
|
**Læringsmål dækket:** [AI i softwareprojekter](../Læringsmål–AI_til_softwareløsninger.md) og [Dataanalyse og databehandling](../Læringsmål–Dataanalyse_og_databehandling.md)
|
||||||
|
|
||||||
|
Som en del af mine to valgfag AI i softwareprojekter og Dataanalyse og databehandling har jeg arbejdet med at opbygge mit eget lab-miljø.
|
||||||
|
|
||||||
|
Formålet har ikke kun været at få nogle Docker-containere til at køre. Labbet er blevet en praktisk platform, hvor jeg kan eksperimentere, fejlsøge og koble teori til konkrete problemstillinger fra mit hotelprojekt.
|
||||||
|
|
||||||
|
Mit lab består blandt andet af:
|
||||||
|
|
||||||
|
- PostgreSQL som database
|
||||||
|
- Gitea som Git-server
|
||||||
|
- Nginx som reverse proxy
|
||||||
|
- Mailserver til håndtering af e-mail
|
||||||
|
- Docker som grundlag for containerisering
|
||||||
|
|
||||||
|
På papiret ser opsætningen forholdsvis simpel ud. I praksis viste det sig hurtigt, at det er noget helt andet at få flere services til at fungere sammen.
|
||||||
|
|
||||||
|
*Selve begrundelsen for valget af hver komponent (og de fravalgte alternativer) er dokumenteret i sin egen post: [Processen i at vælge – teknologivalg til labbet](2026-09-17_Processen_i_at_vælge–teknologivalg_til_labbet.md).*
|
||||||
|
|
||||||
|
## 🧩 Udfordringer, løsninger og reflektion
|
||||||
|
|
||||||
|
### 🔧 Da mailserveren ikke virkede
|
||||||
|
|
||||||
|
Jeg undersøgte systemet trin for trin. Jeg brugte blandt andet:
|
||||||
|
|
||||||
|
```
|
||||||
|
ss -tlpn
|
||||||
|
```
|
||||||
|
|
||||||
|
Kommandoen viste, hvilke TCP-porte der lyttede på serveren. Her opdagede jeg, at port 993, som bruges til IMAPS, ikke var åben.
|
||||||
|
|
||||||
|
Derefter undersøgte jeg konfigurationen inde i Docker-containeren:
|
||||||
|
|
||||||
|
```
|
||||||
|
docker exec mailserver doveconf -n | grep -A2 -E "^service imap-login|^ssl "
|
||||||
|
```
|
||||||
|
|
||||||
|
Det gav et vigtigt spor: problemet var relateret til SSL-certifikatet, hvilket betød, at IMAPS ikke blev startet korrekt.
|
||||||
|
|
||||||
|
### 💡 Løsningen
|
||||||
|
|
||||||
|
Jeg endte med at generere et certifikat til mailserveren ved hjælp af Certbot.
|
||||||
|
|
||||||
|
Efter certifikatet var på plads, kunne mailserveren starte IMAPS korrekt, og port 993 blev igen synlig på serveren.
|
||||||
|
|
||||||
|
Det interessante var derfor ikke kun selve løsningen. Det var processen:
|
||||||
|
|
||||||
|
**Problem → undersøgelse → hypotese → test → ny viden → løsning**
|
||||||
|
|
||||||
|
Det er netop denne proces, jeg gerne vil kunne dokumentere i min læring.
|
||||||
|
|
||||||
|
### 🔐 En anden vigtig læring – passwords og data
|
||||||
|
|
||||||
|
Jeg stødte også på problemer med passwords i mine Bash-scripts.
|
||||||
|
|
||||||
|
Passwords med specialtegn gav uventede resultater, når de blev sendt som parametre til funktioner. Det fik mig til at undersøge, hvordan Bash håndterer værdier, og hvordan jeg kunne ændre min tilgang.
|
||||||
|
|
||||||
|
Det gav mig en vigtig erfaring:
|
||||||
|
|
||||||
|
**Data skal ikke bare kunne flyttes fra A til B – det skal ske på en måde, der er robust og sikker.**
|
||||||
|
|
||||||
|
Det er særligt relevant i et hotel management-system, hvor systemet potentielt håndterer bookingdata og andre oplysninger, som kræver korrekt behandling og kontrol.
|
||||||
|
|
||||||
|
## 🔄 Kolbs læringscirkel i praksis
|
||||||
|
|
||||||
|
Arbejdet med labbet kan kobles direkte til Kolbs læringscirkel, som jeg bruger i begge mine læringsmål.
|
||||||
|
|
||||||
|
**1. Konkret erfaring**
|
||||||
|
|
||||||
|
En af de største udfordringer i labbet var mailserveren. Jeg fulgte først vejledningen fra mailserverens egen dokumentation, men løsningen fungerede ikke i mit miljø, og jeg fandt heller ikke en løsning ved at søge efter andre løsninger online. Det betød, at jeg selv måtte undersøge systemet trin for trin for at finde ud af, hvorfor IMAPS-tjenesten (port 993) ikke startede – se de tekniske detaljer under "Da mailserveren ikke virkede" ovenfor.
|
||||||
|
|
||||||
|
**2. Refleksion**
|
||||||
|
|
||||||
|
Jeg undersøger, med udgangspunkt i mailserver-problemet:
|
||||||
|
|
||||||
|
- Hvad virkede ikke?
|
||||||
|
> IMAPS-tjenesten startede ikke – port 993 var lukket, selvom jeg fulgte mailserverens officielle opsætningsvejledning.
|
||||||
|
- Hvor opstod fejlen?
|
||||||
|
> Inde i selve containeren, i SSL/TLS-konfigurationen: uden et gyldigt certifikat kunne imap-login-servicen ikke starte.
|
||||||
|
- Hvilke antagelser havde jeg?
|
||||||
|
> Jeg antog, at en installation efter dokumentationen ville virke uden videre, og ledte derfor først efter en netværks-/portfejl frem for at mistænke certifikatet.
|
||||||
|
- Hvilke værktøjer kunne hjælpe mig?
|
||||||
|
> `ss -tlpn` til at se hvilke porte der reelt lyttede, og `docker exec ... doveconf -n` til at læse den faktiske konfiguration inde i containeren i stedet for kun at læse dokumentation udefra.
|
||||||
|
- Hvad kunne jeg gøre anderledes?
|
||||||
|
> Undersøge konfigurationen inde i containeren fra starten i stedet for at bruge tid på at søge efter færdige løsninger, og lade certifikat-generering med Certbot være en fast del af opsætningen fra begyndelsen.
|
||||||
|
|
||||||
|
> Meget af tiden gik med trial-and-error. Jeg kunne have sparet tid ved bare at finde en løsning på nettet, men så havde jeg ikke lært at debugge fejlen selv. Ved i stedet at bruge terminalkommandoerne til at spore årsagen har jeg nu en metode, jeg kan bruge igen – næste gang jeg ser problemet, ved jeg, hvor jeg skal lede.
|
||||||
|
|
||||||
|
**3. Abstrakt begrebsliggørelse**
|
||||||
|
|
||||||
|
Jeg kobler mine erfaringer til teori om blandt andet:
|
||||||
|
|
||||||
|
- Docker og containerisering
|
||||||
|
- netværk og porte
|
||||||
|
- SSL/TLS
|
||||||
|
- systemintegration
|
||||||
|
- databehandling
|
||||||
|
- fejlhåndtering
|
||||||
|
- sikkerhed og privacy
|
||||||
|
|
||||||
|
På samme måde skal jeg i dataanalyse koble mine praktiske erfaringer til teori om datakvalitet, statistik, visualisering og sammenhænge. I AI-sporet kobles erfaringerne til blandt andet LLM'er, modelvalg, AI-evaluering og human-in-the-loop.
|
||||||
|
|
||||||
|
**4. Aktiv eksperimenteren**
|
||||||
|
|
||||||
|
Når jeg har fundet en mulig forklaring, ændrer jeg konfigurationen eller metoden og tester igen. Det giver en løbende proces:
|
||||||
|
|
||||||
|
**Eksperiment → refleksion → teori → forbedring → nyt eksperiment**
|
||||||
|
|
||||||
|
Det er den samme tilgang, jeg senere vil bruge, når jeg arbejder med hoteldata, AI-modeller og AI-baseret beslutningsstøtte.
|
||||||
|
|
||||||
|
## 🎯 Hvilke kernemål i læringsmål dækkes
|
||||||
|
|
||||||
|
Arbejdet med labbet opfylder ikke hele mine læringsmål alene. Tabellerne herunder viser, hvor meget hvert kerneområde er dækket lige nu: 🟢 dækkes helt, 🟡 dækkes delvist, 🔴 dækkes kun lidt eller slet ikke endnu.
|
||||||
|
|
||||||
|
### Dataanalyse og databehandling
|
||||||
|
|
||||||
|
| Kerneområde | Vægt i læringsmål | Dækning | Begrundelse |
|
||||||
|
|---|---|:---:|---|
|
||||||
|
| Dataindsamling | Stor | 🟡 | PostgreSQL er sat op, men der indsamles endnu ikke reelle hoteldata |
|
||||||
|
| Datastrukturering | Stor | 🟡 | Databasen giver et sted at strukturere data, men skemaet til hoteldata er ikke designet endnu |
|
||||||
|
| Datakvalitet | Stor | 🔴 | Ikke arbejdet med endnu – kræver et faktisk datasæt |
|
||||||
|
| Datarensning | Stor | 🔴 | Ikke relevant før der er data at rense |
|
||||||
|
| Dataanalyse | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| Statistik | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| Deskriptiv statistik | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| Trends og mønstre | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| Sammenhænge mellem variable | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| Datavisualisering | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| Fortolkning af resultater | Mindre | 🔴 | Ikke relevant endnu |
|
||||||
|
| Formidling af data | Mindre | 🔴 | Denne post formidler proces, ikke data |
|
||||||
|
|
||||||
|
Labbet bliver derfor ikke selve dataanalysen, men den platform hvor data senere kan opbevares og gøres tilgængelige for analyse.
|
||||||
|
|
||||||
|
### AI i softwareprojekter
|
||||||
|
|
||||||
|
| Kerneområde | Vægt i læringsmål | Dækning | Begrundelse |
|
||||||
|
|---|---|:---:|---|
|
||||||
|
| Python for AI | Stor | 🔴 | Kurset er ikke startet endnu i denne del af forløbet |
|
||||||
|
| Machine Learning | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| AI til fortolkning af data | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| Large Language Models (LLM) | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| Modelvalg og model comparison | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| Prompt engineering | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| Generativ AI | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| AI-baseret beslutningsstøtte | Stor | 🟡 | Labbet lægger den tekniske forbindelse (data → software → AI), men selve beslutningsstøtten er ikke bygget |
|
||||||
|
| OCR | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| Feature extraction | Stor | 🔴 | Ikke påbegyndt |
|
||||||
|
| Fortolkning af hoteldata | Mindre | 🔴 | Ikke påbegyndt |
|
||||||
|
| Test og evaluering af AI-output | Mindre | 🔴 | Ikke relevant endnu – ingen AI-output at teste |
|
||||||
|
| Fejlhåndtering og usikkerhed | Mindre | 🟢 | Fejlsøgningen af mailserveren (port, SSL-certifikat) er direkte, dokumenteret træning i systematisk fejlhåndtering |
|
||||||
|
| Human-in-the-loop | Mindre | 🔴 | Ikke relevant endnu |
|
||||||
|
| Privacy og ansvarlig AI | Mindre | 🟡 | SSL-certifikater og robust password-håndtering i Bash er et skridt mod ansvarlig datahåndtering, men dækker endnu ikke AI-specifikke privacy-spørgsmål |
|
||||||
|
|
||||||
|
Labbet dækker altså ikke de store, tunge AI-kerneområder som LLM'er eller modelvalg endnu – de kommer i senere poster, når Python-for-AI-kurset og LLM-eksperimenterne er i gang. Her lægges i stedet fundamentet: et miljø hvor AI senere kan integreres med hoteldata, og en solid træning i systematisk fejlhåndtering.
|
||||||
|
|
||||||
|
Det betyder, at labbet kan blive forbindelsen mellem:
|
||||||
|
|
||||||
|
**Hoteldata → database → software → AI → beslutningsstøtte**
|
||||||
|
|
||||||
|
## 🏨 Hvilken værdi kan det give et hotel management-system?
|
||||||
|
|
||||||
|
Når jeg ser på labbet i forhold til et hotel management-system som NF Hotel, handler værdien ikke kun om teknologien i sig selv.
|
||||||
|
|
||||||
|
En samlet teknisk platform kan eksempelvis understøtte:
|
||||||
|
|
||||||
|
- sikker og struktureret håndtering af hoteldata
|
||||||
|
- integration mellem forskellige services
|
||||||
|
- automatiseret kommunikation via e-mail (ej efterspurgt af PO men kan være vigtigt for beslutningsstøtte)
|
||||||
|
- adgang til data til analyse
|
||||||
|
- integration af AI-funktioner
|
||||||
|
- bedre grundlag for beslutningsstøtte
|
||||||
|
|
||||||
|
På længere sigt kan data fra systemet analyseres for eksempelvis at finde trends i belægning, sæsonvariationer, forskelle mellem hverdage og weekender eller sammenhænge mellem pris og belægning. Det er netop nogle af de analyseområder, der indgår i mit dataanalyse-læringsmål.
|
||||||
|
|
||||||
|
AI kan derefter bruges som et ekstra lag til at fortolke data og undersøge mulige forklaringer eller forbedringer.
|
||||||
@@ -0,0 +1,270 @@
|
|||||||
|
# Sammenfald mellem AI i softwareudvikling og dataanalyse
|
||||||
|
|
||||||
|
**Dato:** 01/9 2026
|
||||||
|
**Læringsmål dækket:** [AI i softwareprojekter](../Læringsmål–AI_til_softwareløsninger.md) og [Dataanalyse og databehandling](../Læringsmål–Dataanalyse_og_databehandling.md)
|
||||||
|
|
||||||
|
Mine to læringsmål omhandler AI i softwareudvikling og dataanalyse og databehandling. De har forskellige faglige fokusområder, men når jeg arbejder praktisk med dem i hotelprojektet, opstår der et tydeligt sammenfald.
|
||||||
|
|
||||||
|
Dataanalysen giver mig et fagligt grundlag for at forstå og kontrollere hoteldata, mens AI-læringsmålet giver mig mulighed for at undersøge, hvordan AI kan anvendes til at arbejde med og fortolke disse data. De to læringsmål kan derfor ses som to komplementære kompetenceområder: dataanalyse hjælper mig med at forstå dataene – AI hjælper mig med at undersøge, hvordan teknologien kan arbejde med dataene. Samtidig giver dataanalysen mig et grundlag for at kontrollere, om AI's output faktisk kan understøttes af data.
|
||||||
|
|
||||||
|
## 🔗 Sammenfald mellem de to læringsmål
|
||||||
|
|
||||||
|
### Dataanalyse som fundament for AI
|
||||||
|
|
||||||
|
Før AI kan anvendes meningsfuldt på hoteldata, skal jeg først forstå kvaliteten og strukturen af dataene. Mit dataanalyse-læringsmål fokuserer blandt andet på:
|
||||||
|
|
||||||
|
- dataindsamling
|
||||||
|
- datastrukturering
|
||||||
|
- datakvalitet
|
||||||
|
- datarensning
|
||||||
|
- statistik
|
||||||
|
- trends og mønstre
|
||||||
|
- sammenhænge mellem variable
|
||||||
|
- visualisering
|
||||||
|
- fortolkning af resultater
|
||||||
|
|
||||||
|
Jeg skal blandt andet kunne identificere datakvalitetsproblemer, anvende statistiske beregninger og finde trends og sammenhænge i hoteldata. Det bliver vigtigt for AI-delen, fordi AI's output kun kan vurderes ordentligt, hvis jeg selv forstår de data, som AI arbejder med.
|
||||||
|
|
||||||
|
Eksempelvis kan jeg først undersøge: *er belægningen højere i weekenden?* Ved hjælp af statistik og visualisering kan jeg finde ud af, om der faktisk er en sådan sammenhæng. Derefter kan jeg undersøge: *kan AI identificere den samme sammenhæng?* På den måde bliver dataanalysen også en form for kontrolgrundlag for AI.
|
||||||
|
|
||||||
|
### AI som værktøj i softwareudviklingen
|
||||||
|
|
||||||
|
Mit AI-læringsmål handler ikke kun om at få AI til at skrive kode. Fokus er at kunne identificere, vælge, anvende og evaluere AI-teknologier i konkrete problemstillinger. Jeg skal blandt andet undersøge forskellige modeller og sammenligne dem ud fra:
|
||||||
|
|
||||||
|
- kvalitet
|
||||||
|
- hastighed
|
||||||
|
- ressourceforbrug
|
||||||
|
- privacy/datahåndtering
|
||||||
|
- anvendelighed
|
||||||
|
|
||||||
|
Jeg skal også arbejde med prompts, AI-fortolkning af hoteldata og kritisk sammenligning mellem AI-output og de faktiske data. Derfor bliver spørgsmålet ikke kun *kan AI skrive koden?*, men også: *kan jeg bruge AI systematisk og vurdere kvaliteten af det, AI producerer?*
|
||||||
|
|
||||||
|
### Hotelprojektet som fælles case
|
||||||
|
|
||||||
|
Hotelprojektet giver mig mulighed for at kombinere de to læringsmål i én samlet proces. Jeg kan eksempelvis arbejde med historiske hoteldata indeholdende:
|
||||||
|
|
||||||
|
- Dato
|
||||||
|
- Ugedag
|
||||||
|
- Sæson
|
||||||
|
- Bookede værelser
|
||||||
|
- Kapacitet
|
||||||
|
- Belægningsprocent
|
||||||
|
- Værelsestype
|
||||||
|
- Pris
|
||||||
|
|
||||||
|
Disse variable indgår direkte i dataanalyse-læringsmålet. Processen kan eksempelvis være:
|
||||||
|
|
||||||
|
```plantuml
|
||||||
|
@startuml
|
||||||
|
start
|
||||||
|
:HOTELDATA;
|
||||||
|
:Dataanalyse
|
||||||
|
* Datakvalitet
|
||||||
|
* Statistik
|
||||||
|
* Trends
|
||||||
|
* Visualisering;
|
||||||
|
:AI-eksperiment
|
||||||
|
* Modelvalg
|
||||||
|
* Prompting
|
||||||
|
* Fortolkning
|
||||||
|
* Prognose;
|
||||||
|
:Validering
|
||||||
|
AI-output vs. faktiske data;
|
||||||
|
:Beslutningsstøtte;
|
||||||
|
stop
|
||||||
|
@enduml
|
||||||
|
```
|
||||||
|
|
||||||
|
Det betyder, at det samme projekt kan skabe dokumentation til begge læringsmål.
|
||||||
|
|
||||||
|
### Fra AI-genereret kode til fagligt valideret resultat
|
||||||
|
|
||||||
|
Et konkret eksempel kan være, at jeg beder en AI-agent om at udvikle en analyse af hotelbelægningen. Agenten kan eksempelvis hjælpe med at:
|
||||||
|
|
||||||
|
1. Indlæse datasættet
|
||||||
|
2. Kontrollere manglende værdier
|
||||||
|
3. Beregne statistik
|
||||||
|
4. Gruppere data efter ugedag
|
||||||
|
5. Generere visualiseringer
|
||||||
|
6. Foreslå trends og mønstre
|
||||||
|
|
||||||
|
Her mødes de to læringsmål.
|
||||||
|
|
||||||
|
**AI-perspektivet** – jeg undersøger:
|
||||||
|
|
||||||
|
- Hvor godt AI løser opgaven
|
||||||
|
- Hvor meget jeg skal ændre AI's forslag
|
||||||
|
- Om forskellige modeller giver forskellige resultater
|
||||||
|
- Hvordan prompts påvirker resultatet
|
||||||
|
- Hvornår AI laver fejl
|
||||||
|
- Hvornår jeg selv skal overtage kontrollen
|
||||||
|
|
||||||
|
Dette passer med kravet om at eksperimentere med forskellige modeller og prompts samt dokumentere resultater, fejl og egne vurderinger.
|
||||||
|
|
||||||
|
**Dataanalyse-perspektivet** – jeg undersøger:
|
||||||
|
|
||||||
|
- Om data er korrekt behandlet
|
||||||
|
- Om beregningerne er korrekte
|
||||||
|
- Om visualiseringerne er relevante
|
||||||
|
- Om de identificerede trends faktisk findes
|
||||||
|
- Om konklusionerne kan understøttes af data
|
||||||
|
- Hvilke begrænsninger datasættet har
|
||||||
|
|
||||||
|
Det svarer til dataanalyse-læringsmålets fokus på at identificere mønstre, undersøge sammenhænge og vurdere, hvad data kan og ikke kan fortælle.
|
||||||
|
|
||||||
|
### Agentisk AI og de to læringsmål
|
||||||
|
|
||||||
|
Sammenfaldet bliver endnu tydeligere, når jeg anvender agentisk AI. En AI-agent kan eksempelvis arbejde gennem flere trin:
|
||||||
|
|
||||||
|
```plantuml
|
||||||
|
@startuml
|
||||||
|
start
|
||||||
|
:Problem;
|
||||||
|
:Undersøg data;
|
||||||
|
:Foreslå metode;
|
||||||
|
:Skriv kode;
|
||||||
|
:Kør analyse;
|
||||||
|
:Undersøg resultat;
|
||||||
|
:Foreslå forbedringer;
|
||||||
|
stop
|
||||||
|
@enduml
|
||||||
|
```
|
||||||
|
|
||||||
|
Det giver mig mulighed for at undersøge AI som en del af en mere komplet softwareudviklingsproces. Men agenten bliver ikke den faglige autoritet. Min rolle bliver i højere grad at:
|
||||||
|
|
||||||
|
**definere problemet → styre processen → kontrollere output → validere resultatet → træffe faglige valg**
|
||||||
|
|
||||||
|
Det passer godt med AI-læringsmålet, hvor jeg skal kunne evaluere AI-output og vurdere, hvornår menneskelig kontrol er nødvendig.
|
||||||
|
|
||||||
|
### Fra data til beslutningsstøtte
|
||||||
|
|
||||||
|
Det vigtigste sammenfald mellem læringsmålene er derfor ikke selve teknologien. Det er processen:
|
||||||
|
|
||||||
|
```plantuml
|
||||||
|
@startuml
|
||||||
|
start
|
||||||
|
:Problem;
|
||||||
|
:Data;
|
||||||
|
:Datakvalitet;
|
||||||
|
:Analyse;
|
||||||
|
:Trends og sammenhænge;
|
||||||
|
:AI-eksperiment;
|
||||||
|
:AI-fortolkning;
|
||||||
|
:Validering;
|
||||||
|
:Beslutningsstøtte;
|
||||||
|
stop
|
||||||
|
@enduml
|
||||||
|
```
|
||||||
|
|
||||||
|
Eksempelvis kan dataanalysen vise en historisk sammenhæng mellem events og hotelbelægning. Derefter kan AI bruges til at undersøge, om den kan identificere samme mønster og eventuelt hjælpe med at fortolke, hvilke faktorer der kan have påvirket efterspørgslen. Det er netop en del af AI-læringsmålet at undersøge mønstre, sammenhænge, eventeffekter og mulige forklaringer i hoteldata.
|
||||||
|
|
||||||
|
## 🔄 Kolbs læringscirkel i praksis
|
||||||
|
|
||||||
|
**1. Konkret erfaring**
|
||||||
|
|
||||||
|
Jeg arbejder praktisk med hoteldata og AI. Jeg bruger Python-biblioteker til at håndtere manglende data og forkerte datatyper – dette kan kombineres med AI. Et eksempel er, at jeg lader en AI-agent analysere belægningsdata: agenten indlæser datasættet, kontrollerer manglende værdier, beregner statistik, grupperer data efter ugedag, genererer visualiseringer og foreslår trends og mønstre.
|
||||||
|
|
||||||
|
**2. Refleksion**
|
||||||
|
|
||||||
|
- Hvad fungerede?
|
||||||
|
> De trin, hvor AI'en kunne følge en klar, veldefineret opgave – fx indlæsning af data og beregning af simple statistiske mål.
|
||||||
|
- Hvad fungerede ikke?
|
||||||
|
> Fortolkningen blev usikker, når AI'en skulle vurdere årsager bag mønstre uden at kende hotellets kontekst (fx events, lokale forhold) – her kunne resultatet ikke stå alene.
|
||||||
|
- Var AI'ens resultat korrekt?
|
||||||
|
> Kun delvist – nogle beregninger kunne verificeres direkte mod data, mens AI'ens fortolkninger af *hvorfor* et mønster opstod krævede min egen faglige kontrol, før jeg kunne stole på dem.
|
||||||
|
|
||||||
|
**3. Abstrakt begrebsliggørelse**
|
||||||
|
|
||||||
|
Jeg kobler erfaringerne til teori om eksempelvis:
|
||||||
|
|
||||||
|
- statistik
|
||||||
|
- datakvalitet
|
||||||
|
- visualisering
|
||||||
|
- LLM'er
|
||||||
|
- prompting
|
||||||
|
- Machine Learning
|
||||||
|
- modelvalg
|
||||||
|
- AI-evaluering
|
||||||
|
- usikkerhed
|
||||||
|
- human-in-the-loop
|
||||||
|
|
||||||
|
**4. Aktiv eksperimenteren**
|
||||||
|
|
||||||
|
Jeg ændrer eksempelvis datasættet, analysen, visualiseringen, prompten, AI-modellen eller metoden og gennemfører derefter et nyt eksperiment. Det giver en løbende proces:
|
||||||
|
|
||||||
|
**Eksperiment → refleksion → teori → forbedring → nyt eksperiment**
|
||||||
|
|
||||||
|
Den samme læringsstruktur findes i dataanalyse-læringsmålet, hvor processen beskrives som analyse → refleksion → teori → ny analyse.
|
||||||
|
|
||||||
|
## 🎯 Hvilke kernemål i læringsmål dækkes
|
||||||
|
|
||||||
|
🟢 dækkes helt, 🟡 dækkes delvist, 🔴 dækkes kun lidt eller slet ikke endnu.
|
||||||
|
|
||||||
|
### Dataanalyse og databehandling
|
||||||
|
|
||||||
|
| Kerneområde | Vægt i læringsmål | Dækning | Begrundelse |
|
||||||
|
|---|---|:---:|---|
|
||||||
|
| Dataindsamling | Stor | 🟡 | Hoteldatas relevante variable er identificeret (dato, ugedag, sæson, m.fl.), men datasættet er ikke indsamlet i denne post |
|
||||||
|
| Datastrukturering | Stor | 🟡 | Variablene til hoteldata er struktureret konceptuelt |
|
||||||
|
| Datakvalitet | Stor | 🟡 | Kontrol af manglende værdier indgår i den beskrevne AI-agent-proces, men er ikke udført konkret her |
|
||||||
|
| Datarensning | Stor | 🔴 | Ikke konkret udført i denne post |
|
||||||
|
| Dataanalyse | Stor | 🟡 | Statistik, trends og sammenhænge er planlagt og eksemplificeret (fx belægning i weekenden), men ikke gennemført på et faktisk datasæt |
|
||||||
|
| Statistik | Stor | 🟡 | Indgår i den beskrevne proces, men ikke udført konkret her |
|
||||||
|
| Deskriptiv statistik | Stor | 🟡 | Samme som ovenfor |
|
||||||
|
| Trends og mønstre | Stor | 🟡 | Eksemplificeret via weekend-belægning og events, men ikke udført konkret |
|
||||||
|
| Sammenhænge mellem variable | Stor | 🟡 | Pris/belægning og events/efterspørgsel bruges som eksempler |
|
||||||
|
| Datavisualisering | Stor | 🔴 | Nævnt som en del af processen, men ikke produceret i denne post |
|
||||||
|
| Fortolkning af resultater | Mindre | 🟡 | Central pointe: at vurdere, hvad data og AI's fortolkning af data kan og ikke kan understøtte |
|
||||||
|
| Formidling af data | Mindre | 🔴 | Denne post formidler en samlet proces, ikke konkrete dataresultater |
|
||||||
|
|
||||||
|
### AI i softwareprojekter
|
||||||
|
|
||||||
|
| Kerneområde | Vægt i læringsmål | Dækning | Begrundelse |
|
||||||
|
|---|---|:---:|---|
|
||||||
|
| Python for AI | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Machine Learning | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| AI til fortolkning af data | Stor | 🟡 | Centralt tema, men endnu ikke afprøvet konkret på et hoteldatasæt |
|
||||||
|
| Large Language Models (LLM) | Stor | 🔴 | Omtales generelt sammen med AI-agenter, men ikke undersøgt specifikt |
|
||||||
|
| Modelvalg og model comparison | Stor | 🟡 | Kriterier for sammenligning (kvalitet, hastighed, ressourceforbrug, privacy, anvendelighed) er opstillet, men endnu ikke anvendt på konkrete modeller |
|
||||||
|
| Prompt engineering | Stor | 🟡 | Prompting indgår som en del af eksperimentet, men er ikke konkret afprøvet i denne post |
|
||||||
|
| Generativ AI | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| AI-baseret beslutningsstøtte | Stor | 🟢 | Hele postens konklusion er netop, hvordan data + AI + validering fører til beslutningsstøtte |
|
||||||
|
| OCR | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Feature extraction | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Fortolkning af hoteldata | Mindre | 🟡 | Eksemplificeret via belægning/events, men ikke udført konkret |
|
||||||
|
| Test og evaluering af AI-output | Mindre | 🟡 | Central pointe: AI-output skal valideres mod faktiske data, men er ikke konkret testet her |
|
||||||
|
| Fejlhåndtering og usikkerhed | Mindre | 🔴 | Ikke behandlet konkret i denne post |
|
||||||
|
| Human-in-the-loop | Mindre | 🟢 | Eksplicit tema: min rolle er at definere problemet, styre processen, kontrollere output og træffe de faglige valg |
|
||||||
|
| Privacy og ansvarlig AI | Mindre | 🔴 | Kun nævnt som ét ud af flere sammenligningskriterier, ikke uddybet |
|
||||||
|
|
||||||
|
## 🏨 Hvilken værdi kan det give et hotel management-system?
|
||||||
|
|
||||||
|
Kombinationen af de to læringsmål kan give flere konkrete muligheder i et hotel management-system.
|
||||||
|
|
||||||
|
**Dataanalyse kan bruges til at forstå:**
|
||||||
|
|
||||||
|
- belægningsmønstre
|
||||||
|
- sæsonvariation
|
||||||
|
- forskelle mellem ugedage
|
||||||
|
- værelsestyper
|
||||||
|
- pris og belægning
|
||||||
|
- usædvanlige perioder
|
||||||
|
|
||||||
|
**AI kan derefter undersøges som støtte til:**
|
||||||
|
|
||||||
|
- fortolkning af hoteldata
|
||||||
|
- efterspørgselsprognoser
|
||||||
|
- analyse af events
|
||||||
|
- prisforslag
|
||||||
|
- rapportgenerering
|
||||||
|
- beslutningsstøtte
|
||||||
|
|
||||||
|
Men værdien ligger ikke kun i selve AI-outputtet. Den ligger i at kunne skabe en proces, hvor:
|
||||||
|
|
||||||
|
**Data analyseres → AI anvendes → resultatet kontrolleres → mennesket træffer beslutningen.**
|
||||||
|
|
||||||
|
Mine to læringsmål er forskellige, men de understøtter hinanden meget direkte. Dataanalyse og databehandling giver mig kompetencer til at indsamle, rense, analysere, visualisere og fortolke hoteldata. AI i softwareudvikling giver mig kompetencer til at undersøge, vælge, anvende og evaluere AI-teknologier i konkrete problemstillinger.
|
||||||
|
|
||||||
|
Hotelprojektet bliver derfor en fælles case, hvor de to læringsmål kan arbejde sammen. Det giver mig mulighed for både at undersøge *"kan AI hjælpe mig med at løse opgaven?"* og *"er resultatet korrekt, kan det dokumenteres ud fra data, og er det fagligt anvendeligt?"*
|
||||||
|
|
||||||
|
Det sidste er centralt. En AI-genereret analyse bliver ikke automatisk korrekt, bare fordi koden kan køres, eller resultatet ser overbevisende ud. Mit mål er derfor ikke blot at lære at bruge AI, men at lære at bruge AI med faglig kontrol. På den måde bliver de to læringsmål to sider af samme kompetence: at kunne anvende AI og dataanalyse til at udvikle datadrevne softwareløsninger, samtidig med at jeg kan forstå, kontrollere og evaluere resultaterne.
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
# Processen i at vælge – teknologivalg til labbet
|
||||||
|
|
||||||
|
**Dato:** 02/9 2026
|
||||||
|
**Læringsmål dækket:** [AI i softwareprojekter](../Læringsmål–AI_til_softwareløsninger.md) og [Dataanalyse og databehandling](../Læringsmål–Dataanalyse_og_databehandling.md)
|
||||||
|
|
||||||
|
Da jeg satte mit lab op (se [Mit lab – fra simpel opsætning til fejlfinding](2026-09-01_Mit_lab–fra_opsætning_til_fejlfinding.md)), var hver komponent et valg, jeg kan begrunde – og som havde alternativer, jeg bevidst fravalgte. Denne post dokumenterer selve valgprocessen: hvilke kriterier jeg vægtede, og hvilke alternativer jeg overvejede og fravalgte for hver komponent.
|
||||||
|
|
||||||
|
Mit udgangspunkt for at finde løsninger var, at de ikke måtte være ressourcekrævende, og at de gerne skulle være open source og self-hosted, så jeg holder mig til privacy by design. Jeg fandt kandidatløsninger via Google AI og tjekkede efterfølgende nogle af de kilder, som Google AI's svar byggede på, for at bekræfte ægtheden af informationen, før jeg lagde den til grund for et valg.
|
||||||
|
|
||||||
|
## 🧭 Processen i at vælge
|
||||||
|
|
||||||
|
| Komponent | Valgt fordi | Alternativ(er) overvejet |
|
||||||
|
|---|---|---|
|
||||||
|
| PostgreSQL som database | Understøtter avanceret data-integritet, JSONB til semistrukturerede data og har ekstremt høj ydeevne ved komplekse forespørgsler (queries) | MySQL/MariaDB – lettere at gå til, men mangler PostgreSQL's avancerede indeksering og stærke håndtering af komplekse datatyper. SQLite – god til helt små setups, men mangler concurrency (samtidige brugere) og skalering |
|
||||||
|
| Gitea som Git-server | Letvægtsløsning og privat by design | GitLab – enterprise-orienteret og mere ressourcekrævende |
|
||||||
|
| Nginx som reverse proxy | Ekstremt hurtig til statisk indhold, lavt hukommelsesaftryk, og simpel konfiguration af SSL (fx via Certbot), load balancing og URL-rewriting | Apache – traditionel og modulær, men bruger markant flere ressourcer (proces-per-forbindelse) under høj belastning |
|
||||||
|
| Mailserver til håndtering af e-mail | Samlet løsning i én container (fx docker-mailserver). Giver fuld kontrol over data, ingen eksterne licensomkostninger og nem opsætning af SMTP/IMAP i et lukket miljø | Eksterne API'er (SendGrid/Mailgun) – nemme at integrere, men medfører faste udgifter, vendor lock-in og potentielle GDPR-udfordringer med tredjepartsdata |
|
||||||
|
| Docker som grundlag for containerisering | Sikrer ensartede miljøer på tværs af udvikling og produktion ("virker på min maskine"-problemet løses). Gør udrulning, skalering og isolation af services lynhurtig | Bare-metal/direkte installation – minimalt overhead, men store problemer med afhængigheder, versionskonflikter og svær migrering |
|
||||||
|
|
||||||
|
## 🔄 Kolbs læringscirkel i praksis
|
||||||
|
|
||||||
|
**1. Konkret erfaring**
|
||||||
|
|
||||||
|
Inden jeg satte labbet op, stod jeg over for fem konkrete valg: database, Git-server, reverse proxy, mailløsning og containerisering. For hvert valg fandtes der mindst ét realistisk alternativ, og jeg måtte tage stilling til, hvilket der passede bedst til et lille, selvstændigt lab-miljø. Jeg brugte Google AI til at finde kandidatløsninger og fravalgte ikke bare at stole på svaret – jeg tjekkede nogle af de underliggende kilder for at bekræfte, at informationen var korrekt.
|
||||||
|
|
||||||
|
**2. Refleksion**
|
||||||
|
|
||||||
|
- Hvilke kriterier vægtede jeg højst?
|
||||||
|
> At løsningen ikke var ressourcekrævende, at den var open source og self-hosted (privacy by design), samt kontrol over egne data og hvor godt løsningen skalerer til fremtidige behov (fx JSONB til semistrukturerede hoteldata i PostgreSQL).
|
||||||
|
- Hvordan sikrede jeg mig, at informationen fra Google AI var pålidelig?
|
||||||
|
> Ved at tjekke nogle af de referencer, Google AI's svar var bygget på, i stedet for at stole blindt på et AI-genereret svar.
|
||||||
|
- Hvorfor fravalgte jeg de "nemmere" alternativer (MySQL/SQLite, eksterne mail-API'er)?
|
||||||
|
> Fordi de enten manglede funktionalitet, jeg forventer at få brug for (concurrency, avanceret indeksering), eller fordi de flyttede kontrollen over data ud af mit eget miljø (vendor lock-in, GDPR-risiko ved tredjepartsdata) og dermed væk fra mit udgangspunkt om privacy by design.
|
||||||
|
- Hvad var trade-off'et ved mine valg?
|
||||||
|
> Valget af Nginx og Gitea frem for tungere enterprise-løsninger som Apache og GitLab er baseret på en bevidst arkitektonisk afvejning (trade-off). I et mindre lab-miljø har prioriteringen ligget på ressourceoptimering, lav driftskompleksitet (Low Operational Overhead) og høj ydeevne.
|
||||||
|
- Hvad ville få mig til at vælge anderledes?
|
||||||
|
> Hvis labbet skulle skalere til mange samtidige brugere eller et team, ville GitLab og Apache blive mere attraktive – kriterierne ændrer sig med kravene.
|
||||||
|
|
||||||
|
**3. Abstrakt begrebsliggørelse**
|
||||||
|
|
||||||
|
Jeg kobler mine erfaringer til teori om blandt andet:
|
||||||
|
|
||||||
|
- databasearkitektur og ACID/indeksering
|
||||||
|
- reverse proxy-arkitektur og ressourceforbrug
|
||||||
|
- containerisering versus bare-metal
|
||||||
|
- vendor lock-in og GDPR ved tredjepartsdata
|
||||||
|
- kriteriebaseret teknologivalg og trade-off-analyse
|
||||||
|
|
||||||
|
Det er præcis den samme metode – kriterier, alternativer, begrundet valg – som mit AI-læringsmål kræver, når jeg senere skal sammenligne mindst 3 LLM'er/AI-modeller og begrunde mit valg. Her har jeg øvet metoden på infrastruktur, før jeg skal bruge den på AI-modeller.
|
||||||
|
|
||||||
|
**4. Aktiv eksperimenteren**
|
||||||
|
|
||||||
|
Næste gang jeg skal vælge en teknologi – uanset om det er en AI-model, et bibliotek eller en service – vil jeg bruge samme fremgangsmåde: opstille kriterier først, identificere realistiske alternativer, og eksplicit dokumentere, hvorfor de blev fravalgt.
|
||||||
|
|
||||||
|
## 🎯 Hvilke kernemål i læringsmål dækkes
|
||||||
|
|
||||||
|
🟢 dækkes helt, 🟡 dækkes delvist, 🔴 dækkes kun lidt eller slet ikke endnu.
|
||||||
|
|
||||||
|
### Dataanalyse og databehandling
|
||||||
|
|
||||||
|
| Kerneområde | Vægt i læringsmål | Dækning | Begrundelse |
|
||||||
|
|---|---|:---:|---|
|
||||||
|
| Dataindsamling | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Datastrukturering | Stor | 🟡 | PostgreSQL blev valgt bl.a. pga. JSONB til semistrukturerede data – en direkte overvejelse om datastrukturering |
|
||||||
|
| Datakvalitet | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Datarensning | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Dataanalyse | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Statistik | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Deskriptiv statistik | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Trends og mønstre | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Sammenhænge mellem variable | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Datavisualisering | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Fortolkning af resultater | Mindre | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Formidling af data | Mindre | 🔴 | Denne post formidler en valgproces, ikke data |
|
||||||
|
|
||||||
|
### AI i softwareprojekter
|
||||||
|
|
||||||
|
| Kerneområde | Vægt i læringsmål | Dækning | Begrundelse |
|
||||||
|
|---|---|:---:|---|
|
||||||
|
| Python for AI | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Machine Learning | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| AI til fortolkning af data | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Large Language Models (LLM) | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Modelvalg og model comparison | Stor | 🟡 | Samme kriterie- og alternativ-baserede metode er øvet her på infrastruktur, klar til at genbruges på LLM-valg |
|
||||||
|
| Prompt engineering | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Generativ AI | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| AI-baseret beslutningsstøtte | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| OCR | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Feature extraction | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Fortolkning af hoteldata | Mindre | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Test og evaluering af AI-output | Mindre | 🟡 | Jeg brugte Google AI til research, men tjekkede efterfølgende nogle af dens kildehenvisninger for at bekræfte ægtheden – en tidlig øvelse i kritisk evaluering af AI-output |
|
||||||
|
| Fejlhåndtering og usikkerhed | Mindre | 🔴 | Dækket i den forrige post, ikke denne |
|
||||||
|
| Human-in-the-loop | Mindre | 🟡 | Jeg lod ikke Google AI's svar stå uimodsagt, men verificerede det selv, før jeg brugte det til et valg |
|
||||||
|
| Privacy og ansvarlig AI | Mindre | 🟡 | "Privacy by design" (open source, self-hosted) var et eksplicit kriterie fra start, og GDPR-risikoen ved eksterne mail-API'er blev vurderet ud fra det |
|
||||||
|
|
||||||
|
## 🏨 Hvilken værdi kan det give et hotel management-system?
|
||||||
|
|
||||||
|
Bevidste teknologivalg er ikke kun en teknisk detalje – de sætter rammerne for, hvad et hotel management-system kan holde til senere.
|
||||||
|
|
||||||
|
- **Data-integritet og performance:**
|
||||||
|
> PostgreSQL's håndtering af semistrukturerede data og komplekse forespørgsler betyder, at systemet kan holde til mere avancerede analyser af booking- og belægningsdata, efterhånden som de vokser.
|
||||||
|
- **Kontrol over følsomme data:**
|
||||||
|
> At vælge en selvhostet mailserver og database frem for eksterne API'er giver fuld kontrol over gæstedata og bookingoplysninger – relevant for GDPR, og direkte relevant for OCR-projektet, hvor pasoplysninger (pasnummer, navn, nationalitet) er særligt følsomme data, der bør blive i eget miljø.
|
||||||
|
- **Skalerbarhed:**
|
||||||
|
> Docker og en let reverse proxy som Nginx gør det muligt at skalere systemet op i højsæson uden at skifte hele arkitekturen ud.
|
||||||
|
- **Undgå vendor lock-in:**
|
||||||
|
> Ved at fravælge tredjepartsservices til kernefunktioner (mail, database) undgår systemet at blive afhængigt af en enkelt leverandørs priser og vilkår.
|
||||||
|
|
||||||
|
Samlet set betyder det, at de valg, jeg har truffet i labbet, ikke kun handler om at få tingene til at virke – de er også en del af at bygge et fundament, der kan bære et rigtigt hotel management-system.
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
# Processen i at vælge – IDE til lokal AI
|
||||||
|
|
||||||
|
**Dato:** 18/9 2026
|
||||||
|
**Læringsmål dækket:** [AI i softwareprojekter](../Læringsmål–AI_til_softwareløsninger.md) og [Dataanalyse og databehandling](../Læringsmål–Dataanalyse_og_databehandling.md)
|
||||||
|
|
||||||
|
Jeg blev introduceret til Microsoft Visual Studio på uddannelsen, og det har dannet rammen om mit arbejde de første 3 semestre. Da jeg begyndte at arbejde med lokal AI, opstod der imidlertid et problem, som fik mig til at lede efter et alternativ. Denne post dokumenterer den valgproces.
|
||||||
|
|
||||||
|
## 🧭 Processen i at vælge
|
||||||
|
|
||||||
|
| Værktøj | Rolle | Valgt/beholdt fordi | Alternativ(er) overvejet |
|
||||||
|
|---|---|---|---|
|
||||||
|
| Visual Studio | IDE til C#-udvikling og debugging | Har en god debugger til C#, som Zed stadig mangler | – |
|
||||||
|
| Zed | Ny IDE til arbejde med lokal AI | Understøtter lokal AI som plugin, håndterer de fleste programmeringssprog, og er hurtigere og mindre ressourcekrævende end Visual Studio | Eclipse og andre IDE'er – kendt fra erfaring til at være langsomme og ressourcekrævende; blev ikke testet nærmere for lokal AI-understøttelse, da Zed allerede løste behovet |
|
||||||
|
|
||||||
|
Konklusionen blev ikke at skrotte Visual Studio til fordel for Zed, men at lade de to værktøjer supplere hinanden.
|
||||||
|
|
||||||
|
## 🔄 Kolbs læringscirkel i praksis
|
||||||
|
|
||||||
|
**1. Konkret erfaring**
|
||||||
|
|
||||||
|
Da jeg begyndte at arbejde med lokal AI, virkede det ikke som plugin i Visual Studio. Det betød, at jeg måtte lede efter et alternativ, der kunne det, Visual Studio ikke kunne.
|
||||||
|
|
||||||
|
**2. Refleksion**
|
||||||
|
|
||||||
|
- Hvad virkede ikke?
|
||||||
|
> Lokal AI kunne ikke køre som plugin i Visual Studio.
|
||||||
|
- Hvilke alternativer overvejede jeg, og hvorfor testede jeg dem ikke nærmere?
|
||||||
|
> Jeg kender Eclipse og andre IDE'er fra erfaring og ved, at de er langsomme og ressourcekrævende – derfor undersøgte jeg ikke, om de kunne køre lokal AI, og gik direkte videre til at søge efter et andet alternativ.
|
||||||
|
- Hvordan fandt jeg frem til Zed?
|
||||||
|
> Ved at søge på nettet efter en IDE, der kunne understøtte lokal AI, faldt jeg over Zed, som håndterer de fleste programmeringssprog og understøtter lokal AI.
|
||||||
|
- Hvilke kriterier vægtede jeg højst?
|
||||||
|
> Understøttelse af lokal AI, ressourceforbrug og hastighed – Zed bruger færre ressourcer og er hurtigere end Visual Studio.
|
||||||
|
- Var jeg klar til at skrotte Visual Studio helt?
|
||||||
|
> Nej. Visual Studio har en god debugger til C#, som Zed stadig mangler, så de to værktøjer skal supplere hinanden i stedet for at erstatte hinanden.
|
||||||
|
|
||||||
|
**3. Abstrakt begrebsliggørelse**
|
||||||
|
|
||||||
|
Jeg kobler erfaringen til teori om blandt andet:
|
||||||
|
|
||||||
|
- IDE-arkitektur og plugin-økosystemer
|
||||||
|
- ressourceforbrug og performance i udviklingsværktøjer
|
||||||
|
- lokal AI versus cloud-baseret AI
|
||||||
|
- kriteriebaseret værktøjsvalg og trade-off-analyse
|
||||||
|
- privacy ved at køre AI lokalt frem for via eksterne tjenester
|
||||||
|
|
||||||
|
**4. Aktiv eksperimenteren**
|
||||||
|
|
||||||
|
Jeg bruger nu Zed til arbejde, hvor lokal AI er en fordel, og Visual Studio til C#-udvikling, hvor debuggeren er nødvendig. Næste skridt er at holde øje med, om Zed's værktøjsstøtte (fx debugging) udvikler sig, så fordelingen mellem de to værktøjer kan justeres. Det er den samme kriterie-baserede metode – kriterier, alternativer, begrundet valg – som jeg tidligere har brugt til at vælge infrastruktur til mit lab, og som jeg senere skal bruge til at vælge AI-modeller/LLM'er.
|
||||||
|
|
||||||
|
## 🎯 Hvilke kernemål i læringsmål dækkes
|
||||||
|
|
||||||
|
🟢 dækkes helt, 🟡 dækkes delvist, 🔴 dækkes kun lidt eller slet ikke endnu.
|
||||||
|
|
||||||
|
### Dataanalyse og databehandling
|
||||||
|
|
||||||
|
| Kerneområde | Vægt i læringsmål | Dækning | Begrundelse |
|
||||||
|
|---|---|:---:|---|
|
||||||
|
| Dataindsamling | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Datastrukturering | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Datakvalitet | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Datarensning | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Dataanalyse | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Statistik | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Deskriptiv statistik | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Trends og mønstre | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Sammenhænge mellem variable | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Datavisualisering | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Fortolkning af resultater | Mindre | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Formidling af data | Mindre | 🔴 | Ikke relevant for denne post |
|
||||||
|
|
||||||
|
### AI i softwareprojekter
|
||||||
|
|
||||||
|
| Kerneområde | Vægt i læringsmål | Dækning | Begrundelse |
|
||||||
|
|---|---|:---:|---|
|
||||||
|
| Python for AI | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Machine Learning | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| AI til fortolkning af data | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Large Language Models (LLM) | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Modelvalg og model comparison | Stor | 🟡 | Samme kriterie- og alternativ-baserede metode er øvet her på et udviklingsværktøj, klar til at genbruges på LLM-valg |
|
||||||
|
| Prompt engineering | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Generativ AI | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| AI-baseret beslutningsstøtte | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| OCR | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Feature extraction | Stor | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Fortolkning af hoteldata | Mindre | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Test og evaluering af AI-output | Mindre | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Fejlhåndtering og usikkerhed | Mindre | 🟡 | At opdage at lokal AI ikke virkede som plugin i Visual Studio, og derefter systematisk lede efter et alternativ, er en mindre form for fejlhåndtering |
|
||||||
|
| Human-in-the-loop | Mindre | 🔴 | Ikke relevant for denne post |
|
||||||
|
| Privacy og ansvarlig AI | Mindre | 🟡 | At vælge lokal AI frem for en cloud-baseret løsning er et bevidst valg om at holde AI-arbejdet og data lokalt |
|
||||||
|
|
||||||
|
## 🏨 Hvilken værdi kan det give et hotel management-system?
|
||||||
|
|
||||||
|
Valget af udviklingsværktøjer er ikke kun et spørgsmål om personlig præference – det påvirker, hvor effektivt og sikkert et hotel management-system kan udvikles.
|
||||||
|
|
||||||
|
- **Lokal AI under udvikling:** Ved at kunne køre AI lokalt i udviklingsmiljøet kan jeg eksperimentere med AI-funktioner, uden at kode eller testdata (fx uddrag af hoteldata) nødvendigvis skal sendes til en ekstern tjeneste undervejs – det understøtter samme privacy-tankegang, som lå bag valget af selvhostet database og mailserver i labbet.
|
||||||
|
- **Effektivitet:** Et hurtigere og mindre ressourcekrævende værktøj som Zed betyder mere tid til faktisk udvikling og mindre tid brugt på at vente på værktøjet.
|
||||||
|
- **Pålidelighed i kernesystemet:** Ved at beholde Visual Studios stærke C#-debugger til den del af systemet, hvor det betyder mest (fx kernelogik i et hotel management-system), reduceres risikoen for udokumenterede fejl i produktionskoden.
|
||||||
|
|
||||||
|
Samlet set viser valget, at det rigtige værktøj afhænger af opgaven – og at det er en fordel at kunne skifte mellem eller kombinere flere værktøjer, i stedet for at insistere på ét værktøj til alt.
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
# Projektplan – uge for uge
|
||||||
|
|
||||||
|
**Periode:** onsdag 26. august 2026 – søndag 6. december 2026 (15 uger, milestone hver uge)
|
||||||
|
**Kerneområder i projektet (samlet over begge læringsmål):**
|
||||||
|
|
||||||
|
| Kerneområde | Vægt | Dækkes primært af |
|
||||||
|
|---|---|---|
|
||||||
|
| AI & Machine Learning | Stor | Læringsmål 1 |
|
||||||
|
| Dataanalyse & databehandling | Stor | Læringsmål 2 |
|
||||||
|
| Programmering / softwareudvikling | Mindre | Begge (Python, NF Hotel-integration, OCR-kode) |
|
||||||
|
| Formidling & dokumentation | Mindre | Begge (portfolio, rapportering, beslutningsstøtte) |
|
||||||
|
|
||||||
|
→ Opfylder kravet om mindst 3 kerneområder, heraf 2 i større grad og 1-2 i mindre grad.
|
||||||
|
|
||||||
|
## Ugentlig timefordeling (40 t/uge, gælder alle 15 uger)
|
||||||
|
|
||||||
|
| Aktivitet | Timer/uge | Formål |
|
||||||
|
|---|---|---|
|
||||||
|
| Programmering i projekter | 8 t | Kode: LLM-integration, prompt-eksperimenter, OCR/ML, databehandlingsscripts, NF Hotel-integration |
|
||||||
|
| Vejledning af lektorer | 2 t | Statusfremlæggelse og feedback på ugens milestone |
|
||||||
|
| Team møde | 4 t | Koordinering, deling af fund mellem AI-spor og data-spor |
|
||||||
|
| Læring (Kolb) og portfolio | 26 t | Kursus (100 Days of Code uge 1-3, Python-for-AI fra uge 4), refleksion, teori, dokumentation af portfolio |
|
||||||
|
|
||||||
|
Planen justeres løbende efter vejledning og efter hvilken ny viden/færdighed et givet milestone viser er nødvendig — datoerne herunder er derfor et styringsredskab, ikke en spændetrøje.
|
||||||
|
|
||||||
|
## Fælles 15-ugers milestone-plan
|
||||||
|
|
||||||
|
Begge læringsmål køres parallelt. Hver uge har ét primært fokus, men de 40 timer fordeles stadig efter tabellen ovenfor hver uge.
|
||||||
|
|
||||||
|
| Uge | Dato | Fælles / kursus | Læringsmål 1 – AI/OCR | Læringsmål 2 – Dataanalyse |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| 1 | 26/8 | **Projektanalyse:** analysér projektet, find værdiskabende opgaver fra PO og prioritér dem. Genopfrisk Python med *100 Days of Code™: The Complete Python Pro Bootcamp* (dækker også Pandas og Matplotlib) | Identificér mindst 3 kandidat-LLM'er (ud fra prioriterede PO-opgaver) | Find/opret historisk hoteldatasæt, dokumentér variable og kilde |
|
||||||
|
| 2 | 2/9 | Fortsæt projektanalyse og prioritering af PO-opgaver. Fortsæt 100 Days of Code | Afprøv de 3 LLM'er på en mindre mængde hoteldata | **M1 (Data):** identificér mindst 3 datakvalitetsproblemer |
|
||||||
|
| 3 | 9/9 | Afslut/konsolidér 100 Days of Code | **M1 (AI):** sammenlign kvalitet/hastighed/pris/privacy, vælg model(ler) | Fortsæt datarensning baseret på uge 2's fund |
|
||||||
|
| 4 | 16/9 | **Opstart Python-for-AI-kursus** (Udemy) | Design 3 forskellige promptstrategier | **M2 (Data):** beregn gennemsnit, median, min/maks; 2 første visualiseringer |
|
||||||
|
| 5 | 23/9 | | **M2 (AI) start:** kør første systematiske prompt-eksperimenter på hoteldata | Uddyb statistik: kvartiler, standardafvigelse (mod 4 mål i alt) |
|
||||||
|
| 6 | 30/9 | | Sammenlign prompt-resultater, identificér mønstre/sammenhænge | **M3 (Data):** identificér mindst 3 foreløbige trends/mønstre |
|
||||||
|
| 7 | 7/10 | | Identificér mulige årsager til ændringer i efterspørgsel | Understøt trends med beregninger/visualisering nr. 3 |
|
||||||
|
| 8 | 14/10 | | **M2 (AI) afslut:** AI-baserede konklusioner om marketingforbedringer | Midtvejsrefleksion (Kolb) på tværs af begge spor |
|
||||||
|
| 9 | 21/10 | | Forbered integration: definér snitflade til NF Hotel | **M4 (Data):** udvid til 5 identificerede trends/mønstre, visualisering nr. 4 |
|
||||||
|
| 10 | 28/10 | | **M3 (AI):** implementér AI-fortolkning i NF Hotel | Kvalitetssikring af visualiseringer og beregninger |
|
||||||
|
| 11 | 4/11 | | **M4 (AI) start:** afprøv OCR/ML-teknologi på pasbilleder | **M5 (Data):** samlet fortolkning – hvad data kan/ikke kan fortælle |
|
||||||
|
| 12 | 11/11 | | Test OCR/ML-nøjagtighed på flere testbilleder | Beskriv analysens begrænsninger |
|
||||||
|
| 13 | 18/11 | | **M4 (AI) afslut:** min. 10 dokumenterede testcases på tværs af AI-funktioner | Sidste kvalitetstjek af portfolio-materiale |
|
||||||
|
| 14 | 25/11 | | Færdiggør dokumentation og tekniske valg | **M6 (Data):** samlet konklusion på analysen |
|
||||||
|
| 15 | 2/12–6/12 | | **Aflevering:** SMART-tjek, samlet konklusion, portfolio | **Aflevering:** SMART-tjek, samlet konklusion, portfolio |
|
||||||
|
|
||||||
|
Se de to læringsmåls egne dokumenter for detaljerede succeskriterier bag hvert milestone:
|
||||||
|
- [Læringsmål – AI til hotelbelægning og prisforudsigelse.md](Læringsmål%20–%20AI%20til%20hotelbelægning%20og%20prisforudsigelse.md)
|
||||||
|
- [Læringsmål – Dataanalyse og databehandling.md](Læringsmål%20–%20Dataanalyse%20og%20databehandling.md)
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.8 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.8 MiB |
Reference in New Issue
Block a user