chore(i18n): sync translations with latest source changes (chunk 1/1, 9 changes)

pull/1781/head
localizeflow[bot] 5 months ago
parent e6e8dbfb67
commit 565672462b

@ -493,7 +493,7 @@
}, },
"AGENTS.md": { "AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34", "original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-03-27T18:53:21+00:00", "translation_date": "2026-04-06T18:13:56+00:00",
"source_file": "AGENTS.md", "source_file": "AGENTS.md",
"language_code": "da" "language_code": "da"
}, },
@ -516,8 +516,8 @@
"language_code": "da" "language_code": "da"
}, },
"README.md": { "README.md": {
"original_hash": "a2c9eed480687319517c08a6319e5536", "original_hash": "b885c87c7544109b78d6684daad6cba6",
"translation_date": "2026-03-06T18:12:27+00:00", "translation_date": "2026-04-06T18:09:00+00:00",
"source_file": "README.md", "source_file": "README.md",
"language_code": "da" "language_code": "da"
}, },

@ -2,14 +2,14 @@
## Projektoversigt ## Projektoversigt
Dette er et uddannelsesmæssigt kursuslager for undervisning i grundlæggende webudvikling for begyndere. Læreplanen er et omfattende 12-ugers kursus udviklet af Microsoft Cloud Advocates, der indeholder 24 praktiske lektioner om JavaScript, CSS og HTML. Dette er et uddannelses-kursuslager til undervisning i grundlæggende webudvikling for begyndere. Pensum er et omfattende 12-ugers kursus udviklet af Microsoft Cloud Advocates, med 24 praktiske lektioner, der dækker JavaScript, CSS og HTML.
### Centrale komponenter ### Vigtige komponenter
- **Uddannelsesindhold**: 24 strukturerede lektioner organiseret i projektbaserede moduler - **Læremateriale**: 24 strukturerede lektioner organiseret i projektbaserede moduler
- **Praktiske projekter**: Terrarium, Typing Game, Browser Extension, Space Game, Banking App, Code Editor og AI Chat Assistant - **Praktiske projekter**: Terrarium, Typing Game, Browser Extension, Space Game, Banking App, Code Editor og AI Chat Assistant
- **Interaktive quizzer**: 48 quizzer med 3 spørgsmål hver (før/efter-lektion vurderinger) - **Interaktive quizzer**: 48 quizzer med 3 spørgsmål hver (før/efter lektion evalueringer)
- **Multisprogunderstøttelse**: Automatiserede oversættelser til 50+ sprog via GitHub Actions - **Flersproget support**: Automatiske oversættelser til 50+ sprog via GitHub Actions
- **Teknologier**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (til AI-projekter) - **Teknologier**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (til AI-projekter)
### Arkitektur ### Arkitektur
@ -18,11 +18,11 @@ Dette er et uddannelsesmæssigt kursuslager for undervisning i grundlæggende we
- Hver lektionsmappe indeholder README, kodeeksempler og løsninger - Hver lektionsmappe indeholder README, kodeeksempler og løsninger
- Selvstændige projekter i separate mapper (quiz-app, forskellige lektionsprojekter) - Selvstændige projekter i separate mapper (quiz-app, forskellige lektionsprojekter)
- Oversættelsessystem ved brug af GitHub Actions (co-op-translator) - Oversættelsessystem ved brug af GitHub Actions (co-op-translator)
- Dokumentation serveret via Docsify og tilgængelig som PDF - Dokumentation leveres via Docsify og er tilgængelig som PDF
## Opsætningskommandoer ## Opsætningskommandoer
Dette lager er primært til forbrug af uddannelsesindhold. For arbejde med specifikke projekter: Dette lager er primært til forbrug af uddannelsesindhold. For at arbejde med specifikke projekter:
### Hovedlageropsætning ### Hovedlageropsætning
@ -48,7 +48,7 @@ cd 7-bank-project/api
npm install npm install
npm start # Start API-server npm start # Start API-server
npm run lint # Kør ESLint npm run lint # Kør ESLint
npm run format # Formater med Prettier npm run format # Formatér med Prettier
``` ```
### Browser Extension Projekter ### Browser Extension Projekter
@ -56,7 +56,7 @@ npm run format # Formater med Prettier
```bash ```bash
cd 5-browser-extension/solution cd 5-browser-extension/solution
npm install npm install
# Følg browser-specifikke instruktioner til indlæsning af udvidelser # Følg browser-specifikke udvidelsesindlæsningsinstruktioner
``` ```
### Space Game Projekter ### Space Game Projekter
@ -72,32 +72,32 @@ npm install
```bash ```bash
cd 9-chat-project/solution/backend/python cd 9-chat-project/solution/backend/python
pip install openai pip install openai
# Sæt miljøvariablen GITHUB_TOKEN # Indstil GITHUB_TOKEN miljøvariabel
python api.py python api.py
``` ```
## Udviklingsworkflow ## Udviklingsarbejdsgang
### For indholds bidragydere ### For indholdsbidragsydere
1. **Fork lageret** til din GitHub-konto 1. **Fork lageret** til din GitHub-konto
2. **Klon din fork** lokalt 2. **Klon din fork** lokalt
3. **Opret en ny gren** til dine ændringer 3. **Opret en ny gren** til dine ændringer
4. Foretag ændringer i lektionens indhold eller kodeeksempler 4. Foretag ændringer i lektionsindhold eller kodeeksempler
5. Test eventuelle kodeændringer i relevante projektmapper 5. Test eventuelle kodeændringer i relevante projektmapper
6. Indsend pull requests i henhold til bidragsretningslinjer 6. Indsend pull requests i henhold til bidragsretningslinjer
### For elever ### For elever
1. Fork eller klon lageret 1. Fork eller klon lageret
2. Naviger sekventielt til lektionsmapper 2. Naviger sekventielt til lektionsmapperne
3. Læs README-filer for hver lektion 3. Læs README-filer for hver lektion
4. Fuldfør før-lektion quizzer på https://ff-quizzes.netlify.app/web/ 4. Fuldfør præ-lektionsquizzer på https://ff-quizzes.netlify.app/web/
5. Arbejd igennem kodeeksempler i lektionsmapper 5. Arbejd med kodeeksempler i lektionsmapperne
6. Fuldfør opgaver og udfordringer 6. Udfør opgaver og udfordringer
7. Tag post-lesson quizzer 7. Tag post-lektionsquizzer
### Live udvikling ### Live udvilkling
- **Dokumentation**: Kør `docsify serve` i rodmappen (port 3000) - **Dokumentation**: Kør `docsify serve` i rodmappen (port 3000)
- **Quiz App**: Kør `npm run dev` i quiz-app mappen - **Quiz App**: Kør `npm run dev` i quiz-app mappen
@ -110,8 +110,8 @@ python api.py
```bash ```bash
cd quiz-app cd quiz-app
npm run lint # Tjek for problemer med kodestil npm run lint # Tjek for kode stilproblemer
npm run build # Bekræft, at build lykkes npm run build # Bekræft at build lykkes
``` ```
### Bank API Test ### Bank API Test
@ -119,73 +119,73 @@ npm run build # Bekræft, at build lykkes
```bash ```bash
cd 7-bank-project/api cd 7-bank-project/api
npm run lint # Tjek for kode stil problemer npm run lint # Tjek for kode stil problemer
node server.js # Bekræft at serveren starter uden fejl node server.js # Bekræft at server starter uden fejl
``` ```
### Generel testtilgang ### Generel testtilgang
- Dette er et uddannelseslager uden omfattende automatiske tests - Dette er et uddannelseslager uden omfattende automatiserede tests
- Manuel test fokuserer på: - Manuel test fokuserer på:
- Kodeeksempler kører uden fejl - Kodeeksempler kører uden fejl
- Links i dokumentationen fungerer korrekt - Links i dokumentationen fungerer korrekt
- Projekt builds gennemføres uden problemer - Projekter bygger færdigt succesfuldt
- Eksempler følger bedste praksis - Eksempler følger bedste praksis
### Forud for indsendelse tjek ### Kontroller før indsendelse
- Kør `npm run lint` i mapper med package.json - Kør `npm run lint` i mapper med package.json
- Verificer at markdown links er gyldige - Bekræft at markdown-links er gyldige
- Test kodeeksempler i browser eller Node.js - Test kodeeksempler i browser eller Node.js
- Kontroller at oversættelser bevarer korrekt struktur - Tjek at oversættelser bevarer korrekt struktur
## Kodestil retningslinjer ## Kode-stil retningslinjer
### JavaScript ### JavaScript
- Brug moderne ES6+ syntax - Brug moderne ES6+ syntaks
- Følg standard ESLint konfigurationer leveret i projekter - Følg standard ESLint-konfigurationer leveret i projekterne
- Brug meningsfulde variabel- og funktionsnavne for pædagogisk klarhed - Brug meningsfulde variabel- og funktionsnavne for bedre læring
- Tilføj kommentarer der forklarer koncepter for elever - Tilføj kommentarer, der forklarer koncepter for elever
- Formater ved hjælp af Prettier hvor konfigureret - Formater med Prettier hvor konfigureret
### HTML/CSS ### HTML/CSS
- Semantiske HTML5 elementer - Semantiske HTML5-elementer
- Responsivt design principper - Responsivt design principper
- Klare navngivningskonventioner for klasser - Klare klassenavnekonventioner
- Kommentarer der forklarer CSS teknikker for elever - Kommentarer, der forklarer CSS-teknikker for elever
### Python ### Python
- PEP 8 stilretningslinjer - PEP 8 stilretningslinjer
- Klare, pædagogiske kodeeksempler - Klare, uddannelsesmæssige kodeeksempler
- Typeangivelser hvor det er hjælpsomt for læring - Type hints hvor det hjælper læring
### Markdown dokumentation ### Markdown dokumentation
- Klar overskriftsstruktur - Klar overskriftshierarki
- Kodeblokke med sprogspecifikation - Kodeblokke med sprogangivelse
- Links til yderligere ressourcer - Links til yderligere ressourcer
- Skærmbilleder og billeder i `images/` mapper - Skærmbilleder og billeder i `images/` mapper
- Alt-tekster til billeder for tilgængelighed - Alt-tekst til billeder for tilgængelighed
### Filorganisation ### Filorganisation
- Lektioner nummereres sekventielt (1-getting-started-lessons, 2-js-basics osv.) - Lektioner nummereret sekventielt (1-getting-started-lessons, 2-js-basics, osv.)
- Hvert projekt har `solution/` og ofte `start/` eller `your-work/` mapper - Hvert projekt har `solution/` og ofte `start/` eller `your-work/` mapper
- Billeder gemt i lektionsspecifikke `images/` mapper - Billeder gemt i lektionsspecifikke `images/` mapper
- Oversættelser i `translations/{language-code}/` struktur - Oversættelser i `translations/{language-code}/` struktur
## Build og deployment ## Bygning og udrulning
### Quiz App Deployment (Azure Static Web Apps) ### Quiz App udrulning (Azure Static Web Apps)
quiz-app er konfigureret til Azure Static Web Apps deployment: quiz-app er konfigureret til Azure Static Web Apps udrulning:
```bash ```bash
cd quiz-app cd quiz-app
npm run build # Opretter dist/ mappe npm run build # Opretter dist/ mappe
# Udrulning via GitHub Actions workflow ved push til main # Udruller via GitHub Actions workflow ved push til main
``` ```
Azure Static Web Apps konfiguration: Azure Static Web Apps konfiguration:
@ -204,26 +204,26 @@ npm run convert # Generer PDF fra docs
```bash ```bash
npm install -g docsify-cli # Installer Docsify globalt npm install -g docsify-cli # Installer Docsify globalt
docsify serve # Server på localhost:3000 docsify serve # r på localhost:3000
``` ```
### Projekt-specifikke builds ### Projekt-specifikke builds
Hver projektmappe kan have sin egen build-proces: Hver projektmappe kan have sin egen byggeproces:
- Vue projekter: `npm run build` skaber produktionsbundles - Vue projekter: `npm run build` skaber produktionspakker
- Static projekter: Ingen build-trin, server filer direkte - Statisk projekter: Ingen byggeproces, server filer direkte
## Pull Request retningslinjer ## Pull Request retningslinjer
### Titel format ### Titel format
Brug klare, beskrivende titler der angiver ændringsområde: Brug klare, beskrivende titler, der angiver område for ændring:
- `[Quiz-app] Tilføj ny quiz til lektion X` - `[Quiz-app] Tilføj ny quiz til lektion X`
- `[Lesson-3] Ret stavefejl i terrarium projekt` - `[Lesson-3] Ret stavefejl i terrarium projekt`
- `[Translation] Tilføj spansk oversættelse til lektion 5` - `[Translation] Tilføj spansk oversættelse til lektion 5`
- `[Docs] Opdater opsætningsinstruktioner` - `[Docs] Opdater opsætningsinstruktioner`
### Krævede tjek ### Påkrævede kontroller
Før indsendelse af PR: Før indsendelse af PR:
@ -233,45 +233,45 @@ Før indsendelse af PR:
2. **Build verifikation**: 2. **Build verifikation**:
- Kør `npm run build` hvis relevant - Kør `npm run build` hvis relevant
- Sørg for ingen build fejl - Sikre ingen build fejl
3. **Link validering**: 3. **Link validering**:
- Test alle markdown links - Test alle markdown links
- Bekræft billedehenvisninger virker - Bekræft at billedreferencer virker
4. **Indholdsgennemgang**: 4. **Indholdsrevision**:
- Korrekturlæs for stave- og grammatikefejl - Korrekturlæs for stave- og grammatikfejl
- Sørg for kodeeksempler er korrekte og pædagogiske - Sikre kodeeksempler er korrekte og pædagogiske
- Verificer at oversættelser bevarer oprindelig betydning - Bekræft oversættelser bevarer oprindelig mening
### Bidragskrav ### Bidragskrav
- Accepter Microsoft CLA (automatisk tjek ved første PR) - Accepter Microsoft CLA (automatisk tjek ved første PR)
- Følg [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) - Følg [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Se [CONTRIBUTING.md](./CONTRIBUTING.md) for detaljerede retningslinjer - Se [CONTRIBUTING.md](./CONTRIBUTING.md) for detaljerede retningslinjer
- Referér issues i PR beskrivelsen hvis relevant - Referer til issues i PR-beskrivelsen hvis relevant
### Gennemgangsproces ### Gennemgangsproces
- PRer gennemgås af vedligeholdere og fællesskab - PRer gennemgås af vedligeholdere og fællesskab
- Pædagogisk klarhed prioriteres - Pædagogisk tydelighed prioriteres
- Kodeeksempler bør følge aktuelle bedste praksisser - Kodeeksempler bør følge aktuelle bedste praksis
- Oversættelser vurderes for nøjagtighed og kulturel relevans - Oversættelser gennemgås for nøjagtighed og kulturel tilpasning
## Oversættelsessystem ## Oversættelsessystem
### Automatisk oversættelse ### Automatisk oversættelse
- Bruger GitHub Actions med co-op-translator workflow - Bruger GitHub Actions med co-op-translator workflow
- Oversætter automatisk til over 50 sprog - Oversætter til 50+ sprog automatisk
- Kildefiler i hovedmapper - Kildefiler i hovedmapper
- Oversatte filer i `translations/{language-code}/` mapper - Oversatte filer i `translations/{language-code}/` mapper
### Tilføjelse af manuelle oversættelsesforbedringer ### Tilføjelse af manuelle oversættelsesforbedringer
1. Find fil i `translations/{language-code}/` 1. Find fil i `translations/{language-code}/`
2. Foretag forbedringer mens strukturen bevares 2. Lav forbedringer mens struktur bevares
3. Sørg for at kodeeksempler forbliver funktionelle 3. Sikr at kodeeksempler forbliver funktionelle
4. Test eventuelt lokaliseret quizindhold 4. Test eventuelt lokaliseret quizindhold
### Oversættelsesmetadata ### Oversættelsesmetadata
@ -289,89 +289,89 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
``` ```
## Debugging og fejlfinding ## Fejlfinding og problemløsning
### Almindelige problemer ### Almindelige problemer
**Quiz app starter ikke**: **Quiz app starter ikke**:
- Tjek Node.js version (v14+ anbefalet) - Tjek Node.js version (v14+ anbefalet)
- Slet `node_modules` og `package-lock.json`, kør `npm install` igen - Slet `node_modules` og `package-lock.json`, kør `npm install` igen
- Tjek for portkonflikter (standard: Vite bruger port 5173) - Tjek for porte i konflikt (standard: Vite bruger port 5173)
**API server starter ikke**: **API server starter ikke**:
- Bekræft at Node.js version opfylder minimum (node >=10) - Bekræft Node.js version minimum (node >=10)
- Tjek om port allerede er i brug - Tjek om port allerede er i brug
- Sørg for alle afhængigheder er installeret med `npm install` - Sikr at alle afhængigheder er installeret med `npm install`
**Browser extension indlæses ikke**: **Browser extension loader ikke**:
- Bekræft at manifest.json er korrekt formatteret - Bekræft manifest.json er korrekt formateret
- Tjek browser konsol for fejl - Tjek browserkonsol for fejl
- Følg browserspecifikke installationsinstruktioner - Følg browserspecifikke installationsinstruktioner
**Python chat projekt problemer**: **Python chat projekt problemer**:
- Sørg for OpenAI pakken er installeret: `pip install openai` - Sikr OpenAI-pakken er installeret: `pip install openai`
- Bekræft at miljøvariablen GITHUB_TOKEN er sat - Bekræft GITHUB_TOKEN miljøvariabel er sat
- Tjek GitHub Models adgangstilladelser - Tjek GitHub Models adgangstilladelser
**Docsify serverer ikke dokumentation**: **Docsify serverer ikke docs**:
- Installer docsify-cli globalt: `npm install -g docsify-cli` - Installer docsify-cli globalt: `npm install -g docsify-cli`
- Kør fra roden af lageret - Kør fra rodmappen i lageret
- Tjek at `docs/_sidebar.md` findes - Tjek at `docs/_sidebar.md` findes
### Udviklingsmiljø tips ### Udviklingsmiljø tips
- Brug VS Code med Live Server udvidelse til HTML projekter - Brug VS Code med Live Server extension til HTML projekter
- Installer ESLint og Prettier udvidelser for ensartet formatering - Installer ESLint og Prettier extensions for ensartet formatering
- Brug browser DevTools til debugging af JavaScript - Brug browser DevTools til fejlfinding af JavaScript
- Til Vue projekter, installer Vue DevTools browserudvidelse - Til Vue projekter, installer Vue DevTools browser extension
### Performance hensyn ### Ydelseshensyn
- Stort antal oversatte filer (50+ sprog) betyder at fulde kloner er store - Stort antal oversatte filer (50+ sprog) betyder at fulde kloner er store
- Brug shallow clone hvis kun indhold arbejdes med: `git clone --depth 1` - Brug shallow clone hvis kun arbejder med indhold: `git clone --depth 1`
- Ekskluder oversættelser fra søgninger når der arbejdes med engelsk indhold - Udeluk oversættelser fra søgninger når du arbejder med engelsk indhold
- Buildprocesser kan være langsomme ved første kørsel (npm install, Vite build) - Build-processer kan være langsomme første gang (npm install, Vite build)
## Sikkerhedshensyn ## Sikkerhedshensyn
### Miljøvariabler ### Miljøvariabler
- API nøgler må aldrig committes til lageret - API-nøgler må aldrig committes til lageret
- Brug `.env` filer (allerede i `.gitignore`) - Brug `.env` filer (allerede i `.gitignore`)
- Dokumentér nødvendige miljøvariabler i projekt READMEs - Dokumentér nødvendige miljøvariabler i projekt-READMEer
### Python projekter ### Python Projekter
- Brug virtuelle miljøer: `python -m venv venv` - Brug virtuelle miljøer: `python -m venv venv`
- Hold afhængigheder opdaterede - Hold afhængigheder opdaterede
- GitHub tokens bør have minimale nødvendige tilladelser - GitHub tokens skal have minimale nødvendige tilladelser
### GitHub Models adgang ### GitHub Models adgang
- Personlige adgangstokens (PAT) kræves til GitHub Models - Personal Access Tokens (PAT) kræves for GitHub Models
- Tokens skal opbevares som miljøvariabler - Tokens skal gemmes som miljøvariabler
- Må aldrig committes eller deles - Commit aldrig tokens eller legitimationsoplysninger
## Yderligere noter ## Yderligere noter
### Målgruppe ### Målgruppe
- Komplette begyndere til webudvikling - Fuldstændige begyndere til webudvikling
- Studerende og selvstuderende - Studerende og selvrende
- Lærere der bruger læseplanen i undervisning - Lærere, der bruger pensum i klasseværelser
- Indhold designet til tilgængelighed og gradvis færdighedsopbygning - Indhold er designet til tilgængelighed og gradvis færdighedsopbygning
### Pædagogisk filosofi ### Pædagogisk filosofi
- Projektbaseret læringstilgang - Projektbaseret læringstilgang
- Hyppige videnscheck (quizzer) - Hyppige videnschecks (quizzer)
- Praktiske kodningsøvelser - Praktiske kodningsøvelser
- Virkelighedsnære eksempler - Virkelighedsnære anvendelsestilfælde
- Fokus på grundlæggende færdigheder før frameworks - Fokus på grundlæggende færdigheder før frameworks
### Lagervedligeholdelse ### Lagervedligeholdelse
- Aktivt fællesskab af elever og bidragydere - Aktivt fællesskab af elever og bidragsydere
- Regelmæssige opdateringer til afhængigheder og indhold - Regelmæssige opdateringer til afhængigheder og indhold
- Issues og diskussioner overvåges af vedligeholdere - Issues og diskussioner overvåges af vedligeholdere
- Oversættelsesopdateringer automatiseres via GitHub Actions - Oversættelsesopdateringer automatiseres via GitHub Actions
@ -381,14 +381,14 @@ CO_OP_TRANSLATOR_METADATA:
- [Microsoft Learn moduler](https://docs.microsoft.com/learn/) - [Microsoft Learn moduler](https://docs.microsoft.com/learn/)
- [Student Hub ressourcer](https://docs.microsoft.com/learn/student-hub/) - [Student Hub ressourcer](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) anbefalet til elever - [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) anbefalet til elever
- Yderligere kurser: Generative AI, Data Science, ML, IoT læreplaner tilgængelige - Yderligere kurser: Generativ AI, Data Science, ML, IoT pensum tilgængeligt
### Arbejde med specifikke projekter ### Arbejde med specifikke projekter
For detaljerede instruktioner om individuelle projekter, se README-filer i: For detaljerede instruktioner om individuelle projekter, se README-filer i:
- `quiz-app/README.md` - Vue 3 quiz applikation - `quiz-app/README.md` - Vue 3 quiz applikation
- `7-bank-project/README.md` - Bankapplikation med autentificering - `7-bank-project/README.md` - Banking applikation med autentifikation
- `5-browser-extension/README.md` - Udvikling af browserudvidelser - `5-browser-extension/README.md` - Browser extension udvikling
- `6-space-game/README.md` - Canvas-baseret spiludvikling - `6-space-game/README.md` - Canvas-baseret spiludvikling
- `9-chat-project/README.md` - AI chat assistent projekt - `9-chat-project/README.md` - AI chat assistent projekt
@ -398,11 +398,11 @@ Selvom det ikke er et traditionelt monorepo, indeholder dette lager flere uafhæ
- Hver lektion er selvstændig - Hver lektion er selvstændig
- Projekter deler ikke afhængigheder - Projekter deler ikke afhængigheder
- Arbejd på individuelle projekter uden at påvirke andre - Arbejd på individuelle projekter uden at påvirke andre
- Klon hele repoet for den fulde kursusoplevelse - Klon hele lageret for den fulde kursusoplevelse
--- ---
<!-- CO-OP TRANSLATOR DISCLAIMER START --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfraskrivelse**: **Ansvarsfraskrivelse**:
Dette dokument er oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse. Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets modersmål bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.
<!-- CO-OP TRANSLATOR DISCLAIMER END --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -10,29 +10,29 @@
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
# Webudvikling for begyndere - en læseplan # Webudvikling for begyndere - Et pensum
Lær grundlæggende webudvikling med vores 12-ugers omfattende kursus af Microsoft Cloud Advocates. Hver af de 24 lektioner dykker ned i JavaScript, CSS og HTML gennem praktiske projekter som terrarier, browserudvidelser og rumspil. Deltag i quizzer, diskussioner og praktiske opgaver. Forbedr dine færdigheder og optimer din vidensfastholdelse med vores effektive projektbaserede pædagogik. Start din kodningsrejse i dag! Lær grundprincipperne i webudvikling med vores 12-ugers omfattende kursus af Microsoft Cloud Advocates. Hver af de 24 lektioner dykker ned i JavaScript, CSS og HTML gennem praktiske projekter som terrarier, browserudvidelser og rumspil. Deltag i quizzer, diskussioner og praktiske opgaver. Forbedr dine færdigheder og optimer din vidensfastholdelse med vores effektive projektbaserede pædagogik. Start din kodningsrejse i dag!
Deltag i Azure AI Foundry Discord-fællesskabet Deltag i Azure AI Foundry Discord-fællesskabet
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Følg disse trin for at komme i gang med at bruge disse ressourcer: Følg disse trin for at komme i gang med at bruge disse ressourcer:
1. **Fork Repositoryet**: Klik [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork) 1. **Fork repoet**: Klik [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork)
2. **Klon Repositoryet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` 2. **Klon repoet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Deltag i Azure AI Foundry Discord og mød eksperter og medudviklere**](https://discord.com/invite/ByRwuEEgH4) 3. [**Deltag i Azure AI Foundry Discord og mød eksperter og medudviklere**](https://discord.com/invite/ByRwuEEgH4)
### 🌐 Flersproget support ### 🌐 Multisprog Support
#### Understøttet via GitHub Action (Automatiseret og altid opdateret) #### Understøttet via GitHub Action (Automatisk & Altid Opdateret)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START --> <!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](./README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) [Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](./README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **Foretrækker du at klone lokalt?** > **Foretrækker du at klone lokalt?**
> >
> Dette repository indeholder 50+ sprogoversættelser, hvilket øger downloadstørrelsen betydeligt. For at klone uden oversættelser skal du bruge spars checkout: > Dette repository indeholder 50+ sprogoversættelser, hvilket markant øger downloadstørrelsen. For at klone uden oversættelser, brug sparse checkout:
> >
> **Bash / macOS / Linux:** > **Bash / macOS / Linux:**
> ```bash > ```bash
@ -48,43 +48,43 @@ Følg disse trin for at komme i gang med at bruge disse ressourcer:
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ``` > ```
> >
> Dette giver dig alt, hvad du behøver for at gennemføre kurset med en meget hurtigere download. > Dette giver dig alt, hvad du behøver for at gennemføre kurset med en langt hurtigere download.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END --> <!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
**Hvis du ønsker at få understøttelse af yderligere oversættelsessprog, er de listet [her](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)** **Hvis du ønsker, at yderligere oversættelsessprog understøttes, er de listet [her](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
[![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners) [![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners)
#### 🧑‍🎓 _Er du studerende?_ #### 🧑‍🎓 _Er du studerende?_
Besøg [**Student Hub siden**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), hvor du finder begynderressourcer, studenterpakker og endda muligheder for at få et gratis certifikatkupon. Dette er siden, du vil bogmærke og tjekke indimellem, da vi skifter indhold månedligt. Besøg [**Student Hub-siden**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), hvor du finder begynderressourcer, Student-pakker og endda måder at få et gratis certifikatkupon på. Dette er siden, du vil bogmærke og tjekke fra tid til anden, da vi skifter indhold månedligt.
### 📣 Meddelelse - Nye GitHub Copilot Agent mode udfordringer at gennemføre! ### 📣 Meddelelse - Nye GitHub Copilot Agent mode udfordringer at gennemføre!
Ny udfordring tilføjet, kig efter "GitHub Copilot Agent Challenge 🚀" i de fleste kapitler. Det er en ny udfordring, som du skal gennemføre ved hjælp af GitHub Copilot og Agent mode. Hvis du ikke har brugt Agent mode før, kan den ikke kun generere tekst, men også oprette og redigere filer, køre kommandoer og mere. Ny udfordring tilføjet, se efter "GitHub Copilot Agent Challenge 🚀" i de fleste kapitler. Det er en ny udfordring, som du kan gennemføre ved at bruge GitHub Copilot og Agent mode. Hvis du ikke har brugt Agent mode før, kan den ikke blot generere tekst men også oprette og redigere filer, køre kommandoer og mere.
### 📣 Meddelelse - _Nyt projekt at bygge ved hjælp af Generativ AI_ ### 📣 Meddelelse - _Nyt projekt at bygge ved brug af Generativ AI_
Nyt AI Assistant projekt er netop tilføjet, tjek det ud [projekt](./9-chat-project/README.md) Nyt AI Assistant projekt er lige tilføjet, tjek projektet ud [her](./9-chat-project/README.md)
### 📣 Meddelelse - _Ny læseplan_ om Generativ AI for JavaScript er netop udgivet ### 📣 Meddelelse - _Nyt pensum_ om Generativ AI for JavaScript blev lige udgivet
Gå ikke glip af vores nye læseplan for Generativ AI! Gå ikke glip af vores nye Generative AI pensum!
Besøg [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) for at komme i gang! Besøg [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) for at komme i gang!
![Background](../../translated_images/da/background.148a8d43afde5730.webp) ![Background](../../translated_images/da/background.148a8d43afde5730.webp)
- Lektioner, der dækker alt fra det grundlæggende til RAG. - Lektioner der dækker alt fra det grundlæggende til RAG.
- Interagér med historiske figurer ved hjælp af GenAI og vores følgesvend-app. - Interaktion med historiske personer ved brug af GenAI og vores companion app.
- Sjov og engagerende fortælling, du vil rejse i tiden! - Sjov og engagerende fortælling, du rejser i tiden!
![character](../../translated_images/da/character.5c0dd8e067ffd693.webp) ![character](../../translated_images/da/character.5c0dd8e067ffd693.webp)
Hver lektion inkluderer en opgave, en videnscheck og en udfordring, der guider dig i at lære emner som: Hver lektion inkluderer en opgave, en videnscheck og en udfordring til at guide dig i at lære emner som:
- Prompting og prompt engineering - Prompting og prompt engineering
- Tekst- og billedappgenerering - Tekst- og billedapps-generering
- Søgeapps - Søgeapps
Besøg [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) for at komme i gang! Besøg [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) for at komme i gang!
@ -93,122 +93,122 @@ Besøg [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) for at k
## 🌱 Kom godt i gang ## 🌱 Kom godt i gang
> **Lærere**, vi har [inkluderet nogle forslag](for-teachers.md) til, hvordan I kan bruge denne læseplan. Vi vil meget gerne have jeres feedback [i vores diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)! > **Lærere**, vi har [inkluderet nogle forslag](for-teachers.md) til, hvordan dette pensum kan bruges. Vi vil elske at få jeres feedback [i vores diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
**[Lærende](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, for hver lektion, start med en pre-lecture quiz og følg op med at læse forelæsningsmaterialet, gennemføre de forskellige aktiviteter og tjek din forståelse med post-lecture quizzen. **[Lærende](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, for hver lektion, start med en præ-forelæsning quiz og fortsæt med at læse forelæsningsmaterialet, udføre de forskellige aktiviteter og tjek din forståelse med en post-forelæsnings quiz.
For at forbedre din læringsoplevelse, forbind med dine jævnbyrdige for at arbejde på projekterne sammen! Diskussioner opfordres i vores [diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), hvor vores team af moderatorer vil være tilgængelige for at besvare dine spørgsmål. For at forbedre din læring, connect med dine jævnbyrdige for at arbejde sammen på projekterne! Diskussioner er opfordret i vores [diskussionsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), hvor vores team af moderatorer vil være til rådighed for at besvare dine spørgsmål.
For at fremme din uddannelse, anbefaler vi kraftigt at udforske [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) for yderligere studiematerialer. For at videreuddanne dig anbefaler vi stærkt at udforske [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) for yderligere studiematerialer.
### 📋 Opsætning af dit miljø ### 📋 Opsætning af dit miljø
Denne læseplan har et udviklingsmiljø klar til brug! Når du kommer i gang, kan du vælge at køre læseplanen i en [Codespace](https://github.com/features/codespaces/) (_et browser-baseret miljø, hvor ingen installation er nødvendig_), eller lokalt på din computer ved hjælp af en teksteditor som [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon). Dette pensum har et udviklingsmiljø klar til brug! Når du kommer i gang, kan du vælge at køre pensum i en [Codespace](https://github.com/features/codespaces/) (_et browserbaseret miljø uden behov for installation_), eller lokalt på din computer ved hjælp af en teksteditor som [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### Opret dit repository #### Opret dit repository
For at du nemt kan gemme dit arbejde anbefales det, at du opretter din egen kopi af dette repository. Det kan du gøre ved at klikke på **Use this template** knappen øverst på siden. Dette vil oprette et nyt repository i din GitHub-konto med en kopi af læseplanen. For at du nemt kan gemme dit arbejde, anbefales det, at du opretter din egen kopi af dette repository. Det kan du gøre ved at klikke på knappen **Use this template** øverst på siden. Dette vil oprette et nyt repository i din GitHub-konto med en kopi af pensum.
Følg disse trin: Følg disse trin:
1. **Fork Repositoryet**: Klik på "Fork" knappen øverst til højre på denne side. 1. **Fork repoet**: Klik på "Fork"-knappen øverst til højre på denne side.
2. **Klon Repositoryet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` 2. **Klon repoet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### Køre læseplanen i en Codespace #### Kør pensum i en Codespace
I din kopi af dette repository, som du har oprettet, klik på **Code** knappen og vælg **Open with Codespaces**. Dette opretter en ny Codespace til dig at arbejde i. I din kopi af dette repository, som du har oprettet, klik på knappen **Code** og vælg **Open with Codespaces**. Dette vil oprette en ny Codespace til dig at arbejde i.
![Codespace](../../translated_images/da/createcodespace.0238bbf4d7a8d955.webp) ![Codespace](../../translated_images/da/createcodespace.0238bbf4d7a8d955.webp)
#### Køre læseplanen lokalt på din computer #### Kør pensum lokalt på din computer
For at køre denne læseplan lokalt på din computer, skal du bruge en teksteditor, en browser og et kommandolinjeværktøj. Vores første lektion, [Introduktion til programmeringssprog og handelsværktøjer](../../1-getting-started-lessons/1-intro-to-programming-languages), vil guide dig gennem forskellige valgmuligheder for hvert af disse værktøjer, så du kan vælge, hvad der passer bedst til dig. For at køre dette pensum lokalt på din computer, skal du bruge en teksteditor, en browser og et kommandolinjeværktøj. Vores første lektion, [Introduktion til programmeringssprog og handelsværktøjer](../../1-getting-started-lessons/1-intro-to-programming-languages), vil guide dig gennem forskellige muligheder for hvert af disse værktøjer, så du kan vælge det, der passer bedst til dig.
Vi anbefaler at bruge [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) som din editor, som også har et indbygget [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Du kan downloade Visual Studio Code [her](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon). Vi anbefaler at bruge [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) som din editor, som også har et integreret [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Du kan downloade Visual Studio Code [her](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
1. Klon dit repository til din computer. Det kan du gøre ved at klikke på **Code**-knappen og kopiere URL'en: 1. Klon dit repository til din computer. Du kan gøre dette ved at klikke på **Code** knappen og kopiere URL'en:
[CodeSpace](./images/createcodespace.png) [CodeSpace](./images/createcodespace.png)
Åbn derefter [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) i [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) og kør følgende kommando, hvor du erstatter `<your-repository-url>` med den URL, du lige har kopieret: Åbn derefter [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) i [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) og kør følgende kommando, hvor du erstatter `<your-repository-url>` med den URL, du lige kopierede:
```bash ```bash
git clone <your-repository-url> git clone <your-repository-url>
``` ```
2. Åbn mappen i Visual Studio Code. Det kan du gøre ved at klikke på **File** > **Open Folder** og vælge den mappe, du netop har klonet. 2. Åbn mappen i Visual Studio Code. Du kan gøre dette ved at klikke på **File** > **Open Folder** og vælge den mappe, du lige har klonet.
> Anbefalede Visual Studio Code-udvidelser: > Anbefalede Visual Studio Code-udvidelser:
> >
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - for at kunne forhåndsvise HTML-sider i Visual Studio Code > * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - til at forhåndsvise HTML-sider inden for Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - for at hjælpe dig med at skrive kode hurtigere > * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - til at hjælpe dig med at skrive kode hurtigere
## 📂 Hver lektion inkluderer: ## 📂 Hver lektion inkluderer:
- valgfri skitsetegning - valgfri sketchnote
- valgfri supplerende video - valgfri supplerende video
- opvarmningsquiz før lektionen - varm-quiz før lektionen
- skreven lektion - skriftlig lektion
- for projektbaserede lektioner, trin-for-trin vejledninger om, hvordan man bygger projektet - for projektbaserede lektioner, trin-for-trin vejledninger om, hvordan man bygger projektet
- videnschecks - videnskontroller
- en udfordring - en udfordring
- supplerende læsning - supplerende læsning
- opgave - opgave
- [quiz efter lektion](https://ff-quizzes.netlify.app/web/) - [quiz efter lektion](https://ff-quizzes.netlify.app/web/)
> **En note om quizzes**: Alle quizzes findes i Quiz-app mappen, i alt 48 quizzes med tre spørgsmål hver. De er tilgængelige [her](https://ff-quizzes.netlify.app/web/); quiz-appen kan køres lokalt eller implementeres til Azure; følg instruktionerne i `quiz-app` mappen. > **En note om quizzer**: Alle quizzer findes i Quiz-app mappen, 48 quizzer med tre spørgsmål hver. De er tilgængelige [her](https://ff-quizzes.netlify.app/web/) quiz-app'en kan køre lokalt eller udgives til Azure; følg instruktionerne i `quiz-app` mappen.
## 🗃️ Lektioner ## 🗃️ Lektioner
| | Projektnavn | Gennemgåede Begreber | Læringsmål | Linket Lektion | Forfatter | | | Projektnavn | Underviste Begreber | Læringsmål | Linket Lektion | Forfatter |
| :-: | :------------------------------------------------------: | :------------------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: | | :-: | :-----------------------------------------------------: | :------------------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :-----------------------: |
| 01 | Kom I Gang | Introduktion til programmering og værktøjer | Lær de grundlæggende elementer bag de fleste programmeringssprog og om software, der hjælper professionelle udviklere med deres arbejde | [Intro til programmeringssprog og værktøjer](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine | | 01 | Kom godt i gang | Introduktion til programmering og værktøjer | Lær de grundlæggende principper bag de fleste programmeringssprog og om software, som hjælper professionelle udviklere | [Introduktion til programmeringssprog og værktøjer](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Kom I Gang | Grundlæggende GitHub, inkl. samarbejde i team | Hvordan man bruger GitHub i sit projekt, og hvordan man samarbejder med andre om en kodebase | [Intro til GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor | | 02 | Kom godt i gang | Grundlæggende GitHub, inkl. arbejde i team | Hvordan man bruger GitHub i sit projekt, og hvordan man samarbejder med andre om kodebasis | [Introduktion til GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Kom I Gang | Tilgængelighed | Lær det grundlæggende om webtilgængelighed | [Tilgængelighedsgrundlag](./1-getting-started-lessons/3-accessibility/README.md) | Christopher | | 03 | Kom godt i gang | Tilgængelighed | Lær det grundlæggende om webtilgængelighed | [Grundlæggende tilgængelighed](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | JS Grundlæggende | JavaScript Datatyper | Grundlæggende JavaScript-datatyper | [Datatyper](./2-js-basics/1-data-types/README.md) | Jasmine | | 04 | JS Basics | JavaScript-datatyper | Det grundlæggende om JavaScript-datatyper | [Datatyper](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | JS Grundlæggende | Funktioner og Metoder | Lær om funktioner og metoder til at styre et programs logik | [Funktioner og Metoder](./2-js-basics/2-functions-methods/README.md) | Jasmine og Christopher | | 05 | JS Basics | Funktioner og metoder | Lær om funktioner og metoder til at styre et applikations logikflow | [Funktioner og metoder](./2-js-basics/2-functions-methods/README.md) | Jasmine og Christopher |
| 06 | JS Grundlæggende | Beslutningstagning med JS | Lær at skabe betingelser i din kode ved hjælp af beslutningsmetoder | [Beslutningstagning](./2-js-basics/3-making-decisions/README.md) | Jasmine | | 06 | JS Basics | Beslutningstagning med JS | Lær hvordan man skaber betingelser i din kode ved hjælp af beslutningstagsmetoder | [Beslutningstagning](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | JS Grundlæggende | Arrays og Løkker | Arbejd med data ved brug af arrays og løkker i JavaScript | [Arrays og Løkker](./2-js-basics/4-arrays-loops/README.md) | Jasmine | | 07 | JS Basics | Arrays og løkker | Arbejd med data brugt arrays og løkker i JavaScript | [Arrays og løkker](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML i praksis | Byg HTML'en til at skabe et online terrarium med fokus på opbygning af layout | [Introduktion til HTML](./3-terrarium/1-intro-to-html/README.md) | Jen | | 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML i praksis | Byg HTML til at skabe et online terrarium med fokus på layout | [Introduktion til HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS i praksis | Byg CSS'en til at style det online terrarium med fokus på det grundlæggende i CSS, inkl. responsivt design | [Introduktion til CSS](./3-terrarium/2-intro-to-css/README.md) | Jen | | 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS i praksis | Byg CSS til at style det online terrarium med fokus på CSS grundlæggende inklusive responsivt design | [Introduktion til CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript Closures, DOM-manipulation | Byg JavaScript til at få terrariet til at fungere som en drag/drop-grænseflade med fokus på closures og DOM-manipulation | [JavaScript Closures, DOM-manipulation](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | | 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript closures, DOM-manipulation | Byg JavaScript til at gøre terrariet funktionelt som drag/drop-interface med fokus på closures og DOM-manipulation | [JavaScript Closures, DOM-manipulation](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Typing Game](./4-typing-game/solution/README.md) | Byg et Typingspil | Lær at bruge tastaturbegivenheder til at styre logikken i din JavaScript-app | [Eventdrevet programmering](./4-typing-game/typing-game/README.md) | Christopher | | 11 | [Typing Game](./4-typing-game/solution/README.md) | Byg et Typing-spil | Lær hvordan keyboard events bruges til at styre logikken i din JavaScript-app | [Begivenhedsdrevet programmering](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Arbejde med browsere | Lær hvordan browsere fungerer, deres historie og hvordan man laver de første elementer i en browser-udvidelse | [Om browsere](./5-browser-extension/1-about-browsers/README.md) | Jen | | 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Arbejde med browsere | Lær hvordan browsere fungerer, deres historie, og hvordan man skaber de første elementer i en browser extension | [Om browsere](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Byg et formular, kald et API og gem variabler i lokal lagring | Byg JavaScript-elementerne til din browserudvidelse for at kalde et API ved brug af variabler gemt i lokal lagring | [API'er, formularer og lokal lagring](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | | 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Bygge formular, kalde et API og gemme variabler i lokal lagring | Byg JavaScript-elementerne i din browser extension til at kalde et API ved hjælp af variabler i lokal lagring | [APIs, formularer og lokal lagring](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Baggrundsprocesser i browseren, webperformance | Brug browserens baggrundsprocesser til at styre udvidelsens ikon; lær om webperformance og nogle optimeringer for at forbedre | [Baggrundsopgaver og performance](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | | 14 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Baggrundsprocesser i browseren, webperformance | Brug browserens baggrundsprocesser til at styre extensionens ikon; lær om webperformance og optimeringer | [Baggrundsopgaver og performance](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Space Game](./6-space-game/solution/README.md) | Mere avanceret spiludvikling med JavaScript | Lær om arv via både klasser og komposition samt Pub/Sub-mønsteret som forberedelse til et spil | [Introduktion til avanceret spiludvikling](./6-space-game/1-introduction/README.md) | Chris | | 15 | [Space Game](./6-space-game/solution/README.md) | Mere avanceret spiludvikling med JavaScript | Lær om arv ved brug af både klasser og komposition og Pub/Sub mønsteret som forberedelse til at bygge et spil | [Introduktion til avanceret spiludvikling](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Space Game](./6-space-game/solution/README.md) | Tegning til canvas | Lær om Canvas API, som bruges til at tegne elementer på en skærm | [Tegning til canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris | | 16 | [Space Game](./6-space-game/solution/README.md) | Tegning på canvas | Lær om Canvas API, som bruges til at tegne elementer på en skærm | [Tegning på canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Space Game](./6-space-game/solution/README.md) | Flyt elementer rundt på skærmen | Opdag hvordan elementer kan bevæge sig vha. kartesiske koordinater og Canvas API | [Flyt elementer rundt](./6-space-game/3-moving-elements-around/README.md) | Chris | | 17 | [Space Game](./6-space-game/solution/README.md) | Flytning af elementer rundt på skærmen | Opdag hvordan elementer kan få bevægelse ved hjælp af kartesiske koordinater og Canvas API | [Flyt elementer rundt](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Space Game](./6-space-game/solution/README.md) | Kollisionregistrering | Få elementer til at kollidere og reagere på hinanden ved tastetryk og tilføj en cooldown-funktion for at sikre spillets ydeevne | [Kollisionregistrering](./6-space-game/4-collision-detection/README.md) | Chris | | 18 | [Space Game](./6-space-game/solution/README.md) | Kollisiondetektion | Få elementer til at kollidere og reagere på hinanden ved hjælp af tastetryk og tilføj en cooldown-funktion for at sikre ydeevne | [Kollisiondetektion](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Space Game](./6-space-game/solution/README.md) | Hold styr på point | Udfør matematiske beregninger baseret på spillets status og præstation | [Hold styr på point](./6-space-game/5-keeping-score/README.md) | Chris | | 19 | [Space Game](./6-space-game/solution/README.md) | Hold styr på point | Udfør matematiske beregninger baseret på spillets status og ydeevne | [Hold styr på point](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Space Game](./6-space-game/solution/README.md) | Afslutning og genstart af spillet | Lær om at afslutte og genstarte spillet, inkl. oprydning af ressourcer og nulstilling af variabler | [Afslutningsbetingelsen](./6-space-game/6-end-condition/README.md) | Chris | | 20 | [Space Game](./6-space-game/solution/README.md) | Afslutte og genstarte spillet | Lær om at afslutte og genstarte spillet, inklusiv oprydning af ressourcer og nulstilling af variabler | [Afslutningsbetingelsen](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Banking App](./7-bank-project/solution/README.md) | HTML-skabeloner og routes i en webapp | Lær hvordan man skaber arkitekturen for et multipages website ved hjælp af routing og HTML-skabeloner | [HTML-skabeloner og routes](./7-bank-project/1-template-route/README.md) | Yohan | | 21 | [Banking App](./7-bank-project/solution/README.md) | HTML-skabeloner og ruter i en webapp | Lær hvordan man skaber skabelonen for en multipage hjemmesides arkitektur ved brug af routing og HTML-skabeloner | [HTML-skabeloner og ruter](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Banking App](./7-bank-project/solution/README.md) | Byg en login- og registreringsformular | Lær om hvordan man laver formularer og håndterer valideringsrutiner | [Formularer](./7-bank-project/2-forms/README.md) | Yohan | | 22 | [Banking App](./7-bank-project/solution/README.md) | Byg en login- og registreringsformular | Lær om opbygning af formularer og håndtering af valideringsrutiner | [Formularer](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Banking App](./7-bank-project/solution/README.md) | Metoder til hentning og brug af data | Hvordan data flyder ind og ud af din app, hvordan man henter, gemmer og bortskaffer det | [Data](./7-bank-project/3-data/README.md) | Yohan | | 23 | [Banking App](./7-bank-project/solution/README.md) | Metoder til hentning og brug af data | Hvordan data flyder ind og ud af din app, hvordan man henter det, gemmer og rydder op | [Data](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Banking App](./7-bank-project/solution/README.md) | Koncepter for tilstandsadministration | Lær hvordan din app bevarer tilstand og hvordan man programmerer styring af denne | [Tilstandsadministration](./7-bank-project/4-state-management/README.md) | Yohan | | 24 | [Banking App](./7-bank-project/solution/README.md) | Begreber om tilstands-styring | Lær hvordan din app bevarer tilstand og hvordan man styrer det programmæssigt | [Tilstands-styring](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Browser/VScode Code](../../8-code-editor) | Arbejde med VScode | Lær hvordan man bruger en kodeeditor | [Brug af VScode Code Editor](./8-code-editor/1-using-a-code-editor/README.md) | Chris | | 25 | [Browser/VScode Code](../../8-code-editor) | Arbejde med VScode | Lær hvordan man bruger en kodeeditor| [Brug VScode Code Editor](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI Assistants](./9-chat-project/README.md) | Arbejde med AI | Lær hvordan du bygger din egen AI-assistent | [AI Assistent projekt](./9-chat-project/README.md) | Chris | | 26 | [AI Assistants](./9-chat-project/README.md) | Arbejde med AI | Lær hvordan du bygger din egen AI-assistent | [AI Assistant projekt](./9-chat-project/README.md) | Chris |
## 🏫 Pædagogik ## 🏫 Pædagogik
Vores læreplan er designet med to centrale pædagogiske principper for øje: Vores pensum er designet med to centrale pædagogiske principper i tankerne:
* projektbaseret læring * projektbaseret læring
* hyppige quizzes * hyppige quizzer
Programmet underviser i grundlæggende JavaScript, HTML og CSS samt de nyeste værktøjer og teknikker, som nutidens webudviklere bruger. Studerende vil få mulighed for at opnå praktisk erfaring ved at bygge et typing-spil, virtuelt terrarium, miljøvenligt browser-udvidelse, rum-invader-stil spil og en bankapp til virksomheder. Ved slutningen af serien vil studerende have opnået en solid forståelse af webudvikling. Programmet underviser i grundlæggende JavaScript, HTML og CSS, samt de nyeste værktøjer og teknikker, som nutidens webudviklere bruger. Studerende får mulighed for at opnå praktisk erfaring ved at bygge et typing-spil, virtuelt terrarium, miljøvenlig browser extension, space-invader-stil spil og en bankapp til erhvervslivet. Ved slutningen af serien vil studerende have opnået en solid forståelse af webudvikling.
> 🎓 Du kan tage de første lektioner i denne læreplan som en [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) på Microsoft Learn! > 🎓 Du kan tage de første par lektioner i dette pensum som en [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) på Microsoft Learn!
Ved at sikre, at indholdet er knyttet til projekter, bliver processen mere engagerende for studerende, og fastholdelsen af begreber styrkes. Vi har desuden skrevet flere introducerende lektioner i JavaScript grundlæggende for at introducere begreber, suppleret med en video fra "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" samlingen af videotutorials, hvoraf nogle forfattere bidrog til denne læreplan. Ved at sikre at indholdet stemmer overens med projekter, gøres processen mere engagerende for eleverne og fastholdelse af begreber vil blive øget. Vi har også skrevet flere starterlektioner i JavaScript basics for at introducere begreber, parret med en video fra "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" samlingen af videotutorials, hvor nogle af forfatterne har bidraget til dette pensum.
Derudover sætter en lavrisiko quiz før en klasse målrettet elevens intention om at lære et emne, mens en anden quiz efter klasse sikrer yderligere fastholdelse. Denne læreplan er designet til at være fleksibel og sjov og kan tages helt eller delvist. Projekterne starter småt og bliver gradvist mere komplekse hen imod slutningen af den 12-ugers cyklus. Derudover sætter en lav-stakes quiz før en lektion elevens fokus mod at lære et emne, mens en anden quiz efter lektionen sikrer yderligere fastholdelse. Dette pensum er designet til at være fleksibelt og sjovt og kan gennemføres helt eller delvist. Projekterne starter småt og bliver gradvist mere komplekse ved slutningen af 12-ugers cyklussen.
Selvom vi har undgået at introducere JavaScript-rammeværk for at fokusere på de grundlæggende færdigheder, der kræves som webudvikler, før man tager et rammeværk i brug, vil et godt næste skridt i denne læreplans afslutning være at lære om Node.js via en anden samling videoer: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)". Mens vi bevidst har undgået at introducere JavaScript-rammer for at fokusere på de grundlæggende færdigheder som webudvikler, inden man tager en ramme i brug, vil et godt næste skridt til at fuldføre dette pensum være at lære om Node.js gennem en anden samling af videoer: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> Besøg vores [Adfærdskodeks](CODE_OF_CONDUCT.md) og [Bidrag](CONTRIBUTING.md) retningslinjer. Vi ser frem til din konstruktive feedback! > Besøg vores [Adfærdskodeks](CODE_OF_CONDUCT.md) og [Bidragsvejledning](CONTRIBUTING.md). Vi byder din konstruktive feedback velkommen!
## 🧭 Offline adgang ## 🧭 Offline adgang
Du kan køre denne dokumentation offline ved at bruge [Docsify](https://docsify.js.org/#/). Fork dette repo, [installer Docsify](https://docsify.js.org/#/quickstart) på din lokale maskine, og skriv derefter i rodmappen af dette repo `docsify serve`. Websitet vil blive serveret på port 3000 på din localhost: `localhost:3000`. Du kan køre denne dokumentation offline ved at bruge [Docsify](https://docsify.js.org/#/). Fork dette repo, [installer Docsify](https://docsify.js.org/#/quickstart) på din lokale maskine, og skriv derefter i roden af dette repo `docsify serve`. Hjemmesiden serveres på port 3000 på din localhost: `localhost:3000`.
## 📘 PDF ## 📘 PDF
En PDF med alle lektionerne kan findes [her](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf). En PDF med alle lektionerne kan findes [her](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
@ -216,7 +216,7 @@ En PDF med alle lektionerne kan findes [her](https://microsoft.github.io/Web-Dev
## 🎒 Andre Kurser ## 🎒 Andre Kurser
Vores team producerer andre kurser! Tjek dem ud: Vores team producerer andre kurser! Tjek:
<!-- CO-OP TRANSLATOR OTHER COURSES START --> <!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain ### LangChain
@ -233,7 +233,7 @@ Vores team producerer andre kurser! Tjek dem ud:
--- ---
### Generative AI Series ### Generativ AI Serie
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
@ -252,7 +252,7 @@ Vores team producerer andre kurser! Tjek dem ud:
--- ---
### Copilot Series ### Copilot Serie
[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) [![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
@ -260,21 +260,21 @@ Vores team producerer andre kurser! Tjek dem ud:
## Få Hjælp ## Få Hjælp
Hvis du sidder fast eller har spørgsmål om at bygge AI-apps. Deltag sammen med andre lærende og erfarne udviklere i diskussioner om MCP. Det er et støttende fællesskab, hvor spørgsmål er velkomne, og viden deles frit. Hvis du sidder fast eller har spørgsmål om at bygge AI-apps, så deltag sammen med andre lærende og erfarne udviklere i diskussioner om MCP. Det er et støttende fællesskab, hvor spørgsmål er velkomne, og viden deles frit.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Hvis du har produktfeedback eller oplever fejl under udvikling, besøg: Hvis du har produktfeedback eller fejl under bygning, besøg:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Licens ## Licens
Dette arkiv er licenseret under MIT-licensen. Se [LICENSE](../../LICENSE)-filen for mere information. Dette depot er licenseret under MIT-licensen. Se filen [LICENSE](../../LICENSE) for mere information.
--- ---
<!-- CO-OP TRANSLATOR DISCLAIMER START --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfraskrivelse**: **Ansvarsfraskrivelse**:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets modersmål bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse. Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.
<!-- CO-OP TRANSLATOR DISCLAIMER END --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -493,7 +493,7 @@
}, },
"AGENTS.md": { "AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34", "original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-03-27T18:55:35+00:00", "translation_date": "2026-04-06T18:16:16+00:00",
"source_file": "AGENTS.md", "source_file": "AGENTS.md",
"language_code": "fi" "language_code": "fi"
}, },
@ -516,8 +516,8 @@
"language_code": "fi" "language_code": "fi"
}, },
"README.md": { "README.md": {
"original_hash": "a2c9eed480687319517c08a6319e5536", "original_hash": "b885c87c7544109b78d6684daad6cba6",
"translation_date": "2026-03-06T18:24:56+00:00", "translation_date": "2026-04-06T18:12:47+00:00",
"source_file": "README.md", "source_file": "README.md",
"language_code": "fi" "language_code": "fi"
}, },

@ -2,36 +2,36 @@
## Projektin yleiskuvaus ## Projektin yleiskuvaus
Tämä on opetussisältövarasto, joka on tarkoitettu verkkokehityksen perusteiden opettamiseen aloittelijoille. Opetussuunnitelma on kattava 12 viikon kurssi, jonka ovat kehittäneet Microsoft Cloud Advocates, ja se sisältää 24 käytännönläheistä oppituntia JavaScriptistä, CSS:stä ja HTML:stä. Tämä on opetuskokonaisuus, joka sisältää verkkokehityksen perusteiden opettamisen aloittelijoille. Opetussuunnitelma on kattava 12 viikon kurssi, jonka ovat kehittäneet Microsoft Cloud Advocates -tiimin jäsenet. Kurssi koostuu 24 käytännön oppitunnista, joissa käydään läpi JavaScriptiä, CSS:ää ja HTML:ää.
### Keskeiset osat ### Keskeiset osat
- **Opetussisältö**: 24 rakenteellista oppituntia, jotka on järjestetty projektipohjaisiksi moduuleiksi - **Koulutussisältö**: 24 jäsenneltyä oppituntia, jotka on järjestetty projektipohjaisiin moduuleihin
- **Käytännön projektit**: Terrarium, Typing Game, Browser Extension, Space Game, Banking App, Code Editor ja AI Chat Assistant - **Käytännön projektit**: Terrarium, Typing Game, Browser Extension, Space Game, Banking App, Code Editor ja AI Chat Assistant
- **Interaktiiviset monivalintakyselyt**: 48 kyselyä, joissa on 3 kysymystä jokaisessa (ennen ja jälkeen oppitunnin arvioinnit) - **Interaktiiviset tietokilpailut**: 48 tietokilpailua, joissa jokaisessa on 3 kysymystä (ennakko-/jälkitestit)
- **Monikielinen tuki**: Automaattiset käännökset yli 50 kielelle GitHub Actionsin avulla - **Monikielinen tuki**: Automaattinen käännös yli 50 kielelle GitHub Actions -työkalun avulla
- **Teknologiat**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (tekoälyprojekteihin) - **Teknologiat**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (AI-projekteihin)
### Arkkitehtuuri ### Arkkitehtuuri
- Opetussisältövarasto, jossa on oppituntirakenne - Opetussisältöarkisto oppituntipohjaisella rakenteella
- Jokainen oppituntikansio sisältää README-tiedoston, koodiesimerkkejä ja ratkaisuja - Jokainen oppituntikansio sisältää README-tiedoston, koodiesimerkit ja ratkaisut
- Erilliset projektit omissa hakemistoissaan (quiz-app, eri oppituntiprojektit) - Erilliset projektit omissa hakemistoissaan (quiz-app, eri oppiprojektit)
- Käännösjärjestelmä käyttäen GitHub Actionsia (co-op-translator) - Käännösjärjestelmä GitHub Actions -työkalun (co-op-translator) avulla
- Dokumentaatio tarjolla Docsifylla ja PDF-muodossa - Dokumentaatio tarjotaan Docsify:n kautta ja on saatavilla PDF-muodossa
## Asennuskäskyt ## Asennuskomennot
mä varasto on ensisijaisesti tarkoitettu opetussisällön kuluttamiseen. Työskenneltäessä tietyissä projekteissa: tä arkistoa käytetään ensisijaisesti opetussisällön kuluttamiseen. Työskentelyä varten omien projektien kanssa:
### Päävaraston asennus ### Pääarkiston asennus
```bash ```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
cd Web-Dev-For-Beginners cd Web-Dev-For-Beginners
``` ```
### Quiz App -asennus (Vue 3 + Vite) ### Quiz-sovelluksen asennus (Vue 3 + Vite)
```bash ```bash
cd quiz-app cd quiz-app
@ -41,33 +41,33 @@ npm run build # Rakenna tuotantoon
npm run lint # Suorita ESLint npm run lint # Suorita ESLint
``` ```
### Bank Project API (Node.js + Express) ### Pankkiprojektin API (Node.js + Express)
```bash ```bash
cd 7-bank-project/api cd 7-bank-project/api
npm install npm install
npm start # Käynnistä API-palvelin npm start # Käynnistä API-palvelin
npm run lint # Suorita ESLint npm run lint # Suorita ESLint
npm run format # Muotoile Prettierilla npm run format # Muotoile Prettierillä
``` ```
### Selaimen laajennusprojektit ### Selaimen laajennus -projektit
```bash ```bash
cd 5-browser-extension/solution cd 5-browser-extension/solution
npm install npm install
# Noudata selaimelle spesifisiä laajennuksen latausohjeita # Noudata selaimen erityisiä laajennusten latausohjeita
``` ```
### Space Game -projektit ### Avaruuspeli-projektit
```bash ```bash
cd 6-space-game/solution cd 6-space-game/solution
npm install npm install
# Avaa index.html selaimessa tai käytä Live Server -laajennusta # Avaa index.html selaimessa tai käytä Live Server
``` ```
### Chat-projekti (Python Backend) ### Chat-projekti (Python-taustapalvelu)
```bash ```bash
cd 9-chat-project/solution/backend/python cd 9-chat-project/solution/backend/python
@ -76,37 +76,37 @@ pip install openai
python api.py python api.py
``` ```
## Kehitysprosessin työkulku ## Kehitystyön työnkulku
### Sisällöntuottajille ### Sisällöntuottajille
1. **Luo haarukka** varastosta GitHub-tilillesi 1. **Tee fork** arkistosta omaan GitHub-tiliisi
2. **Kloonaa haarukkasi** paikallisesti 2. **Kloonaa fork** paikallisesti
3. **Luo uusi haara** muutoksillesi 3. **Luo uusi haara** muutoksiasi varten
4. Tee muutoksia oppituntisisältöön tai koodiesimerkkeihin 4. Tee muutoksia oppitunneissa tai koodiesimerkeissä
5. Testaa kaikki koodimuutokset asiaankuuluvissa projektihakemistoissa 5. Testaa muutokset asianmukaisissa projektihakemistoissa
6. Lähetä pull-pyyntöjä noudattaen kontribuutiokäytäntöjä 6. Lähetä pull request -pyyntöjä osallistumisohjeiden mukaisesti
### Oppijoille ### Oppijoille
1. Luo haarukka tai kloonaa varasto 1. Tee fork tai kloonaa arkisto
2. Siirry oppituntihakemistoihin järjestyksessä 2. Siirry oppituntihakemistoihin järjestyksessä
3. Lue jokaisen oppitunnin README-tiedostot 3. Lue kunkin oppitunnin README-tiedostot
4. Tee ennen oppituntia tehtävät monivalintakyselyt osoitteessa https://ff-quizzes.netlify.app/web/ 4. Tee ennakkotehtävät osoitteessa https://ff-quizzes.netlify.app/web/
5. Työstä koodiesimerkkejä oppituntikansioissa 5. Käy läpi koodiesimerkit oppituntikansioissa
6. Tee tehtäviä ja haasteita 6. Tee tehtävät ja haasteet
7. Tee oppitunnin jälkeiset monivalintakyselyt 7. Suorita jälkitestit
### Live-kehitys ### Kehitys livenä
- **Dokumentaatio**: Suorita `docsify serve` juurihakemistossa (portti 3000) - **Dokumentaatio**: Suorita `docsify serve` juurikansiossa (portti 3000)
- **Quiz App**: Suorita `npm run dev` quiz-app-hakemistossa - **Quiz-sovellus**: Suorita `npm run dev` quiz-app-hakemistossa
- **Projektit**: Käytä VS Code Live Server -laajennusta HTML-projekteille - **Projektit**: Käytä VS Code Live Server -laajennusta HTML-projekteihin
- **API-projektit**: Suorita `npm start` vastaavissa API-hakemistoissa - **API-projektit**: Suorita `npm start` niille varatuissa API-kansioissa
## Testiohjeet ## Testausohjeet
### Quiz App -testaus ### Quiz-sovelluksen testaus
```bash ```bash
cd quiz-app cd quiz-app
@ -114,7 +114,7 @@ npm run lint # Tarkista koodityylin ongelmat
npm run build # Varmista, että käännös onnistuu npm run build # Varmista, että käännös onnistuu
``` ```
### Bank API -testaus ### Bank API:n testaus
```bash ```bash
cd 7-bank-project/api cd 7-bank-project/api
@ -124,29 +124,29 @@ node server.js # Varmista, että palvelin käynnistyy ilman virheitä
### Yleinen testauslähestymistapa ### Yleinen testauslähestymistapa
- Tämä on opetussisältövarasto ilman kattavia automatisoituja testejä - Tämä on opetuskäyttöön tarkoitettu arkisto ilman kattavia automatisoituja testejä
- Manuaalinen testaus keskittyy: - Manuaalitestaus painottuu:
- Koodiesimerkkien toimivuuteen ilman virheitä - Koodiesimerkkien virheettömään suorittamiseen
- Dokumentaation linkkien toimivuuteen - Dokumentaation linkkien toimivuuteen
- Projektien build-prosessien onnistumiseen - Projektien onnistuneeseen käännökseen
- Esimerkkien parhaiden käytäntöjen noudattamiseen - Esimerkkien noudattavan parhaita käytäntöjä
### Tarkistukset ennen lähettämistä ### Ennen lähettämistä tehtävät tarkistukset
- Suorita `npm run lint` hakemistoissa, joissa on package.json - Suorita `npm run lint` kansioissa, joissa on package.json
- Varmista, että markdown-linkit ovat kelvollisia - Varmista, että markdown-linkit ovat toimivia
- Testaa koodiesimerkkejä selaimessa tai Node.js:ssä - Testaa koodiesimerkit selaimessa tai Node.js:ssä
- Tarkista, että käännökset säilyttävät rakenteen - Tarkista, että käännökset säilyttävät rakenteen
## Koodityyliohjeet ## Koodityyliohjeet
### JavaScript ### JavaScript
- Käytä modernia ES6+ -syntaksia - Käytä nykyaikaista ES6+-syntaksia
- Noudata projektien standardoituja ESLint-configeja - Noudata projektien tarjoamia ESLint-asetuksia
- Käytä merkityksellisiä muuttuja- ja funktioiden nimiä opetuksellisuuden vuoksi - Käytä selkeitä muuttuja- ja funktioiden nimiä opetuksellisuuden vuoksi
- Lisää kommentteja, jotka selittävät käsitteitä oppijoille - Lisää kommentteja, jotka selittävät käsitteitä oppijoille
- Muotoile Prettierillä, jos se on määritetty - Muotoile Prettierillä, jos se on määritelty
### HTML/CSS ### HTML/CSS
@ -157,106 +157,104 @@ node server.js # Varmista, että palvelin käynnistyy ilman virheitä
### Python ### Python
- PEP 8 -tyyliohjeiden noudattaminen - PEP 8 -tyyliohjeet
- Selkeät, opetukselliset koodiesimerkit - Selkeät ja opetukselliset koodiesimerkit
- Tyyppivihjeet, joissa ne auttavat oppimisessa - Tyyppivihjeet oppimisen tukena
### Markdown-dokumentaatio ### Markdown-dokumentaatio
- Selkeä otsikkohierarkia - Selkeä otsikkorakenne
- Koodilohkot, joissa kielimääritys - Koodilohkot, joissa kielimääritys
- Linkit lisäresursseihin - Linkit lisämateriaaleihin
- Kuvakaappaukset ja kuvat `images/`-kansioissa - Kuvakaappaukset ja kuvat `images/`-hakemistoissa
- Kuvien alt-teksti saavutettavuuden vuoksi - Vaihtoehtoinen teksti kuville saavutettavuuden vuoksi
### Tiedostojen järjestäminen ### Tiedostojen organisointi
- Oppitunnit numeroitu peräkkäin (1-getting-started-lessons, 2-js-basics jne.) - Oppitunnit numeroitu peräkkäin (1-getting-started-lessons, 2-js-basics jne.)
- Jokaisella projektilla on `solution/` ja usein myös `start/` tai `your-work/` -kansiot - Jokaisessa projektissa on `solution/` ja usein `start/` tai `your-work/` -hakemistot
- Kuvat säilytetään oppituntikohtaisissa `images/`-kansioissa - Kuvia säilytetään oppituntikohtaisissa `images/`-kansioissa
- Käännökset hakemistossa `translations/{language-code}/` - Käännökset kansiorakenteessa `translations/{language-code}/`
## Rakennus ja julkaisu ## Käännös- ja käyttöönotto
### Quiz App -julkaisu (Azure Static Web Apps) ### Quiz-sovelluksen käyttöönotto (Azure Static Web Apps)
Quiz-app on konfiguroitu Azure Static Web Apps -julkaisua varten: Quiz-sovellus on konfiguroitu Azure Static Web Apps -käyttöönottoa varten:
```bash ```bash
cd quiz-app cd quiz-app
npm run build # Luo dist/-kansion npm run build # Luo dist/ -kansion
# Ottaa käyttöön GitHub Actions -työnkulun kautta, kun push tapahtuu päähaaraan # Ottaa käyttöön GitHub Actions -työnkulun päivityksessä mainiin
``` ```
Azure Static Web Appsin konfigurointi: Azure Static Web Apps -asetukset:
- **Sovelluksen sijainti**: `/quiz-app` - **Sovelluksen sijainti**: `/quiz-app`
- **Tulossijainti**: `dist` - **Tulostehakemisto**: `dist`
- **Työnkulku**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml` - **Työnkulku**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Dokumentaation PDF:ksi generointi ### Dokumentaation PDF-generointi
```bash ```bash
npm install # Asenna docsify-to-pdf npm install # Asenna docsify-to-pdf
npm run convert # Luo PDF docsista npm run convert # Luo PDF docs-sisällöstä
``` ```
### Docsify-dokumentaatio ### Docsify-dokumentaatio
```bash ```bash
npm install -g docsify-cli # Asenna Docsify globaalisti npm install -g docsify-cli # Asenna Docsify globaalisti
docsify serve # Palvele osoitteessa localhost:3000 docsify serve # Tarjoa paikallisesti osoitteessa localhost:3000
``` ```
### Projektikohtaiset build-prosessit ### Projektikohtaiset käännökset
Jokaisella projektihakemistolla voi olla oma build-prosessinsa: Jokaisella projektihakemistolla voi olla oma rakennusprosessi:
- Vue-projektit: `npm run build` tuottaa tuotantopaketteja - Vue-projekteilla: `npm run build` tuottaa tuotantopaketteja
- Staattiset projektit: Ei build-vaihetta, tiedostot tarjotaan suoraan - Staattisissa projekteissa ei ole erillistä rakennusvaihetta, tiedostot palvellaan suoraan
## Pull-pyyntöjen ohjeet ## Pull Request -ohjeet
### Otsikkomuoto ### Otsikon muotoilu
Käytä selkeitä, kuvaavia otsikoita, jotka kertovat muutosten alueen: Käytä selkeitä ja kuvaavia otsikoita, jotka kertovat muutoksen alueen:
- `[Quiz-app] Lisää uusi tietovisa oppitunnille X` - `[Quiz-app] Lisää uusi tietovisa oppitunnille X`
- `[Lesson-3] Korjaa kirjoitusvirhe terrarium-projektissa` - `[Lesson-3] Korjaa kirjoitusvirhe terrarium-projektissa`
- `[Translation] Lisää espanjankielinen käännös oppitunnille 5` - `[Translation] Lisää espanjankielinen käännös oppitunnille 5`
- `[Docs] Päivitä asennusohjeet` - `[Docs] Päivitä asennusohjeet`
### Vaaditut tarkistukset ### Vaatimukset ennen lähettämistä
Ennen PR:n lähettämistä:
1. **Koodin laatu**: 1. **Koodin laatu**:
- Suorita `npm run lint` asiaankuuluvissa projektihakemistoissa - Suorita `npm run lint` vaikutuksen alaisissa projektin kansioissa
- Korjaa kaikki lint-virheet ja varoitukset - Korjaa kaikki mahdolliset lint-virheet ja varoitukset
2. **Buildin varmistus**: 2. **Rakennuksen varmistus**:
- Suorita `npm run build`, jos sovellettavissa - Suorita tarvittaessa `npm run build`
- Varmista, ettei build-virheitä ilmene - Varmista, ettei rakennuksessa ole virheitä
3. **Linkkien tarkistus**: 3. **Linkkien tarkastus**:
- Testaa kaikki markdown-linkit - Testaa kaikki markdown-linkit toimiviksi
- Varmista, että kuvalinkit toimivat - Varmista kuvaviittausten toimivuus
4. **Sisällön tarkistus**: 4. **Sisällön tarkastus**:
- Tarkista oikeinkirjoitus ja kielioppi - Tarkista kirjoitus- ja kielioppivirheet
- Varmista, että koodiesimerkit ovat oikein ja opetuksellisia - Varmista, että koodiesimerkit ovat oikein ja opetuksellisia
- Tarkista, että käännökset säilyttävät alkuperäisen merkityksen - Tarkista käännösten tarkkuus ja alkuperäisen säilyminen
### Panostusvaatimukset ### Osallistumisen vaatimukset
- Hyväksy Microsoft CLA (automaattinen tarkistus ensimmäisessä PR:ssä) - Hyväksy Microsoft CLA (automaattinen tarkistus ensimmäisessä PR:ssä)
- Noudata [Microsoftin avoimen lähdekoodin käytösohjeita](https://opensource.microsoft.com/codeofconduct/) - Noudata [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) -käyttäytymisohjetta
- Katso [CONTRIBUTING.md](./CONTRIBUTING.md) yksityiskohtia varten - Lue yksityiskohtaiset ohjeet [CONTRIBUTING.md](./CONTRIBUTING.md)-tiedostosta
- Viittaa ongelmanumeroihin PR-kuvauksessa tarvittaessa - Mainitse PR-kuvauksessa asiaankuuluvat issue-numerot
### Tarkastusprosessi ### Tarkistusprosessi
- PR:t tarkistetaan ylläpitäjien ja yhteisön toimesta - PR:t tarkistetaan ylläpitäjien ja yhteisön toimesta
- Opetuksellisuus on etusijalla - Opetuksellinen selkeys on etusijalla
- Koodiesimerkkien tulee noudattaa nykyaikaisia parhaita käytäntöjä - Koodiesimerkkien tulee noudattaa hyviä käytäntöjä
- Käännökset tarkistetaan tarkkuuden ja kulttuurisen sopivuuden mukaan - Käännökset tarkistetaan oikeellisuuden ja kulttuurisen sopivuuden osalta
## Käännösjärjestelmä ## Käännösjärjestelmä
@ -264,19 +262,19 @@ Ennen PR:n lähettämistä:
- Käyttää GitHub Actionsia co-op-translator-työnkululla - Käyttää GitHub Actionsia co-op-translator-työnkululla
- Kääntää automaattisesti yli 50 kielelle - Kääntää automaattisesti yli 50 kielelle
- Lähdetiedostot pääkansioissa - Lähtötiedostot ovat päähakemistoissa
- Käännetyt tiedostot hakemistossa `translations/{language-code}/` - Käännetyt tiedostot sijaitsevat `translations/{language-code}/`-kansioissa
### Käsin tehdyt parannukset käännöksiin ### Käsin tehtävien parannusten lisääminen
1. Etsi tiedosto kansiosta `translations/{language-code}/` 1. Etsi tiedosto kansiosta `translations/{language-code}/`
2. Tee parannukset säilyttäen rakenne 2. Tee parannuksia rakenteen säilyttäen
3. Varmista, että koodiesimerkit säilyvät toimivina 3. Varmista, että koodiesimerkit toimivat edelleen
4. Testaa mahdolliset paikallistetut tietovisaosiot 4. Testaa lokalisoitu tietovisasisältö
### Käännöksen metatiedot ### Käännösmetadata
Käännetyt tiedostot sisältävät metatietojen otsikon: Käännetyt tiedostot sisältävät metatietopäätettä:
```markdown ```markdown
<!-- <!--
CO_OP_TRANSLATOR_METADATA: CO_OP_TRANSLATOR_METADATA:
@ -289,120 +287,120 @@ CO_OP_TRANSLATOR_METADATA:
--> -->
``` ```
## Virheiden etsintä ja vianmääritys ## Virheenkorjaus ja vianetsintä
### Yleiset ongelmat ### Yleisiä ongelmia
**Quiz-app ei käynnisty**: **Quiz-sovellus ei käynnisty**:
- Tarkista Node.js-versio (v14+ suositeltu) - Tarkista Node.js:n versio (v14+ suositeltu)
- Poista `node_modules` ja `package-lock.json`, suorita `npm install` uudelleen - Poista `node_modules` ja `package-lock.json`, suorita `npm install` uudelleen
- Tarkista porttikonfliktit (oletuksena: Vite käyttää porttia 5173) - Tarkista, ettei portti ole varattu (Viten oletusportti 5173)
**API-palvelin ei käynnisty**: **API-palvelin ei käynnisty**:
- Varmista, että Node.js-versio täyttää minimivaatimuksen (node >=10) - Varmista, että Node.js:n versio on vähintään 10
- Tarkista, onko portti jo käytössä - Tarkista portin varaus
- Varmista, että kaikki riippuvuudet on asennettu komennolla `npm install` - Varmista, että kaikki riippuvuudet on asennettu komennolla `npm install`
**Selaimen laajennus ei lataudu**: **Selaimen laajennus ei lataudu**:
- Varmista, että manifest.json on oikein muotoiltu - Tarkista, että manifest.json on oikein muotoiltu
- Tarkista selaimen konsolista virheet - Tarkista selainkonsoli virheilmoituksille
- Noudata selainkohtaisia laajennuksen asennusohjeita - Noudata selaimen laajennuksen asennusohjeita
**Python-chat-projektin ongelmat**: **Python-chat-projektin ongelmat**:
- Varmista, että OpenAI-paketti on asennettu: `pip install openai` - Varmista, että OpenAI-paketti on asennettu: `pip install openai`
- Tarkista, että GITHUB_TOKEN-ympäristömuuttuja on asetettu - Tarkista GITHUB_TOKEN-ympäristömuuttuja
- Tarkista GitHub Models -käyttöoikeudet - Varmista GitHub-mallien käyttöoikeudet
**Docsify ei tarjoa dokumentaatiota**: **Docsify ei tarjoa dokumentaatiota**:
- Asenna docsify-cli globaaliin käyttöön: `npm install -g docsify-cli` - Asenna docsify-cli globaalisti: `npm install -g docsify-cli`
- Suorita varaston juuressa - Aja komento arkiston juurihakemistosta
- Varmista, että tiedosto `docs/_sidebar.md` on olemassa - Varmista, että `docs/_sidebar.md` on olemassa
### Kehitysympäristön vinkit ### Kehitysympäristövinkkejä
- Käytä VS Codea ja Live Server -laajennusta HTML-projekteissa - Käytä VS Codea Live Server -laajennuksella HTML-projekteissa
- Asenna ESLint- ja Prettier-laajennukset yhtenäisyyden vuoksi - Asenna ESLint- ja Prettier-laajennukset yhtenäiseen muotoiluun
- Käytä selaimen DevTools-työkaluja JavaScriptin vianetsintään - Hyödynnä selaimen kehittäjätyökaluja JavaScriptin virheenkorjaukseen
- Vue-projekteissa asenna Vue DevTools -selainlaajennus - Vue-projekteissa asenna Vue DevTools -selaimen laajennus
### Suorituskykyyn liittyvät seikat ### Suorituskykysiirtymät
- Suuri määrä käännettyjä tiedostoja (50+ kieltä) tekee kopioinneista isoja - Suuri määrä käännettyjä tiedostoja (yli 50 kieltä) tekee kloonauksesta raskaan
- Käytä matalatasoista kloonausta, jos työskentelet vain sisällön parissa: `git clone --depth 1` - Käytä kevyttä kloonausta, jos työskentelet vain sisällön parissa: `git clone --depth 1`
- Sulje pois käännökset hauista, kun työskentelet englanninkielisen sisällön kanssa - Sulje käännökset hausta, kun työskentelet englanninkielisen sisällön parissa
- Build-prosessit saattavat olla hitaita ensimmäisellä suorituskerralla (npm install, Vite build) - Rakennusprosessit voivat olla hitaita ensimmäisellä suorituskerroilla (npm install, Vite build)
## Turvallisuusnäkökohdat ## Turvallisuusseikat
### Ympäristömuuttujat ### Ympäristömuuttujat
- API-avaimia ei koskaan saa sitoa varastoon - API-avaimia ei saa koskaan tallentaa arkistoon
- Käytä `.env`-tiedostoja (jo kuuluvat `.gitignoreen`) - Käytä `.env`-tiedostoja (joita ei ole versioitu)
- Dokumentoi vaaditut ympäristömuuttujat projektin README-tiedostoissa - Dokumentoi vaaditut ympäristömuuttujat projektien READMEissa
### Python-projektit ### Python-projektit
- Käytä virtuaaliympäristöjä: `python -m venv venv` - Käytä virtuaaliympäristöjä: `python -m venv venv`
- Pidä riippuvuudet ajantasalla - Pidä riippuvuudet ajan tasalla
- GitHub-tokenien käyttöoikeuksien tulee olla vähimmäisvaatimusten mukaisia - GitHub-tokenien käyttöoikeudet tulee olla mahdollisimman rajatut
### GitHub Modelsin käyttö ### GitHub-mallien käyttöoikeus
- Henkilökohtaiset käyttöoikeustokenit (PAT) vaaditaan GitHub Models -pääsyyn - Personaaliset käyttöoikeustokenit (PAT) vaaditaan GitHub-malleihin
- Säilytä tokenit ympäristömuuttujissa - Tokenit tulee säilyttää ympäristömuuttujina
- Älä koskaan tallenna tokeneita tai tunnuksia julkisesti - Älä koskaan tallenna tokeneita tai tunnistetietoja arkistoon
## Lisähuomiot ## Lisätiedot
### Kohdeyleisö ### Kohdeyleisö
- Täysin aloittelijat verkkokehityksessä - Täysin aloittelijat verkkokehityksessä
- Opiskelijat ja itseopiskelijat - Opiskelijat ja itseopiskelijat
- Opettajat, jotka käyttävät opetussuunnitelmaa luokkahuoneissa - Opettajat, jotka käyttävät opetussuunnitelmaa luokkahuoneissa
- Sisältö suunniteltu saavutettavaksi ja asteittain taitoja kehittäväksi - Sisältö on suunniteltu saavutettavaksi ja asteittaisen taitojen kehittämiseen
### Opetuksellinen filosofia ### Opetuksellinen filosofia
- Projektipohjainen oppiminen - Projektipohjainen oppiminen
- Säännölliset tiedon tarkistukset (kyselyt) - Usein toistuvat tietovisat tiedon tarkistamiseen
- Käytännön koodiharjoitukset - Käytännön ohjelmointiharjoitukset
- Todellisten sovellusesimerkkien hyödyntäminen - Todelliset sovellusesimerkit
- Painotus perusasioissa ennen frameworkkeja - Perusteiden hallinta ennen kehysten käyttöä
### Varaston ylläpito ### Arkiston ylläpito
- Aktiivinen oppijoiden ja kontribuenttien yhteisö - Aktiivinen oppijoiden ja osallistujien yhteisö
- Riippuvuuksien ja sisällön säännölliset päivitykset - Riittävä päivitystiheys riippuvuuksiin ja sisältöön
- Ongelmien ja keskustelujen seuraaminen ylläpitäjien toimesta - Issue-ja keskusteluseuranta ylläpitäjien toimesta
- Käännösten päivitys automatisoitu GitHub Actionsilla - Käännösten päivitykset automatisoitu GitHub Actionsin kautta
### Aiheeseen liittyvät resurssit ### Lisäresurssit
- [Microsoft Learnin moduulit](https://docs.microsoft.com/learn/) - [Microsoft Learn -moduulit](https://docs.microsoft.com/learn/)
- [Student Hubin resurssit](https://docs.microsoft.com/learn/student-hub/) - [Student Hub -resurssit](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) suositeltu oppijoille - [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) suositeltu oppijoille
- Lisäkurssit: Generatiivinen AI, Data Science, ML, IoT -opetussuunnitelmat saatavilla - Lisäkursseja: Generatiivinen AI, Data Science, ML, IoT opetussuunnitelmat saatavilla
### Työskentely tietyissä projekteissa ### Työskentely yksittäisten projektien kanssa
Yksityiskohtaiset ohjeet yksittäisistä projekteista löytyvät README-tiedostoista: Yksittäisiä projekteja koskevat ohjeet löytyvät README-tiedostoista:
- `quiz-app/README.md` - Vue 3 tietovisaohjelma - `quiz-app/README.md` Vue 3 quiz-sovellus
- `7-bank-project/README.md` - Pankkisovellus todennuksella - `7-bank-project/README.md` Pankkisovellus autentikoinnilla
- `5-browser-extension/README.md` - Selaimen laajennuksen kehitys - `5-browser-extension/README.md` Selaimen laajennuksen kehitys
- `6-space-game/README.md` - Canvas-pohjainen peli - `6-space-game/README.md` Canvas-pohjainen peli
- `9-chat-project/README.md` - AI-chat-avustajaprojekti - `9-chat-project/README.md` AI-chat avustajajärjestelmä
### Monorepon rakenne ### Monorepo-rakenne
Vaikka tämä ei ole perinteinen monorepo, varastossa on useita itsenäisiä projekteja: Vaikka tämä ei ole perinteinen monorepo, arkistossa on useita itsenäisiä projekteja:
- Jokainen oppitunti on itsenäinen kokonaisuus - Jokainen oppitunti on itsenäinen kokonaisuus
- Projektit eivät jaa riippuvuuksia - Projektit eivät jaa riippuvuuksia
- Työskentele yksittäisten projektien parissa vaikuttamatta muihin - Työskentele projekteissa erikseen toinen toisiinsa vaikuttamatta
- Kloonaa koko varasto saadaksesi koko opetussuunnitelmakokemuksen - Kloonaa koko arkisto saadaksesi täyden opetuskokemuksen
--- ---
<!-- CO-OP TRANSLATOR DISCLAIMER START --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Vastuuvapauslauseke**: **Vastuuvapauslauseke**:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, otathan huomioon, että automaattiset käännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja sen alkuperäiskielisenä versiona tulee pitää auktoritatiivisena lähteenä. Tärkeissä tiedoissa suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä johtuvista väärinymmärryksistä tai tulkinnoista. Tämä asiakirja on käännetty käyttäen tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, ole hyvä ja huomioi, että automaattikäännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja alkuperäiskielellä tulee pitää auktoriteettisena lähteenä. Tärkeiden tietojen osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista.
<!-- CO-OP TRANSLATOR DISCLAIMER END --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -10,29 +10,29 @@
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
# Verkkokehitys aloittelijoille opetussuunnitelma # Verkkokehitys aloittelijoille - Opetussuunnitelma
Opi verkkokehityksen perusteet Microsoft Cloud Advocatesin 12 viikon kattavan kurssin avulla. Jokaisessa 24 oppitunnissa perehdytään JavaScriptiin, CSS:ään ja HTML:ään käytännön projekteilla, kuten terrarioilla, selainlaajennuksilla ja avaruuspeleillä. Osallistu tietovisoihin, keskusteluihin ja käytännön tehtäviin. Kehitä taitojasi ja optimoi tiedon omaksumisesi tehokkaan projektipohjaisen opetustapamme avulla. Aloita koodausmatkasi tänään! Opi verkkokehityksen perusteet kattavalla 12 viikon kurssillamme, jonka on laatinut Microsoft Cloud Advocates. Jokainen 24 oppitunnista syventyy JavaScriptiin, CSS:ään ja HTML:ään käytännön projektien, kuten terraarioiden, selaimen laajennusten ja avaruuspelien kautta. Osallistu tietokilpailuihin, keskusteluihin ja käytännön tehtäviin. Kehitä taitojasi ja optimoi tietojesi omaksuminen tehokkaan projektilähtöisen pedagogiikkamme avulla. Aloita koodausmatkasi tänään!
Liity Azure AI Foundry Discord -yhteisöön Liity Azure AI Foundryn Discord-yhteisöön
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Seuraa näitä vaiheita aloittaaksesi näiden resurssien käytön: Seuraa näitä ohjeita aloittaaksesi näiden resurssien käytön:
1. **Forkkaa repositorio**: Klikkaa [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork) 1. **Forkkaa repositorio**: Klikkaa [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork)
2. **Kloonaa repositorio**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` 2. **Kloonaa repositorio**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Liity Azure AI Foundry Discordiin ja tapaa asiantuntijoita sekä muita kehittäjiä**](https://discord.com/invite/ByRwuEEgH4) 3. [**Liity Azure AI Foundryn Discordiin ja tapaa asiantuntijoita sekä muita kehittäjiä**](https://discord.com/invite/ByRwuEEgH4)
### 🌐 Monikielinen tuki ### 🌐 Monikielinen tuki
#### Tuettu GitHub Actionin kautta (automaattinen ja aina ajan tasalla) #### Tuettu GitHub Actionin kautta (automaattinen & aina ajan tasalla)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START --> <!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](./README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) [Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](./README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **Haluatko kloonata paikallisesti?** > **Haluatko kloonata paikallisesti?**
> >
> Tämä repositorio sisältää yli 50 kielen käännökset, mikä lisää merkittävästi latauskokoa. Jos haluat kloonata ilman käännöksiä, käytä sparse checkoutia: > Tämä repositorio sisältää yli 50 kieliversiota, mikä lisää huomattavasti latauskokoa. Kloonataksesi ilman käännöksiä, käytä sparse checkoutia:
> >
> **Bash / macOS / Linux:** > **Bash / macOS / Linux:**
> ```bash > ```bash
@ -48,86 +48,85 @@ Seuraa näitä vaiheita aloittaaksesi näiden resurssien käytön:
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ``` > ```
> >
> Näin saat kaiken tarvitsemasi kurssin suorittamiseen nopeammalla latauksella. > Saat kaiken tarvittavan kurssin suorittamiseen paljon nopeammalla latauksella.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END --> <!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
**Jos haluat, että muita kieliä tuetaan, ne löytyvät listattuna [täältä](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)** **Jos haluat, että muita käännöskieliä tuetaan, ne löytyvät [täältä](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
[![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Avaa%20Visual%20Studio%20Codessa&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners) [![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Avaa%20Visual%20Studio%20Codeen&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners)
#### 🧑‍🎓 _Oletko opiskelija?_ #### 🧑‍🎓 _Oletko opiskelija?_
Vieraile [**Opiskelijakeskussivulla**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), josta löydät aloittelijoille tarkoitettuja materiaaleja, opiskelijapaketteja ja jopa tapoja saada ilmainen todistusvakuuttaja. Tämä sivu kannattaa lisätä kirjanmerkkeihin ja tarkistaa säännöllisesti, sillä päivitätämme sisältöä kuukausittain. Vieraile [**Student Hub -sivulla**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon), josta löydät aloittelijoille suunnattuja resursseja, opiskelijapaketit ja jopa tapoja saada ilmainen todistuksen voucher. Tämä sivu kannattaa lisätä kirjanmerkkeihin ja tarkistaa säännöllisesti, koska sisältö vaihtuu kuukausittain.
### 📣 Ilmoitus Uudet GitHub Copilot Agent -tilahaasteet suoritettavaksi! ### 📣 Ilmoitus - Uudet GitHub Copilot Agent -tilahaasteet suoritettavaksi!
Uusi haaste lisätty, etsi "GitHub Copilot Agent Challenge 🚀" useimmista luvuista. Tämä on uusi haaste, jonka voit suorittaa käyttämällä GitHub Copilotia ja Agent-tilaa. Jos et ole käyttänyt Agent-tilaa aiemmin, se ei vain luo tekstiä, vaan voi myös luoda ja muokata tiedostoja, suorittaa komentoja ja muuta. Uusi haaste lisätty, etsi "GitHub Copilot Agent Challenge 🚀" useimmista luvuista. Tämä on uusi haaste, jonka voit suorittaa käyttäen GitHub Copilotia ja Agent-tilaa. Jos et ole aiemmin käyttänyt Agent-tilaa, se pystyy tuottamaan ei pelkästään tekstiä, vaan myös luomaan ja muokkaamaan tiedostoja, suorittamaan komentoja ja muuta.
### 📣 Ilmoitus _Uusi Generatiivisen tekoälyn projekti_ ### 📣 Ilmoitus - _Uusi projekti rakennettavaksi Generatiivisella AI:lla_
Uusi tekoälyavustajaprojekti lisätty, tutustu projektiin [tästä](./9-chat-project/README.md) Uusi AI-avustajaprojekti juuri lisätty, tutustu [projektiin](./9-chat-project/README.md)
### 📣 Ilmoitus _Uusi Generatiivisen tekoälyn opetussuunnitelma JavaScriptille julkaistu_ ### 📣 Ilmoitus - _Uusi opetussuunnitelma_ Generatiivisesta AI:sta JavaScriptille juuri julkaistu
Älä missaa uutta Generatiivisen tekoälyn opetussuunnitelmaamme! Älä missaa uutta Generatiivisen AI:n opetussuunnitelmaamme!
Aloita osoitteessa [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course)! Siirry sivulle [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) aloittaaksesi!
![Background](../../translated_images/fi/background.148a8d43afde5730.webp) ![Tausta](../../translated_images/fi/background.148a8d43afde5730.webp)
- Oppitunnit kattavat kaiken perusasioista RAG:iin. - Oppitunnit kattavat kaiken perusteista RAG:iin saakka.
- Keskustele historiallisten hahmojen kanssa GenAI:n ja sovelluksemme avulla. - Keskustele historiallisten hahmojen kanssa GenAI:n ja kumppanisovelluksemme avulla.
- Hauska ja mukaansatempaava kertomus, jossa matkustat ajassa! - Hauska ja mukaansatempaava kertomus, jossa aikamatkustat!
![character](../../translated_images/fi/character.5c0dd8e067ffd693.webp) ![Hahmo](../../translated_images/fi/character.5c0dd8e067ffd693.webp)
Jokaisessa oppitunnissa on suoritettava tehtävä, tietotesti ja haaste, jotka ohjaavat oppimaan aiheita kuten:
Jokaisessa oppitunnissa on suoritettava tehtävä, tiedon tarkistus ja haaste, jotka ohjaavat sinua oppimaan mm.: - Kehote- ja prompteinsinööritaito
- Käskyttäminen ja kehotteiden suunnittelu - Tekstin ja kuvan sovellustuotanto
- Tekstin ja kuvan sovellusgenerointi
- Hakusovellukset - Hakusovellukset
Aloita osoitteessa [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) Siirry sivulle [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) aloittaaksesi!
## 🌱 Aloita ## 🌱 Aloittaminen
> **Opettajat**, olemme [sisällyttäneet joitain ehdotuksia](for-teachers.md) opetussuunnitelman käyttöön. Haluaisimme kuulla palautettanne [keskustelufoorumillamme](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)! > **Opettajat**, olemme lisänneet [joitakin ehdotuksia](for-teachers.md) tämän opetussuunnitelman käyttöön. Arvostamme palautettanne [keskustelufoorumillamme](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
**[Oppijat](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, aloita jokainen oppitunti esiluennon tietovisalla ja jatka lukemalla luentomateriaali, suorittamalla erilaisia aktiviteetteja ja testaa ymmärryksesi jälkiluennon tietovisalla. **[Oppijat](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, jokaiselle oppitunnille, aloita ennakko-oppitentin tekemisellä ja etene lukemalla luentomateriaali, suorittamalla erilaiset tehtävät ja tarkista ymmärryksesi jälkitentin avulla.
Paranna oppimiskokemustasi tekemällä projekteja yhdessä muiden kanssa! Keskustelua suositellaan [keskustelufoorumillamme](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), jossa moderaattoritiimimme on käytettävissä vastaamaan kysymyksiisi. Parantaaksesi oppimiskokemustasi, yhdistä voimasi vertaistesi kanssa projektien parissa! Keskusteluja suositaan [keskustelufoorumillamme](https://github.com/microsoft/Web-Dev-For-Beginners/discussions), jossa moderaattoritiimimme on valmiina vastaamaan kysymyksiisi.
Koulutuksesi tueksi suosittelemme tutustumaan [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) -sivustoon lisämateriaalien saamiseksi. Koulutuksesi syventämiseksi suosittelemme lämpimästi tutustumaan [Microsoft Learniin](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) lisäoppimateriaaleja varten.
### 📋 Ympäristön käyttöönotto ### 📋 Ympäristön asennus
Tässä opetussuunnitelmassa on valmis kehitysympäristö! Voit aloittaa käyttämällä kurssia [Codespacessa](https://github.com/features/codespaces/) (_selaimessa toimiva, ilman asennuksia toimiva ympäristö_) tai paikallisesti tietokoneellasi tekstieditorilla, kuten [Visual Studio Codella](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon). Tässä opetussuunnitelmassa on kehitysympäristö valmiina käytettäväksi! Aloittaessasi voit valita opetussuunnitelman ajamisen [Codespace](https://github.com/features/codespaces/) -ympäristössä (_selainpohjainen, ei asennuksia tarvitseva ympäristö_) tai paikallisesti tietokoneellasi käyttämällä tekstieditoria, kuten [Visual Studio Codea](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### Luo oma repositoriosi #### Luo oma repositoriosi
Jotta voit helposti tallentaa työsi, suosittelemme, että luot oman kopion tästä repositoriosta. Voit tehdä tämän klikkaamalla sivun yläosassa olevaa **Use this template** -painiketta. Tämä luo uuden repositorion GitHub-tilillesi kopiona opetussuunnitelmasta. Jotta voit helposti tallentaa työsi, on suositeltavaa luoda oma kopio tästä repositoriosta. Voit tehdä sen klikkaamalla sivun ylälaidassa olevaa **Use this template** -painiketta. Tämä luo uuden repositorion GitHub-tilillesi, jossa on kopio opetussuunnitelmasta.
Noudata näitä ohjeita: Seuraa nämä vaiheet:
1. **Forkkaa repositorio**: Klikkaa sivun oikeassa yläkulmassa "Fork" -painiketta. 1. **Forkkaa repositorio**: Klikkaa "Fork" -painiketta tämän sivun oikeassa yläkulmassa.
2. **Kloonaa repositorio**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` 2. **Kloonaa repositorio**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### Opetussuunnitelman suorittaminen Codespacessa #### Opetussuunnitelman suorittaminen Codespacessa
Omaasi luodussa kopiossa klikkaa **Code** -painiketta ja valitse **Open with Codespaces**. Tämä luo sinulle uuden Codespace-ympäristön työskentelyä varten. Luo omaan kopioosi tästä repositoriosta, jonka teit, klikkaa **Code** -painiketta ja valitse **Open with Codespaces**. Tämä luo sinulle uuden Codespace-ympäristön työskentelyä varten.
![Codespace](../../translated_images/fi/createcodespace.0238bbf4d7a8d955.webp) ![Codespace](../../translated_images/fi/createcodespace.0238bbf4d7a8d955.webp)
#### Opetussuunnitelman suorittaminen paikallisesti tietokoneellasi #### Opetussuunnitelman suorittaminen paikallisesti tietokoneellasi
Kurssin ajamiseen paikallisesti tietokoneellasi tarvitset tekstieditorin, selaimen ja komentorivityökalun. Ensimmäinen oppituntimme, [Ohjelmointikielten ja työkalujen esittely](../../1-getting-started-lessons/1-intro-to-programming-languages), esittelee eri vaihtoehtoja näille työkaluilla, jotta voit valita sinulle parhaiten sopivat. Suorittaaksesi tämän opetussuunnitelman paikallisesti tietokoneellasi tarvitset tekstieditorin, selaimen ja komentorivityökalun. Ensimmäinen oppituntimme, [Johdanto ohjelmointikieliin ja työkaluihin](../../1-getting-started-lessons/1-intro-to-programming-languages), opastaa sinua erilaisten työkaluvaihtoehtojen läpi, joista voit valita sinulle parhaiten sopivat.
Suosittelemme käyttämään tekstieditorina [Visual Studio Codea](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon), jossa on myös sisäänrakennettu [Pääte](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Voit ladata Visual Studio Coden [tästä](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon). Suosittelemme käyttämään editorina [Visual Studio Codea](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon), jossa on myös sisäänrakennettu [Komentorivi](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Voit ladata Visual Studio Coden [tästä](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
1. Kloonaa varastosi tietokoneellesi. Voit tehdä tämän napsauttamalla **Code**-painiketta ja kopioimalla URL-osoitteen: 1. Kloonaa arkistosi tietokoneellesi. Voit tehdä tämän napsauttamalla **Code**-painiketta ja kopioimalla URL-osoitteen:
[CodeSpace](./images/createcodespace.png) [CodeSpace](./images/createcodespace.png)
Sitten avaa [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) [Visual Studio Codessa](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) ja suorita seuraava komento, korvaten `<your-repository-url>` juuri kopioimallasi URL-osoitteella: Avaa sitten [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) [Visual Studio Codessa](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) ja suorita seuraava komento korvaten `<your-repository-url>` juuri kopioimallasi URL-osoitteella:
```bash ```bash
git clone <your-repository-url> git clone <your-repository-url>
@ -138,80 +137,80 @@ Suosittelemme käyttämään tekstieditorina [Visual Studio Codea](https://code.
> Suositellut Visual Studio Code -laajennukset: > Suositellut Visual Studio Code -laajennukset:
> >
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - esikatsella HTML-sivuja Visual Studio Codessa > * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - HTML-sivujen esikatselua varten Visual Studio Codessa
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - auttaa sinua kirjoittamaan koodia nopeammin > * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - auttaa sinua kirjoittamaan koodia nopeammin
## 📂 Jokainen oppitunti sisältää: ## 📂 Jokainen oppitunti sisältää:
- valinnaisen luonnosmuistiinpanon - valinnaisen sketchnoten
- valinnaisen lisävideon - valinnaisen tukevan videon
- lämmittelykyselyn ennen oppituntia - lämmittelykyselyn ennen oppituntia
- kirjallisen oppitunnin - kirjallisen oppitunnin
- projektipohjaisissa oppitunneissa vaiheittaiset ohjeet projektin rakentamiseen - projektipohjaisissa oppitunneissa vaiheittaiset ohjeet projektin rakentamiseen
- tietovisakokeet - tietämyksen tarkistukset
- haasteen - haasteen
- lisälukemista - tukevan lukemisen
- tehtävän - tehtävän
- [oppitunnin jälkeisen tietovisan](https://ff-quizzes.netlify.app/web/) - [oppitunnin jälkeisen kyselyn](https://ff-quizzes.netlify.app/web/)
> **Muistutus tietovisoista**: Kaikki tietovisat löytyvät Quiz-app-kansiosta, yhteensä 48 tietovisaa, joissa jokaisessa on kolme kysymystä. Ne ovat saatavilla [tässä](https://ff-quizzes.netlify.app/web/). Tietovisasovellus voidaan suorittaa paikallisesti tai ottaa käyttöön Azureen; seuraa ohjeita `quiz-app`-kansiossa. > **Huomio kyselyistä**: Kaikki kyselyt ovat Quiz-app-kansiossa, yhteensä 48 kyselyä, joissa jokaisessa on kolme kysymystä. Ne ovat saatavilla [tästä](https://ff-quizzes.netlify.app/web/). Kyselysovellusta voi käyttää paikallisesti tai ottaa käyttöön Azuren kautta; noudata ohjeita `quiz-app`-kansiossa.
## 🗃️ Oppitunnit ## 🗃️ Oppitunnit
| | Projektin nimi | Opitut käsitteet | Oppimistavoitteet | Linkitetty oppitunti | Tekijä | | | Projektin nimi | Käsitellyt käsitteet | Oppimistavoitteet | Linkitetty oppitunti | Tekijä |
| :-: | :-------------------------------------------------------: | :--------------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: | | :-: | :----------------------------------------------------------: | :------------------------------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 01 | Aloittaminen | Johdatus ohjelmointiin ja työkaluihin | Opit useimpien ohjelmointikielten perusteet ja ohjelmistot, jotka auttavat ammattilaiskehittäjiä työssään | [Johdatus ohjelmointikieliin ja työkaluihin](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine | | 01 | Getting Started | Ohjelmoinnin perusteet ja työkalut | Opi useimpien ohjelmointikielten perustukset ja ohjelmistot, jotka auttavat ammattilaiskehittäjiä työssään | [Johdatus ohjelmointikieliin ja työkaluihin](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Aloittaminen | GitHubin perusteet, mukaan lukien tiimityö | Kuinka käyttää GitHubia projektissasi, miten tehdä yhteistyötä muiden kanssa koodipohjassa | [Johdatus GitHubiin](./1-getting-started-lessons/2-github-basics/README.md) | Floor | | 02 | Getting Started | GitHubin perusteet, sisältää yhteistyön tiimissä | Kuinka käyttää GitHubia projektissasi, miten tehdä yhteistyötä muiden kanssa koodikannan parissa | [Johdatus GitHubiin](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Aloittaminen | Saavutettavuus | Opit verkkosaavutettavuuden perusteet | [Saavutettavuuden perusteet](./1-getting-started-lessons/3-accessibility/README.md) | Christopher | | 03 | Getting Started | Esteettömyys | Opi verkkosisällön saavutettavuuden perusteet | [Esteettömyyden perusteet](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | JS Perusteet | JavaScriptin tietotyypit | JavaScriptin tietotyyppien perusteet | [Tietotyypit](./2-js-basics/1-data-types/README.md) | Jasmine | | 04 | JS Basics | JavaScriptin tietotyypit | JavaScriptin tietotyyppien perusteet | [Tietotyypit](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | JS Perusteet | Funktiot ja metodit | Opit funktioista ja metodeista sovelluksen loogisen virran hallintaan | [Funktiot ja metodit](./2-js-basics/2-functions-methods/README.md) | Jasmine ja Christopher | | 05 | JS Basics | Funktiot ja metodit | Opi funktioista ja metodeista sovelluksen logiikan hallinnassa | [Funktiot ja metodit](./2-js-basics/2-functions-methods/README.md) | Jasmine ja Christopher |
| 06 | JS Perusteet | Päätöksenteko JavaScriptillä | Opit luomaan ehtoja koodissasi päätöksentekomenetelminä | [Päätöksenteko](./2-js-basics/3-making-decisions/README.md) | Jasmine | | 06 | JS Basics | Päätöksenteko JS:llä | Opi luomaan ehtoisuuksia koodissasi päätöksentekomenetelmillä | [Päätöksenteko](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | JS Perusteet | Taulukot ja silmukat | Työskentele tietojen kanssa taulukoiden ja silmukoiden avulla JavaScriptissä | [Taulukot ja silmukat](./2-js-basics/4-arrays-loops/README.md) | Jasmine | | 07 | JS Basics | Taulukot ja silmukat | Työskentele datan kanssa taulukoiden ja silmukoiden avulla JavaScriptissä | [Taulukot ja silmukat](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML käytännössä | Rakenna HTML verkossa toimivan terrariumin luomiseen keskittyen asettelun rakentamiseen | [Johdatus HTML:ään](./3-terrarium/1-intro-to-html/README.md) | Jen | | 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML käytännössä | Rakenna HTML luodaksesi verkkoterraarion keskittyen asettelun rakentamiseen | [Johdatus HTML:ään](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS käytännössä | Rakenna CSS tyylitämään verkossa olevaa terrariumia, keskittyen CSS:n perusteisiin ja sivun responsiivisuuden tekemiseen | [Johdatus CSS:ään](./3-terrarium/2-intro-to-css/README.md) | Jen | | 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS käytännössä | Luo CSS tyylitelläksesi verkkoterraariota, keskittyen CSS:n perusteisiin ja sivun responsiivisuuteen | [Johdatus CSS:ään](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript-sulkeet, DOM-manipulointi | Rakenna JavaScript, joka mahdollistaa terrariumin toiminnan drag & drop -käyttöliittymänä, keskittyen sulkeisiin ja DOM-manipulointiin | [JavaScript-sulkeet, DOM-manipulointi](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | | 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript Closuret, DOM-manipulointi | Rakenna JavaScript, joka tekee terrariumin toimivaksi drag/drop-käyttöliittymänä, keskittyen closureihin ja DOM-manipulointiin | [JavaScript Closuret, DOM-manipulointi](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Typing Game](./4-typing-game/solution/README.md) | Rakennetaan kirjoituspeli | Opit käyttämään näppäimistötapahtumia JavaScript-sovelluksesi logiikan ohjaamiseen | [Tapahtumapohjainen ohjelmointi](./4-typing-game/typing-game/README.md) | Christopher | | 11 | [Typing Game](./4-typing-game/solution/README.md) | Typing-pelin rakentaminen | Opi käyttämään näppäimistötapahtumia JavaScript-sovelluksesi logiikan ohjaamiseen | [Tapahtumaohjautuva ohjelmointi](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Työskentely selainten kanssa | Opi miten selaimet toimivat, niiden historiasta ja miten rakennetaan selaimen laajennuksen ensimmäiset osat | [Tietoa selaimista](./5-browser-extension/1-about-browsers/README.md) | Jen | | 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Toimiminen selaimissa | Opi, miten selaimet toimivat, niiden historia ja miten rakentaa selaimien laajennuksen ensimmäiset elementit | [Tietoa selaimista](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Lomakkeen rakentaminen, API-kutsu ja muuttujien tallennus paikalliseen tallennustilaan | Rakenna JavaScript-selaimen laajennuksen osat, jotka käyttävät API-kutsua paikalliseen tallennustilaan tallennettujen muuttujien avulla | [API:t, lomakkeet ja paikallinen tallennustila](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | | 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Lomakkeen rakentaminen, API:n käyttäminen ja muuttujien tallentaminen paikalliseen muistiin | Rakenna selainlaajennuksen JavaScript-elementit API-kutsujen tekemiseen käyttäen paikalliseen muistiin tallennettuja muuttujia | [API:t, lomakkeet ja paikallinen muisti](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Taustaprosessit selaimessa, web-suorituskyky | Käytä selaimen taustaprosesseja laajennuksen kuvakkeen hallintaan; opi web-suorituskyvystä ja joistakin optimoinneista | [Taustatehtävät ja suorituskyky](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | | 14 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Taustaprosessit selaimessa ja verkkosuorituskyky | Käytä selaimen taustaprosesseja laajennuksen kuvakkeen hallintaan; opi verkkosuorituskyvystä ja joistakin optimoinneista | [Taustatehtävät ja suorituskyky](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Space Game](./6-space-game/solution/README.md) | Edistyneempi pelikehitys JavaScriptillä | Opit perinnöstä käyttäen sekä luokkia että koostetta sekä julkaisija-tilaaja-mallia pelin rakentamisen valmisteluna | [Johdatus edistyneeseen pelikehitykseen](./6-space-game/1-introduction/README.md) | Chris | | 15 | [Space Game](./6-space-game/solution/README.md) | Edistyneempi pelinkehitys JavaScriptillä | Opi perinnäisyydestä käyttäen sekä luokkia että koostetta sekä Pub/Sub-mallista pelin rakentamista varten | [Johdatus edistyneeseen pelinkehitykseen](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Space Game](./6-space-game/solution/README.md) | Piirtäminen canvas-elementtiin | Opit Canvas API:n, jota käytetään elementtien piirtämiseen näyttöön | [Piirtäminen canvas-elementtiin](./6-space-game/2-drawing-to-canvas/README.md) | Chris | | 16 | [Space Game](./6-space-game/solution/README.md) | Piirtäminen canvakselle | Opi Canvas API:sta, jota käytetään elementtien piirtämiseen näytölle | [Piirtäminen canvakselle](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Space Game](./6-space-game/solution/README.md) | Elementtien liikuttaminen näytöllä | Tutustu miten elementeille saadaan liikettä kartesiakkoordinaattien ja Canvas API:n avulla | [Elementtien liikuttaminen](./6-space-game/3-moving-elements-around/README.md) | Chris | | 17 | [Space Game](./6-space-game/solution/README.md) | Elementtien liikuttaminen näytöllä | Tutustu, miten elementtejä voi liikuttaa käyttäen karteesisia koordinaatteja ja Canvas API:a | [Elementtien liikuttaminen](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Space Game](./6-space-game/solution/README.md) | Törmäyksentunnistus | Tee elementtien törmäyksiä ja reagoi niihin käyttämällä näppäimistön painalluksia ja tarjoa cooldown-toiminto pelin suorituskyvyn turvaamiseksi | [Törmäyksentunnistus](./6-space-game/4-collision-detection/README.md) | Chris | | 18 | [Space Game](./6-space-game/solution/README.md) | Törmäysten havaitseminen | Tee elementtien törmäämisestä ja reagoimisesta toisiinsa näppäinpainallusten avulla ja lisää cooldown-toiminto pelin suorituskyvyn varmistamiseksi | [Törmäysten havaitseminen](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Space Game](./6-space-game/solution/README.md) | Pisteiden laskeminen | Suorita laskelmia pelin tilan ja suorituskyvyn pohjalta | [Pisteiden laskeminen](./6-space-game/5-keeping-score/README.md) | Chris | | 19 | [Space Game](./6-space-game/solution/README.md) | Pisteiden seuranta | Tee matemaattisia laskelmia pelin tilan ja suorituskyvyn perusteella | [Pisteiden seuranta](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Space Game](./6-space-game/solution/README.md) | Pelin lopettaminen ja uudelleenkäynnistäminen | Opit pelin lopettamisesta ja uudelleenkäynnistämisestä, mukaan lukien resurssien siivous ja muuttujien arvon nollaaminen | [Lopetusehto](./6-space-game/6-end-condition/README.md) | Chris | | 20 | [Space Game](./6-space-game/solution/README.md) | Pelin lopetus ja uudelleen käynnistys | Opi pelin lopettamisesta ja uudelleenkäynnistyksestä, mukaan lukien resurssien siivouksesta ja muuttujien nollauksesta | [Lopetusehto](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Banking App](./7-bank-project/solution/README.md) | HTML-mallipohjat ja reitit web-sovelluksessa | Opit luomaan monisivuisen verkkosivuston arkkitehtuurin rungon reitityksen ja HTML-mallipohjien avulla | [HTML-mallipohjat ja reitit](./7-bank-project/1-template-route/README.md) | Yohan | | 21 | [Banking App](./7-bank-project/solution/README.md) | HTML-mallit ja reititys web-sovelluksessa | Opi luomaan monisivuisen verkkosivuston runko reitityksen ja HTML-mallien avulla | [HTML-mallit ja reititys](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Banking App](./7-bank-project/solution/README.md) | Kirjautumis- ja rekisteröintilomakkeen rakentaminen | Opit lomakkeiden rakentamisesta ja validointirutiinien käsittelystä | [Lomakkeet](./7-bank-project/2-forms/README.md) | Yohan | | 22 | [Banking App](./7-bank-project/solution/README.md) | Kirjautumis- ja rekisteröitymislomakkeen rakentaminen | Opi lomakkeiden rakentamisesta ja validoinnin käsittelystä | [Lomakkeet](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Banking App](./7-bank-project/solution/README.md) | Tietojen hakemisen ja käyttämisen menetelmät | Miten tiedot virtaavat sovellukseesi ja siitä ulos, miten hakea, tallentaa ja poistaa niitä | [Data](./7-bank-project/3-data/README.md) | Yohan | | 23 | [Banking App](./7-bank-project/solution/README.md) | Tietojen hakemisen ja käytön menetelmät | Kuinka tieto virtaa sovelluksessasi, miten sitä haetaan, tallennetaan ja hävitetään | [Tieto](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Banking App](./7-bank-project/solution/README.md) | Tilanhallinnan käsitteet | Opit miten sovelluksesi säilyttää tilan ja miten hallita sitä ohjelmallisesti | [Tilanhallinta](./7-bank-project/4-state-management/README.md) | Yohan | | 24 | [Banking App](./7-bank-project/solution/README.md) | Tilanhallinnan käsitteet | Opi, miten sovelluksesi säilyttää tilaa ja hallinnoi sitä ohjelmallisesti | [Tilanhallinta](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Browser/VScode Code](../../8-code-editor) | Työskentely VScoden kanssa | Opit käyttämään koodieditoria | [Käytä VScode-koodieditoria](./8-code-editor/1-using-a-code-editor/README.md) | Chris | | 25 | [Browser/VScode Code](../../8-code-editor) | Työskentely VScoden kanssa | Opi käyttämään koodieditoria| [Käytä VScode-koodieditoria](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI Assistants](./9-chat-project/README.md) | Työskentely tekoälyn kanssa | Opit rakentamaan oman tekoälyavustajan | [Tekoälyavustajan projekti](./9-chat-project/README.md) | Chris | | 26 | [AI Assistants](./9-chat-project/README.md) | Työskentely tekoälyn kanssa | Opi rakentamaan oma tekoälyavustajasi | [Tekoälyavustajaprojekti](./9-chat-project/README.md) | Chris |
## 🏫 Pedagogiikka ## 🏫 Pedagogiikka
Opetussuunnitelmamme on suunniteltu kahden keskeisen pedagogisen periaatteen mukaisesti: Oppimateriaalimme on suunniteltu kahden keskeisen pedagogisen periaatteen pohjalta:
* projektipohjainen oppiminen * projektipohjainen oppiminen
* usein toistuvat tietovisat * säännölliset kyselyt
Ohjelma opettaa JavaScriptin, HTML:n ja CSS:n perusasiat sekä viimeisimmät työkalut ja tekniikat, joita nykypäivän web-kehittäjät käyttävät. Opiskelijat saavat käytännön kokemusta rakentamalla kirjoituspelin, virtuaalisen terrariumin, ympäristöystävällisen selainlaajennuksen, avaruustyyppisen pelin ja yrityksille tarkoitetun pankkisovelluksen. Sarjan lopussa opiskelijat ovat saaneet vahvan ymmärryksen web-kehityksestä. Ohjelma opettaa JavaScriptin, HTML:n ja CSS:n perusteet sekä uusimmat työkalut ja tekniikat, joita nykypäivän web-kehittäjät käyttävät. Opiskelijat saavat käytännön kokemusta rakentamalla kirjoituspelin, virtuaalisen terrarion, ympäristöystävällisen selainlaajennuksen, avaruuslajin pelin sekä pankkisovelluksen yrityksille. Sarjan lopuksi opiskelijoilla on vankka ymmärrys web-kehityksestä.
> 🎓 Voit suorittaa tämän opetussuunnitelman ensimmäiset oppitunnit Microsoft Learnin [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) -kurssina! > 🎓 Voit suorittaa tämän oppimateriaalin ensimmäiset oppitunnit osana [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) -opintopolkua Microsoft Learnissä!
Varmistamalla, että sisältö vastaa projekteja, prosessi on opiskelijoille kiinnostavampi ja käsitteiden oppiminen parantuu. Kirjoitimme myös useita JavaScriptin perusteiden aloitusoppitunteja käsitteiden esittelemiseksi, parina videona "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" -videosarjasta, jonka osan tekijöistä osallistui tähän opetussuunnitelmaan. Sisällön linkittäminen projekteihin tekee prosessista opiskelijalle mielekkäämpää ja käsitteiden muistaminen paranee. Kirjoitimme myös useita aloittavia JavaScriptin perusteisiin keskittyviä oppitunteja, joissa perehdytään käsitteisiin, ja ne ovat parina videon kanssa "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" kokoelmasta, jonka osa tekijöistä osallistui tämän oppimateriaalin laadintaan.
Lisäksi ennen luokkaa suoritettava pieni tietovisa asettaa opiskelijan tavoitteeksi aiheen oppimisen, ja toinen tietovisa luokan jälkeen varmistaa syvemmän oppimisen. Tämä opetussuunnitelma on suunniteltu joustavaksi ja hauskaksi, ja se voidaan suorittaa kokonaan tai osittain. Projektit alkavat pieninä ja kasvavat monimutkaisemmiksi 12 viikon jakson loppua kohden. Lisäksi kevyt kysely ennen luentoa asettaa opiskelijan opiskelutavoitetta ja toinen kysely luennon jälkeen varmistaa sisällön parempaa omaksumista. Tämä oppimateriaali on tarkoitettu joustavaksi ja hauskaksi, ja sen voi suorittaa kokonaan tai osittain. Projektit alkavat yksinkertaisista ja monimutkaistuvat 12 viikon jaksolla.
Vaikka olemme tietoisesti välttäneet JavaScript-kehysten esittelyä keskittyäksemme perusosaamiseen web-kehittäjänä ennen kehysten käyttöönottoa, hyvä seuraava askel tämän opetussuunnitelman jälkeen olisi Node.js:n opettelu toisen videosarjan avulla: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)". Vaikka tarkoituksella vältimme JavaScript-kirjastojen esittelyä keskittyäksemme verkkokehittäjän perustaitoihin ennen kirjastoihin siirtymistä, seuraava hyvä askel tämän oppimateriaalin jälkeen olisi Node.js:n opiskelu toisen videosarjan avulla: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> Tutustu [käyttäytymissääntöihimme](CODE_OF_CONDUCT.md) ja [osallistumisohjeisiin](CONTRIBUTING.md). Otamme mielellämme vastaan rakentavaa palautettasi! > Tutustu [käyttäytymissääntöihimme](CODE_OF_CONDUCT.md) ja [osallistumisohjeisiimme](CONTRIBUTING.md). Otamme mielellämme vastaan rakentavaa palautettasi!
## 🧭 Offline-käyttö ## 🧭 Offline-käyttö
Voit käyttää tätä dokumentaatiota offline-tilassa käyttämällä [Docsify](https://docsify.js.org/#/). Haarauta tämä repo, asenna [Docsify](https://docsify.js.org/#/quickstart) paikalliselle koneellesi ja kirjoita tämän reposton juurikansiossa `docsify serve`. Verkkosivusto palvelee portissa 3000 paikallisessa isäntäkoneessasi: `localhost:3000`. Voit käyttää tätä dokumentaatiota offline-tilassa käyttämällä [Docsify](https://docsify.js.org/#/). Haarauta tämä arkisto, [asenna Docsify](https://docsify.js.org/#/quickstart) paikallisesti koneellesi, ja kirjoita tämän arkiston juurikansiossa `docsify serve`. Sivusto palvelee portissa 3000 paikallisessa ympäristössä: `localhost:3000`.
## 📘 PDF ## 📘 PDF
Kaikkien oppituntien PDF löytyy täältä [here](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf). Kaikkiin oppitunteihin liittyvän PDF:n löydät täältä [here](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
## 🎒 Muut kurssit ## 🎒 Muut kurssit
@ -233,7 +232,7 @@ Tiimimme tuottaa myös muita kursseja! Tutustu:
--- ---
### Generative AI Series ### Generatiivinen tekoäly -sarja
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
@ -241,7 +240,7 @@ Tiimimme tuottaa myös muita kursseja! Tutustu:
--- ---
### Core Learning ### Perusopiskelu
[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
@ -252,7 +251,7 @@ Tiimimme tuottaa myös muita kursseja! Tutustu:
--- ---
### Copilot Series ### Copilot-sarja
[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) [![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
@ -260,21 +259,21 @@ Tiimimme tuottaa myös muita kursseja! Tutustu:
## Apua ## Apua
Jos jäät jumiin tai sinulla on kysyttävää tekoälysovellusten rakentamisesta, liity oppijoiden ja kokeneiden kehittäjien keskusteluihin MCP:stä. Se on kannustava yhteisö, jossa kysymykset ovat tervetulleita ja tieto jaetaan vapaasti. Jos juutut tai sinulla on kysyttävää tekoälysovellusten rakentamisesta, liity muiden oppijoiden ja kokeneiden kehittäjien keskusteluihin MCP:stä. Se on kannustava yhteisö, jossa kysymykset ovat tervetulleita ja tieto jaetaan vapaasti.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Jos sinulla on tuotepalautetta tai kohtaat virheitä rakennuksen aikana, käy osoitteessa: Jos sinulla on palautetta tuotteesta tai löydät virheitä rakentaessasi, käy:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Lisenssi ## Lisenssi
Tämä arkisto on lisensoitu MIT-lisenssillä. Lisätietoja saat tiedostosta [LICENSE](../../LICENSE). Tämä arkisto on lisensoitu MIT-lisenssillä. Katso lisätietoja [LICENSE](../../LICENSE)-tiedostosta.
--- ---
<!-- CO-OP TRANSLATOR DISCLAIMER START --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Vastuuvapauslauseke**: **Vastuuvapauslauseke**:
Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, ota huomioon, että automaattikäännökset saattavat sisältää virheitä tai epätarkkuuksia. Alkuperäinen asiakirja omalla kielellään on virallinen ja luotettava lähde. Tärkeissä asioissa suosittelemme ammattimaista ihmis kääntäjän tekemää käännöstä. Emme ole vastuussa mahdollisista väärinymmärryksistä tai tulkinnoista, jotka johtuvat tämän käännöksen käytöstä. Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, ota huomioon, että automaattikäännöksissä saattaa esiintyä virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen omalla kielellä tulisi pitää virallisena lähteenä. Tärkeiden tietojen osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä johtuvista väärinymmärryksistä tai tulkinnoista.
<!-- CO-OP TRANSLATOR DISCLAIMER END --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -493,7 +493,7 @@
}, },
"AGENTS.md": { "AGENTS.md": {
"original_hash": "a362efd06d64d4134a0cfe8515a86d34", "original_hash": "a362efd06d64d4134a0cfe8515a86d34",
"translation_date": "2026-03-27T18:54:23+00:00", "translation_date": "2026-04-06T18:15:06+00:00",
"source_file": "AGENTS.md", "source_file": "AGENTS.md",
"language_code": "no" "language_code": "no"
}, },
@ -516,8 +516,8 @@
"language_code": "no" "language_code": "no"
}, },
"README.md": { "README.md": {
"original_hash": "a2c9eed480687319517c08a6319e5536", "original_hash": "b885c87c7544109b78d6684daad6cba6",
"translation_date": "2026-03-06T18:19:02+00:00", "translation_date": "2026-04-06T18:11:05+00:00",
"source_file": "README.md", "source_file": "README.md",
"language_code": "no" "language_code": "no"
}, },

@ -2,29 +2,29 @@
## Prosjektoversikt ## Prosjektoversikt
Dette er et pedagogisk pensum-repositorium for å lære grunnleggende webutvikling til nybegynnere. Pensumet er et omfattende 12-ukers kurs utviklet av Microsoft Cloud Advocates, med 24 praktiske leksjoner som dekker JavaScript, CSS og HTML. Dette er et utdanningspensum-repositorium for å lære grunnleggende webutvikling til nybegynnere. Pensumet er et omfattende 12-ukers kurs utviklet av Microsoft Cloud Advocates, som inneholder 24 praktiske leksjoner om JavaScript, CSS og HTML.
### Nøkkelkomponenter ### Nøkkelkomponenter
- **Pedagogisk innhold**: 24 strukturerte leksjoner organisert i prosjektbaserte moduler - **Utdanningsinnhold**: 24 strukturerte leksjoner organisert i prosjektbaserte moduler
- **Praktiske prosjekter**: Terrarium, Typingspill, Nettleserutvidelse, Romspill, Bankapp, Kodeeditor og AI-chatassistent - **Praktiske prosjekter**: Terrarium, Typing Game, Browser Extension, Space Game, Banking App, Code Editor, og AI Chat Assistant
- **Interaktive quizer**: 48 quizer med 3 spørsmål hver (før- og etterleksjonsevalueringer) - **Interaktive quizer**: 48 quizer med 3 spørsmål hver (før/etter leksjon evalueringer)
- **Støtte for flere språk**: Automatisk oversettelse til 50+ språk via GitHub Actions - **Flerspråklig støtte**: Automatiske oversettelser for 50+ språk via GitHub Actions
- **Teknologier**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (for AI-prosjekter) - **Teknologier**: HTML, CSS, JavaScript, Vue.js 3, Vite, Node.js, Express, Python (for AI-prosjekter)
### Arkitektur ### Arkitektur
- Pedagogisk repositorium med leksjonsbasert struktur - Utdanningsrepositorium med leksjonsbasert struktur
- Hver leksjonsmappe inneholder README, kodeeksempler og løsninger - Hver leksjonsmappe inneholder README, kodeeksempler og løsninger
- Frittstående prosjekter i egne kataloger (quiz-app, forskjellige leksjonsprosjekter) - Selvstendige prosjekter i egne kataloger (quiz-app, ulike leksjonsprosjekter)
- Oversettelsessystem ved bruk av GitHub Actions (co-op-translator) - Oversettelsessystem ved bruk av GitHub Actions (co-op-translator)
- Dokumentasjon servert via Docsify og tilgjengelig som PDF - Dokumentasjon servert via Docsify og tilgjengelig som PDF
## Oppsettkommandoer ## Oppsett-kommandoer
Dette repositoriet er primært for inntak av pedagogisk innhold. For arbeid med spesifikke prosjekter: Dette repositoriet er først og fremst for forbruk av utdanningsinnhold. For å jobbe med spesifikke prosjekter:
### Hovedrepo-oppsett ### Hovedrepositorioppsett
```bash ```bash
git clone https://github.com/microsoft/Web-Dev-For-Beginners.git git clone https://github.com/microsoft/Web-Dev-For-Beginners.git
@ -59,7 +59,7 @@ npm install
# Følg nettleserspesifikke instruksjoner for lasting av utvidelser # Følg nettleserspesifikke instruksjoner for lasting av utvidelser
``` ```
### Romspillprosjekter ### Space Game Prosjekter
```bash ```bash
cd 6-space-game/solution cd 6-space-game/solution
@ -67,216 +67,216 @@ npm install
# Åpne index.html i nettleseren eller bruk Live Server # Åpne index.html i nettleseren eller bruk Live Server
``` ```
### Chatprosjekt (Python Backend) ### Chatprosjekt (Python backend)
```bash ```bash
cd 9-chat-project/solution/backend/python cd 9-chat-project/solution/backend/python
pip install openai pip install openai
# Sett miljøvariabelen GITHUB_TOKEN # Sett GITHUB_TOKEN miljøvariabel
python api.py python api.py
``` ```
## Utviklingsflyt ## Utviklingsarbeidsflyt
### For innholdsbidragsytere ### For innholdsbidragsytere
1. **Fork repositoriet** til din GitHub-konto 1. **Fork repositoriet** til din GitHub-konto
2. **Klon din fork** lokalt 2. **Klone din fork** lokalt
3. **Opprett en ny gren** for dine endringer 3. **Lag en ny gren** for endringene dine
4. Gjør endringer i leksjonsinnhold eller kodeeksempler 4. Gjør endringer i leksjonsinnhold eller kodeeksempler
5. Test eventuelle kodeendringer i relevante prosjektmapper 5. Test eventuelle kodeendringer i relevante prosjektmapper
6. Send inn pull requests i henhold til bidragsretningslinjer 6. Send pull-forespørsler etter retningslinjer for bidrag
### For lærende ### For lærende
1. Fork eller klon repositoriet 1. Fork eller klon repositoriet
2. Naviger til leksjonsmapper sekvensielt 2. Naviger gjennom leksjonsmapper i rekkefølge
3. Les README-filene for hver leksjon 3. Les README-filene for hver leksjon
4. Fullfør før-leksjonsquizer på https://ff-quizzes.netlify.app/web/ 4. Fullfør for-klasse quizer på https://ff-quizzes.netlify.app/web/
5. Arbeid gjennom kodeeksempler i leksjonsmapper 5. Jobb gjennom kodeeksempler i leksjonsmapper
6. Fullfør oppgaver og utfordringer 6. Utfør oppgaver og utfordringer
7. Ta etter-leksjonsquizer 7. Ta post-klasse quizer
### Live utvikling ### Live utvikling
- **Dokumentasjon**: Kjør `docsify serve` i rotmappen (port 3000) - **Dokumentasjon**: Kjør `docsify serve` i rot (port 3000)
- **Quiz App**: Kjør `npm run dev` i quiz-app-mappen - **Quiz App**: Kjør `npm run dev` i quiz-app katalog
- **Prosjekter**: Bruk VS Code Live Server-utvidelsen for HTML-prosjekter - **Prosjekter**: Bruk VS Code Live Server-utvidelse for HTML-prosjekter
- **API-prosjekter**: Kjør `npm start` i respektive API-mapper - **API-prosjekter**: Kjør `npm start` i respektive API-kataloger
## Testinstruksjoner ## Testinstruksjoner
### Testing av Quiz App ### Quiz App-testing
```bash ```bash
cd quiz-app cd quiz-app
npm run lint # Sjekk for kode stil problemer npm run lint # Sjekk etter kode stil problemer
npm run build # Verifiser at byggingen lykkes npm run build # Verifiser at bygging lykkes
``` ```
### Testing av Bank API ### Bank API-testing
```bash ```bash
cd 7-bank-project/api cd 7-bank-project/api
npm run lint # Sjekk etter kode stil problemer npm run lint # Sjekk for kode stil problemer
node server.js # Verifiser at serveren starter uten feil node server.js # Verifiser at serveren starter uten feil
``` ```
### Generell testtilnærming ### Generell testtilnærming
- Dette er et pedagogisk repositorium uten omfattende automatiserte tester - Dette er et utdanningsrepositorium uten omfattende automatiske tester
- Manuell testing fokuserer på: - Manuell testing fokuserer på:
- At kodeeksempler kjører uten feil - Kodeeksempler kjører uten feil
- At lenker i dokumentasjonen fungerer korrekt - Lenker i dokumentasjon fungerer korrekt
- At byggeprosjekter fullføres vellykket - Prosjektbygget fullføres uten feil
- At eksempler følger beste praksis - Eksempler følger beste praksis
### Sjekker før innsending ### Pre-submission sjekker
- Kjør `npm run lint` i kataloger med package.json - Kjør `npm run lint` i kataloger med package.json
- Verifiser at markdown-lenker er gyldige - Verifiser at markdown-lenker er gyldige
- Test kodeeksempler i nettleser eller Node.js - Test kodeeksempler i nettleser eller Node.js
- Sjekk at oversettelser beholder riktig struktur - Kontroller at oversettelser opprettholder korrekt struktur
## Retningslinjer for kode-stil ## Kode-stil retningslinjer
### JavaScript ### JavaScript
- Bruk moderne ES6+ syntaks - Bruk moderne ES6+ syntaks
- Følg standard ESLint-konfigurasjoner i prosjektene - Følg standard ESLint-konfigurasjoner gitt i prosjekter
- Bruk meningsfulle variabel- og funksjonsnavn for pedagogisk klarhet - Bruk meningsfulle variabel- og funksjonsnavn for pedagogisk klarhet
- Legg til kommentarer som forklarer konsepter for lærende - Legg til kommentarer som forklarer konsepter for lærende
- Formater ved bruk av Prettier der det er konfigurert - Formater med Prettier der det er konfigurert
### HTML/CSS ### HTML/CSS
- Semantiske HTML5-elementer - Semantiske HTML5-elementer
- Responsivt design-prinsipper - Responsive designprinsipper
- Klare klasse-navnekonvensjoner - Klare klasse-navnekonvensjoner
- Kommentarer som forklarer CSS-teknikker for lærende - Kommentarer som forklarer CSS-teknikker for lærende
### Python ### Python
- PEP 8-stil retningslinjer - Følg PEP 8 stilretningslinjer
- Klare, pedagogiske kodeeksempler - Klare, pedagogiske kodeeksempler
- Typehinting der det er nyttig for læring - Typehint der det er hjelpsomt for læring
### Markdown-dokumentasjon ### Markdown-dokumentasjon
- Klar overskriftshierarki - Klar overskriftshierarki
- Kodeblokker med språkspecificasjon - Kodeblokker med språkspesifikasjon
- Lenker til ekstra ressurser - Lenker til tilleggsmateriale
- Skjermbilder og bilder i `images/` mapper - Skjermbilder og bilder i `images/` mapper
- Alternativ tekst for bilder for tilgjengelighet - Alt-tekst for bilder for tilgjengelighet
### Filorganisering ### Filorganisering
- Leksjoner nummerert sekvensielt (1-getting-started-lessons, 2-js-basics, osv.) - Leksjoner nummerert sekvensielt (1-getting-started-lessons, 2-js-basics, etc.)
- Hvert prosjekt har `solution/` og ofte `start/` eller `your-work/` mapper - Hvert prosjekt har `solution/` og ofte `start/` eller `your-work/` kataloger
- Bilder lagres i leksjonsspesifikke `images/` mapper - Bilder lagres i leksjons-spesifikke `images/` mapper
- Oversettelser i `translations/{language-code}/` struktur - Oversettelser i `translations/{language-code}/` struktur
## Bygg og distribusjon ## Bygging og distribusjon
### Utrulling av Quiz App (Azure Static Web Apps) ### Quiz App distribusjon (Azure Static Web Apps)
quiz-app er konfigurert for Azure Static Web Apps utrulling: quiz-app er konfigurert for distribusjon til Azure Static Web Apps:
```bash ```bash
cd quiz-app cd quiz-app
npm run build # Oppretter dist/ mappe npm run build # Lager dist/-mappen
# Distribuerer via GitHub Actions-arbeidsflyt ved push til main # Distribuerer via GitHub Actions-arbeidsflyt ved push til main
``` ```
Azure Static Web Apps konfigurasjon:
- **App-lokasjon**: `/quiz-app`
- **Output-lokasjon**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
Azure Static Web Apps konfigurasjon: ### Generering av PDF for dokumentasjon
- **App-lokasjon**: `/quiz-app`
- **Utdata-lokasjon**: `dist`
- **Workflow**: `.github/workflows/azure-static-web-apps-ashy-river-0debb7803.yml`
### Generering av dokumentasjon PDF
```bash ```bash
npm install # Installer docsify-to-pdf npm install # Installer docsify-to-pdf
npm run convert # Generer PDF fra docs npm run convert # Generer PDF fra docs
``` ```
### Docsify Dokumentasjon ### Docsify dokumentasjon
```bash ```bash
npm install -g docsify-cli # Installer Docsify globalt npm install -g docsify-cli # Installer Docsify globalt
docsify serve # Tjen på localhost:3000 docsify serve # Server på localhost:3000
``` ```
### Prosjektspesifikke builds
### Prosjektspesifikke bygg Hver prosjektmappe kan ha egen byggprosess:
- Vue-prosjekter: `npm run build` lager produksjonsbundler
Hver prosjektmappe kan ha egen byggeprosess: - Statisk prosjekter: Ingen byggeprosess, server filer direkte
- Vue-prosjekter: `npm run build` lager produksjonspakker
- Statisk prosjekter: Ingen byggeprosess, serve filene direkte
## Retningslinjer for pull requests ## Retningslinjer for pull requests
### Tittelformat ### Tittel-format
Bruk klare, beskrivende titler som indikerer endringsområde: Bruk klare og beskrivende titler som indikerer endringsområde:
- `[Quiz-app] Add new quiz for lesson X` - `[Quiz-app] Legg til ny quiz for leksjon X`
- `[Lesson-3] Fix typo in terrarium project` - `[Lesson-3] Rett skrivefeil i terrarium prosjekt`
- `[Translation] Add Spanish translation for lesson 5` - `[Translation] Legg til spansk oversettelse for leksjon 5`
- `[Docs] Update setup instructions` - `[Docs] Oppdater oppsettsinstruksjoner`
### Obligatoriske sjekker ### Obligatoriske sjekker
Før innsending av PR: Før innsending av PR:
1. **Kodekvalitet**: 1. **Kodekvalitet**:
- Kjør `npm run lint` i påvirkede prosjektmapper - Kjør `npm run lint` i berørte prosjektmapper
- Rett alle lint-feil og advarsler - Fiks alle linting-feil og advarsler
2. **Build-verifisering**: 2. **Byggverifikasjon**:
- Kjør `npm run build` hvis relevant - Kjør `npm run build` hvis aktuelt
- Sørg for at ingen byggefeil oppstår - Sørg for at det ikke er byggefeil
3. **Lenkevalidering**: 3. **Lenkevalidering**:
- Test alle markdown-lenker - Test alle markdown-lenker
- Verifiser at bildehenvisninger fungerer - Verifiser at bilder refereres korrekt
4. **Innholdsrevisjon**: 4. **Innholds gjennomgang**:
- Korrekturles for rettskrivning og grammatikk - Korrekturles for rettskrivning og grammatikk
- Sørg for at kodeeksempler er korrekte og pedagogiske - Sørg for at kodeeksempler er korrekte og pedagogiske
- Verifiser at oversettelser bevarer opprinnelig mening - Bekreft at oversettelser bevarer opprinnelig betydning
### Bidragskrav ### Bidragskrav
- Samtykke til Microsoft CLA (automatisk sjekk ved første PR) - Godta Microsoft CLA (automatisk sjekk ved første PR)
- Følg [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) - Følg [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
- Se [CONTRIBUTING.md](./CONTRIBUTING.md) for detaljerte retningslinjer - Se [CONTRIBUTING.md](./CONTRIBUTING.md) for detaljerte retningslinjer
- Referer til issues i PR-beskrivelsen dersom relevant - Referer issues i PR-beskrivelse hvis aktuelt
### Gjennomgangsprosess ### Gjennomgangsprosess
- PR-er vurderes av vedlikeholdere og fellesskapet - PR-er gjennomgås av vedlikeholdere og community
- Pedagogisk klarhet prioriteres - Pedagogisk klarhet prioriteres
- Kodeeksempler bør følge gjeldende beste praksis - Kodeeksempler skal følge gjeldende beste praksis
- Oversettelser vurderes for nøyaktighet og kulturell tilpassethet - Oversettelser vurderes for nøyaktighet og kulturell hensyn
## Oversettelsessystem ## Oversettelsessystem
### Automatisk oversettelse ### Automatisert oversettelse
- Bruker GitHub Actions med co-op-translator workflow - Bruker GitHub Actions med co-op-translator workflow
- Oversetter til 50+ språk automatisk - Oversetter til 50+ språk automatisk
- Kildefiler i hovedkataloger - Kildefiler i hovedmapper
- Oversatte filer i `translations/{language-code}/` mapper - Oversatte filer i `translations/{language-code}/` mapper
### Legge til manuelle forbedringer av oversettelser ### Legge til manuelle oversettelsesforbedringer
1. Finn fil i `translations/{language-code}/` 1. Finn fil i `translations/{language-code}/`
2. Gjør forbedringer samtidig som struktur bevares 2. Gjør forbedringer uten å endre struktur
3. Sørg for at kodeeksempler fortsatt fungerer 3. Sørg for at kodeeksempler fungerer fortsatt
4. Test eventuell lokalisert quiz-innhold 4. Test eventuell lokalisert quiz-innhold
### Oversettelsesmetadata ### Oversettelsesmetadata
Oversatte filer inkluderer metadata-header: Oversatte filer inkluderer metadata-overskrift:
```markdown ```markdown
<!-- <!--
CO_OP_TRANSLATOR_METADATA: CO_OP_TRANSLATOR_METADATA:
@ -288,121 +288,121 @@ CO_OP_TRANSLATOR_METADATA:
} }
--> -->
``` ```
## Feilsøking og problemløsning ## Feilsøking og problemløsning
### Vanlige problemer ### Vanlige problemer
**Quiz-app starter ikke**: **Quiz app starter ikke**:
- Sjekk Node.js-versjon (v14+ anbefalt) - Sjekk Node.js-versjon (v14+ anbefalt)
- Slett `node_modules` og `package-lock.json`, kjør `npm install` på nytt - Slett `node_modules` og `package-lock.json`, kjør `npm install` på nytt
- Sjekk for portkonflikter (standard: Vite bruker port 5173) - Sjekk for portkonflikter (standard: Vite bruker port 5173)
**API-server starter ikke**: **API-server starter ikke**:
- Verifiser Node.js-versjon minimum (node >=10) - Verifiser Node.js-versjon minimum (node >=10)
- Sjekk om port allerede er i bruk - Sjekk om port allerede er i bruk
- Sørg for at alle avhengigheter er installert med `npm install` - Sørg for at alle avhengigheter er installert med `npm install`
**Nettleserutvidelse lastes ikke**: **Nettleserutvidelse lastes ikke**:
- Sjekk at manifest.json er riktig formatert - Verifiser at manifest.json er korrekt formatert
- Se etter feil i nettleserkonsollen - Sjekk nettleserkonsoll for feil
- Følg nettleserspesifikke installasjonsinstruksjoner - Følg nettleserspesifikke utvidelsesinstallasjonsinstruksjoner
**Problemer med Python chat-prosjekt**: **Python chatprosjekt-problemer**:
- Sørg for at OpenAI-pakken er installert: `pip install openai` - Sørg for at OpenAI-pakken er installert: `pip install openai`
- Verifiser at GITHUB_TOKEN miljøvariabel er satt - Verifiser at GITHUB_TOKEN miljøvariabel er satt
- Sjekk GitHub Models tilgangstillatelser - Sjekk Github modeller-tilgangstillatelser
**Docsify serverer ikke dokumentasjon**: **Docsify serverer ikke dokumenter**:
- Installer docsify-cli globalt: `npm install -g docsify-cli` - Installer docsify-cli globalt: `npm install -g docsify-cli`
- Kjør fra repoets rotkatalog - Kjør fra repositoriets rotkatalog
- Sjekk at `docs/_sidebar.md` eksisterer - Sjekk at `docs/_sidebar.md` eksisterer
### Tips for utviklingsmiljø ### Tips for utviklingsmiljø
- Bruk VS Code med Live Server-utvidelse for HTML-prosjekter - Bruk VS Code med Live Server-utvidelse for HTML-prosjekter
- Installer ESLint og Prettier-utvidelser for konsistent formatering - Installer ESLint og Prettier-utvidelser for konsistent formatering
- Bruk nettleserens DevTools for JavaScript-feilsøking - Bruk nettleserens DevTools for JavaScript-feilsøking
- For Vue-prosjekter, installer Vue DevTools nettleserutvidelse - For Vue-prosjekter, installer Vue DevTools nettleserutvidelse
### Ytelseshensyn ### Ytelseshensyn
- Mange oversatte filer (50+ språk) gjør at hele kloner blir store - Stort antall oversatte filer (50+ språk) gjør full cloning stor
- Bruk shallow clone hvis du kun jobber med innhold: `git clone --depth 1` - Bruk shallow clone hvis du bare jobber med innhold: `git clone --depth 1`
- Ekskluder oversettelser fra søk når du jobber på engelsk innhold - Ekskluder oversettelser fra søk når du jobber med engelsk innhold
- Byggeprosesser kan være trege ved første kjøring (npm install, Vite build) - Byggeprosesser kan være trege første gang (npm install, Vite build)
## Sikkerhetshensyn ## Sikkerhetshensyn
### Miljøvariabler ### Miljøvariabler
- API-nøkler skal aldri committes til repositoriet - API-nøkler skal aldri legges inn i repositoriet
- Bruk `.env`-filer (allerede i `.gitignore`) - Bruk `.env` filer (allerede i `.gitignore`)
- Dokumenter nødvendige miljøvariabler i prosjektets README-filer - Dokumenter nødvendige miljøvariabler i prosjekt READMEs
### Python-prosjekter ### Python-prosjekter
- Bruk virtuelle miljøer: `python -m venv venv` - Bruk virtuelle miljøer: `python -m venv venv`
- Hold avhengigheter oppdatert - Hold avhengigheter oppdatert
- GitHub-tokens bør ha minimale nødvendige tillatelser - GitHub-tokener skal ha minimale nødvendige tillatelser
### GitHub Models-tilgang ### GitHub modeller tilgang
- Personlige tilgangstokener (PAT) kreves for GitHub Models - Personlige tilgangstokener (PAT) kreves for GitHub modeller
- Tokens bør lagres som miljøvariabler - Token skal lagres som miljøvariabler
- Aldri commit tokens eller legitimasjon - Aldri legg inn tokens eller legitimasjon i koden
## Tilleggsnotater ## Tilleggsnotater
### Målgruppe ### Målgruppe
- Fullstendige nybegynnere til webutvikling - Fullstendige nybegynnere i webutvikling
- Studenter og selvlærende - Studenter og selvstudenter
- Lærere som bruker pensum i klasserom - Lærere som bruker pensum i undervisning
- Innholdet er designet for tilgjengelighet og gradvis ferdighetsbygging - Innhold er designet for tilgjengelighet og gradvis ferdighetsbygging
### Pedagogisk filosofi ### Utdanningsfilosofi
- Prosjektbasert læringsmetode - Prosjektbasert læringsmetode
- Hyppige kunnskapskontroller (quizer) - Hyppige kunnskapssjekker (quizer)
- Praktiske kodingøvelser - Praktiske kodeøvelser
- Reelle eksempler på anvendelse - Virkelige anvendelseseksempler
- Fokuser på grunnleggende før rammeverk - Fokus på grunnleggende før rammeverk
### Repositorium-vedlikehold ### Repositorie-vedlikehold
- Aktivt fellesskap av lærende og bidragsytere - Aktivt community av lærende og bidragsytere
- Regelmessige oppdateringer av avhengigheter og innhold - Regelmessige oppdateringer av avhengigheter og innhold
- Issues og diskusjoner overvåkes av vedlikeholdere - Issues og diskusjoner overvåkes av vedlikeholdere
- Oversettelsesoppdateringer automatisert via GitHub Actions - Oversettelsesoppdateringer automatisert via GitHub Actions
### Relaterte ressurser ### Relaterte ressurser
- [Microsoft Learn moduler](https://docs.microsoft.com/learn/) - [Microsoft Learn moduler](https://docs.microsoft.com/learn/)
- [Student Hub ressurser](https://docs.microsoft.com/learn/student-hub/) - [Student Hub ressurser](https://docs.microsoft.com/learn/student-hub/)
- [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) anbefalt for lærende - [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) anbefalt for lærende
- Ekstra kurs: Generativ AI, Data Science, ML, IoT pensum tilgjengelig - Flere kurs: Generativ AI, Data Science, ML, IoT pensum tilgjengelig
### Arbeid med spesifikke prosjekter ### Arbeide med spesifikke prosjekter
For detaljerte instruksjoner om individuelle prosjekter, se README-filene i: For detaljerte instruksjoner om individuelle prosjekter, se README-filene i:
- `quiz-app/README.md` - Vue 3 quiz-applikasjon - `quiz-app/README.md` - Vue 3 quiz-applikasjon
- `7-bank-project/README.md` - Bankapplikasjon med autentisering - `7-bank-project/README.md` - Bankapplikasjon med autentisering
- `5-browser-extension/README.md` - Nettleserutvidelsesutvikling - `5-browser-extension/README.md` - Nettleserutvidelsesutvikling
- `6-space-game/README.md` - Canvas-basert spillutvikling - `6-space-game/README.md` - Canvas-basert spillutvikling
- `9-chat-project/README.md` - AI chatassistentprosjekt - `9-chat-project/README.md` - AI chat assistent prosjekt
### Monorepo-struktur ### Monorepo-struktur
Selv om det ikke er et tradisjonelt monorepo, inneholder dette repositoriet flere uavhengige prosjekter: Selv om dette ikke er et tradisjonelt monorepo, inneholder repositoriet flere uavhengige prosjekter:
- Hver leksjon er selvstendig - Hver leksjon er selvstendig
- Prosjektene deler ikke avhengigheter - Prosjekter deler ikke avhengigheter
- Arbeid med individuelle prosjekter uten å påvirke andre - Jobb med individuelle prosjekter uten å påvirke andre
- Klon hele repoet for full pensumopplevelse - Klon hele repo for full pensumopplevelse
--- ---
<!-- CO-OP TRANSLATOR DISCLAIMER START --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfraskrivelse**: **Ansvarsfraskrivelse**:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på sitt morsmål bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen. Dette dokumentet er oversatt ved bruk av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiserte oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på dets morsmål bør betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår fra bruk av denne oversettelsen.
<!-- CO-OP TRANSLATOR DISCLAIMER END --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -10,29 +10,29 @@
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
# Webutvikling for nybegynnere - Et læreplan # Webutvikling for nybegynnere - En læreplan
Lær grunnleggende webutvikling med vårt 12-ukers omfattende kurs av Microsoft Cloud Advocates. Hver av de 24 leksjonene dykker ned i JavaScript, CSS og HTML gjennom praktiske prosjekter som terrarier, nettleserutvidelser og romspill. Delta i quizer, diskusjoner og praktiske oppgaver. Forbedre ferdighetene dine og optimaliser kunnskapsretensjonen med vår effektive prosjektbaserte pedagogikk. Start din kode-reise i dag! Lær det grunnleggende innen webutvikling med vårt 12-ukers omfattende kurs av Microsoft Cloud Advocates. Hver av de 24 leksjonene dykker inn i JavaScript, CSS og HTML gjennom praktiske prosjekter som terrarier, nettleserutvidelser og romspill. Engasjer deg med quizzer, diskusjoner og praktiske oppgaver. Forbedre ferdighetene dine og optimaliser kunnskapsinnhentingen med vår effektive prosjektbaserte pedagogikk. Start kodingen din i dag!
Bli med i Azure AI Foundry Discord-fellesskapet Bli med i Azure AI Foundry Discord-samfunnet
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Følg disse trinnene for å komme i gang med disse ressursene: Følg disse trinnene for å komme i gang med disse ressursene:
1. **Fork repoet**: Klikk [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork) 1. **Fork repositoriet**: Klikk [![GitHub forks](https://img.shields.io/github/forks/microsoft/Web-Dev-For-beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/Web-Dev-For-Beginners/fork)
2. **Klon repoet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` 2. **Klone repositoriet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
3. [**Bli med i Azure AI Foundry Discord og møt eksperter og medutviklere**](https://discord.com/invite/ByRwuEEgH4) 3. [**Bli med i Azure AI Foundry Discord og møt eksperter og medutviklere**](https://discord.com/invite/ByRwuEEgH4)
### 🌐 Flerspråklig støtte ### 🌐 Støtte for flere språk
#### Støttes via GitHub Action (Automatisk og alltid oppdatert) #### Støttet via GitHub Action (Automatisert og alltid oppdatert)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START --> <!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](./README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) [Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](./README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **Foretrekker du å klone lokalt?** > **Foretrekker du å klone lokalt?**
> >
> Dette repoet inkluderer 50+ språkoversettelser som øker nedlastingsstørrelsen betydelig. For å klone uten oversettelser, bruk sparse checkout: > Dette repositoriet inkluderer 50+ språkoversettelser som betydelig øker nedlastingsstørrelsen. For å klone uten oversettelser, bruk sparsom utsjekking:
> >
> **Bash / macOS / Linux:** > **Bash / macOS / Linux:**
> ```bash > ```bash
@ -48,43 +48,43 @@ Følg disse trinnene for å komme i gang med disse ressursene:
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ``` > ```
> >
> Dette gir deg alt du trenger for å fullføre kurset med mye raskere nedlasting. > Dette gir deg alt du trenger for å fullføre kurset med en mye raskere nedlasting.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END --> <!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
**Hvis du ønsker at flere oversettelsesspråk skal støttes, er disse oppført [her](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)** **Hvis du ønsker at flere oversettelser skal støttes, er de oppført [her](https://github.com/Azure/co-op-translator/blob/main/getting_started/supported-languages.md)**
[![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners) [![Open in Visual Studio Code](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc)](https://open.vscode.dev/microsoft/Web-Dev-For-Beginners)
#### 🧑‍🎓 _Er du student?_ #### 🧑‍🎓 _Er du student?_
Besøk [**Student Hub-siden**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) hvor du finner nybegynnerressurser, studentpakker og til og med måter å få en gratis sertifikatkupong på. Dette er siden du bør bokmerke og sjekke fra tid til annen da vi bytter ut innhold månedlig. Besøk [**Student Hub-siden**](https://docs.microsoft.com/learn/student-hub/?WT.mc_id=academic-77807-sagibbon) hvor du finner nybegynnerressurser, studentpakker og til og med måter å få et gratis sertifikatkupong på. Dette er siden du vil bokmerke og sjekke fra tid til annen da vi bytter ut innhold månedlig.
### 📣 Annonsering - Nye utfordringer i GitHub Copilot Agent-modus å fullføre! ### 📣 Kunngjøring - Nye utfordringer i GitHub Copilot Agent-modus å fullføre!
Ny utfordring lagt til, se etter "GitHub Copilot Agent Challenge 🚀" i de fleste kapitlene. Det er en ny utfordring du kan fullføre ved å bruke GitHub Copilot og Agent-modus. Hvis du ikke har brukt Agent-modus før, kan den ikke bare generere tekst, men også opprette og redigere filer, kjøre kommandoer og mer. Ny utfordring lagt til, se etter "GitHub Copilot Agent Challenge 🚀" i de fleste kapitler. Det er en ny utfordring for deg å gjennomføre ved bruk av GitHub Copilot og Agent-modus. Hvis du ikke har brukt Agent-modus før, kan den ikke bare generere tekst, men også opprette og redigere filer, kjøre kommandoer og mer.
### 📣 Annonsering - _Nytt prosjekt å bygge med Generativ AI_ ### 📣 Kunngjøring - _Nytt prosjekt å bygge med generativ AI_
Nytt AI-assistentprosjekt nettopp lagt til, sjekk det ut [prosjekt](./9-chat-project/README.md) Nytt AI Assistant prosjekt lagt til, sjekk det ut [prosjekt](./9-chat-project/README.md)
### 📣 Annonsering - _Ny læreplan_ om Generativ AI for JavaScript ble nettopp utgitt ### 📣 Kunngjøring - _Ny læreplan_ om generativ AI for JavaScript ble nettopp lansert
Ikke gå glipp av vår nye læreplan for Generativ AI! Ikke gå glipp av vår nye læreplan for generativ AI!
Besøk [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) for å komme i gang! Besøk [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) for å komme i gang!
![Background](../../translated_images/no/background.148a8d43afde5730.webp) ![Background](../../translated_images/no/background.148a8d43afde5730.webp)
- Leksjoner som dekker alt fra grunnleggende til RAG. - Leksjoner som dekker alt fra grunnleggende til RAG.
- Samhandle med historiske personer ved hjelp av GenAI og vår følgesvenn-app. - Interager med historiske karakterer ved hjelp av GenAI og vår følgesvenn-app.
- Moro og engasjerende fortelling, du vil reise i tid! - Morsom og engasjerende fortelling, du vil tidsreise!
![character](../../translated_images/no/character.5c0dd8e067ffd693.webp) ![character](../../translated_images/no/character.5c0dd8e067ffd693.webp)
Hver leksjon inkluderer en oppgave å fullføre, en kunnskapskontroll og en utfordring for å veilede deg i læring av temaer som: Hver leksjon inkluderer en oppgave som må fullføres, en kunnskapskontroll og en utfordring for å veilede deg i læringstemaer som:
- Prompting og prompt engineering - Prompting og prompt engineering
- Tekst- og bildeappgenerering - Tekst- og bildeapp-generering
- Søkeapper - Søkeapper
Besøk [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) for å komme i gang! Besøk [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) for å komme i gang!
@ -93,41 +93,41 @@ Besøk [https://aka.ms/genai-js-course](https://aka.ms/genai-js-course) for å k
## 🌱 Komme i gang ## 🌱 Komme i gang
> **Lærere**, vi har [inkludert noen forslag](for-teachers.md) til hvordan du kan bruke denne læreplanen. Vi vil gjerne ha tilbakemeldinger [i vårt diskusjonsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)! > **Lærere**, vi har [inkludert noen forslag](for-teachers.md) om hvordan bruke denne læreplanen. Vi setter pris på din tilbakemelding [i vårt diskusjonsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions/categories/teacher-corner)!
**[Elever](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, for hver leksjon, start med en for-forelesningsquiz og følg opp med å lese forelesningsmaterialet, fullføre de ulike aktivitetene og sjekke forståelsen med etter-forelesningsquiz. **[Lærende](https://aka.ms/student-page/?WT.mc_id=academic-77807-sagibbon)**, for hver leksjon, start med en forhånds-quiz og følg opp med å lese forelesningsmaterialet, fullføre de ulike aktivitetene og sjekk forståelsen din med post-forelesningsquizen.
For å forbedre læringsopplevelsen, koble deg sammen med dine medstudenter for å jobbe på prosjektene sammen! Diskusjoner oppfordres i vårt [diskusjonsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions) hvor vårt team av moderatorer vil være tilgjengelig for å svare på spørsmålene dine. For å forbedre læringsopplevelsen, koble deg til med jevnaldrende for å jobbe sammen på prosjektene! Diskusjoner oppmuntres i vårt [diskusjonsforum](https://github.com/microsoft/Web-Dev-For-Beginners/discussions) der vårt team av moderatorer er tilgjengelige for å svare på spørsmålene dine.
For å utvide utdannelsen anbefaler vi sterkt å utforske [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) for ekstra studiemateriell. For å fremme utdanningen din anbefaler vi sterkt å utforske [Microsoft Learn](https://learn.microsoft.com/users/wirelesslife/collections/p1ddcy5jwy0jkm?WT.mc_id=academic-77807-sagibbon) for ekstra studiemateriell.
### 📋 Sette opp miljøet ditt ### 📋 Sette opp ditt miljø
Denne læreplanen har et utviklingsmiljø klart til bruk! Når du kommer i gang kan du velge å kjøre læreplanen i en [Codespace](https://github.com/features/codespaces/) (_et nettleserbasert miljø uten behov for installasjoner_), eller lokalt på datamaskinen din ved å bruke en teksteditor som [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon). Denne læreplanen har et utviklingsmiljø klart til bruk! Når du starter kan du velge å kjøre læreplanen i en [Codespace](https://github.com/features/codespaces/) (_et nettleserbasert miljø uten behov for installasjoner_), eller lokalt på din maskin ved å bruke en teksteditor som [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
#### Opprett ditt eget repository #### Opprett ditt eget repository
For at du enkelt skal kunne lagre arbeidet ditt, anbefales det at du oppretter din egen kopi av dette repoet. Du kan gjøre dette ved å klikke på **Use this template**-knappen øverst på siden. Dette vil lage et nytt repository i din GitHub-konto med en kopi av læreplanen. For at du enkelt skal lagre arbeidet ditt, anbefales det at du lager din egen kopi av dette repositoriet. Du kan gjøre dette ved å klikke på **Use this template**-knappen øverst på siden. Dette vil opprette et nytt repository i din GitHub-konto med en kopi av læreplanen.
Følg disse trinnene: Følg disse trinnene:
1. **Fork repoet**: Klikk på "Fork"-knappen øverst til høyre på denne siden. 1. **Fork repositoriet**: Klikk på "Fork"-knappen øverst til høyre på denne siden.
2. **Klon repoet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git` 2. **Klone repositoriet**: `git clone https://github.com/microsoft/Web-Dev-For-Beginners.git`
#### Kjøre læreplanen i en Codespace #### Kjøre læreplanen i en Codespace
I din kopi av repoet som du opprettet, klikk på **Code**-knappen og velg **Open with Codespaces**. Dette vil opprette en ny Codespace for deg å jobbe i. I din kopi av dette repositoriet som du laget, klikk på **Code**-knappen og velg **Open with Codespaces**. Dette oppretter en ny Codespace for deg å jobbe i.
![Codespace](../../translated_images/no/createcodespace.0238bbf4d7a8d955.webp) ![Codespace](../../translated_images/no/createcodespace.0238bbf4d7a8d955.webp)
#### Kjøre læreplanen lokalt på din datamaskin #### Kjøre læreplanen lokalt på din datamaskin
For å kjøre denne læreplanen lokalt på din datamaskin trenger du en teksteditor, en nettleser og et kommandolinjeverktøy. Vår første leksjon, [Introduksjon til programmeringsspråk og verktøy](../../1-getting-started-lessons/1-intro-to-programming-languages), vil lede deg gjennom ulike valg for hvert av disse verktøyene slik at du kan velge det som passer best for deg. For å kjøre denne læreplanen lokalt trenger du en teksteditor, en nettleser og et kommandolinjeverktøy. Vår første leksjon, [Introduksjon til programmeringsspråk og verktøy](../../1-getting-started-lessons/1-intro-to-programming-languages), vil veilede deg gjennom ulike alternativer for hver av disse verktøyene slik at du kan velge det som passer best for deg.
Vi anbefaler å bruke [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) som din editor, som også har en innebygd [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Du kan laste ned Visual Studio Code [her](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon). Vår anbefaling er å bruke [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) som editor, som også har en innebygd [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon). Du kan laste ned Visual Studio Code [her](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon).
1. Klon ditt repository til din datamaskin. Du kan gjøre dette ved å klikke på **Code**-knappen og kopiere URL-en: 1. Klon depotet ditt til datamaskinen. Du kan gjøre dette ved å klikke på **Code**-knappen og kopiere URL-en:
[CodeSpace](./images/createcodespace.png) [CodeSpace](./images/createcodespace.png)
Åpne deretter [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) i [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) og kjør følgende kommando, erstatt `<your-repository-url>` med URL-en du nettopp kopierte: Åpne deretter [Terminal](https://code.visualstudio.com/docs/terminal/basics/?WT.mc_id=academic-77807-sagibbon) i [Visual Studio Code](https://code.visualstudio.com/?WT.mc_id=academic-77807-sagibbon) og kjør følgende kommando, og erstatt `<your-repository-url>` med URL-en du nettopp kopierte:
```bash ```bash
git clone <your-repository-url> git clone <your-repository-url>
@ -139,82 +139,82 @@ Vi anbefaler å bruke [Visual Studio Code](https://code.visualstudio.com/?WT.mc_
> Anbefalte Visual Studio Code-utvidelser: > Anbefalte Visual Studio Code-utvidelser:
> >
> * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - for å forhåndsvise HTML-sider i Visual Studio Code > * [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer&WT.mc_id=academic-77807-sagibbon) - for å forhåndsvise HTML-sider i Visual Studio Code
> * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - for å hjelpe deg skrive kode raskere > * [Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&WT.mc_id=academic-77807-sagibbon) - for å hjelpe deg med å skrive kode raskere
## 📂 Hver leksjon inkluderer: ## 📂 Hver leksjon inkluderer:
- valgfri skisse-notat - valgfri sketchnote
- valgfri tilleggsvideo - valgfri supplerende video
- oppvarmingsquiz før leksjonen - oppvarmingsquiz før leksjonen
- skriftlig leksjon - skriftlig leksjon
- for prosjektrelaterte leksjoner, steg-for-steg guider for hvordan bygge prosjektet - for prosjektbaserte leksjoner, trinnvise guider for hvordan bygge prosjektet
- kunnskapstester - kunnskapstester
- en utfordring - en utfordring
- tilleggslesning - supplerende lesing
- oppgave - oppgave
- [quiz etter leksjonen](https://ff-quizzes.netlify.app/web/) - [quiz etter leksjonen](https://ff-quizzes.netlify.app/web/)
> **En merknad om quizer**: Alle quizer ligger i Quiz-app-mappen, totalt 48 quizer med tre spørsmål hver. De er tilgjengelige [her](https://ff-quizzes.netlify.app/web/) quiz-appen kan kjøres lokalt eller distribueres til Azure; følg instruksjonene i `quiz-app`-mappen. > **En merknad om quizer**: Alle quizene finnes i Quiz-app-mappen, totalt 48 quizer med tre spørsmål hver. De er tilgjengelige [her](https://ff-quizzes.netlify.app/web/) quiz-appen kan kjøres lokalt eller distribueres til Azure; følg instruksjonene i `quiz-app`-mappen.
## 🗃️ Leksjoner ## 🗃️ Leksjoner
| | Prosjektnavn | Konsepter som læres | Læringsmål | Lenket leksjon | Forfatter | | | Prosjektnavn | Lærte konsept | Læringsmål | Tilknyttet leksjon | Forfatter |
| :-: | :------------------------------------------------------: | :-----------------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------: | :-----------------------: | | :-: | :------------------------------------------------------: | :--------------------------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------: |
| 01 | Komme i gang | Introduksjon til programmering og verktøy i faget | Lær grunnlaget bak de fleste programmeringsspråk og programvare som hjelper profesjonelle utviklere | [Introduksjon til programmeringsspråk og verktøy i faget](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine | | 01 | Komme i gang | Introduksjon til programmering og verktøy | Lær de grunnleggende prinsippene bak de fleste programmeringsspråk og programvare som hjelper profesjonelle utviklere | [Intro til programmeringsspråk og verktøy](./1-getting-started-lessons/1-intro-to-programming-languages/README.md) | Jasmine |
| 02 | Komme i gang | Grunnleggende GitHub, inkludert arbeid i teamet | Hvordan bruke GitHub i ditt prosjekt, og hvordan samarbeide med andre på en kodebase | [Introduksjon til GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor | | 02 | Komme i gang | Grunnleggende GitHub, inklusive å jobbe i team | Hvordan bruke GitHub i prosjektet ditt, hvordan samarbeide med andre på en kodebase | [Intro til GitHub](./1-getting-started-lessons/2-github-basics/README.md) | Floor |
| 03 | Komme i gang | Tilgjengelighet | Lær det grunnleggende om nettilgjengelighet | [Grunnleggende tilgjengelighet](./1-getting-started-lessons/3-accessibility/README.md) | Christopher | | 03 | Komme i gang | Tilgjengelighet | Lær det grunnleggende om webtilgjengelighet | [Tilgjengelighetsgrunnlag](./1-getting-started-lessons/3-accessibility/README.md) | Christopher |
| 04 | JS Grunnleggende | JavaScript datatype | Grunnleggende om JavaScript-datatyper | [Datatyper](./2-js-basics/1-data-types/README.md) | Jasmine | | 04 | JS Grunnleggende | JavaScript datatyper | Grunnleggende om JavaScript-datatyper | [Datatyper](./2-js-basics/1-data-types/README.md) | Jasmine |
| 05 | JS Grunnleggende | Funksjoner og metoder | Lær om funksjoner og metoder for å styre en applikasjons logikk | [Funksjoner og metoder](./2-js-basics/2-functions-methods/README.md) | Jasmine og Christopher | | 05 | JS Grunnleggende | Funksjoner og metoder | Lær om funksjoner og metoder for å styre logikkflyten i en applikasjon | [Funksjoner og metoder](./2-js-basics/2-functions-methods/README.md) | Jasmine og Christopher |
| 06 | JS Grunnleggende | Å ta beslutninger med JS | Lær hvordan lage betingelser i koden din ved hjelp av beslutningsmetoder | [Beslutningstaking](./2-js-basics/3-making-decisions/README.md) | Jasmine | | 06 | JS Grunnleggende | Å ta beslutninger med JS | Lær hvordan du lager betingelser i koden ved å bruke metoder for beslutningstaking | [Å ta beslutninger](./2-js-basics/3-making-decisions/README.md) | Jasmine |
| 07 | JS Grunnleggende | Lister og løkker | Arbeid med data ved bruk av lister og løkker i JavaScript | [Lister og løkker](./2-js-basics/4-arrays-loops/README.md) | Jasmine | | 07 | JS Grunnleggende | Arrays og løkker | Arbeid med data ved hjelp av arrays og løkker i JavaScript | [Arrays og løkker](./2-js-basics/4-arrays-loops/README.md) | Jasmine |
| 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML i praksis | Bygg HTML for å lage et online terrarium, med fokus på layout | [Introduksjon til HTML](./3-terrarium/1-intro-to-html/README.md) | Jen | | 08 | [Terrarium](./3-terrarium/solution/README.md) | HTML i praksis | Bygg HTML for å lage et online terrarium, med fokus på layout | [Introduksjon til HTML](./3-terrarium/1-intro-to-html/README.md) | Jen |
| 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS i praksis | Bygg CSS for å style det online terrariet, med fokus på grunnleggende CSS inkludert responsiv side | [Introduksjon til CSS](./3-terrarium/2-intro-to-css/README.md) | Jen | | 09 | [Terrarium](./3-terrarium/solution/README.md) | CSS i praksis | Bygg CSS for å style det online terrariet, med fokus på grunnleggende CSS inkludert å gjøre siden responsiv | [Introduksjon til CSS](./3-terrarium/2-intro-to-css/README.md) | Jen |
| 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript Closures, DOM-manipulasjon | Bygg JavaScript for å gjøre terrariet til en drag/drop-grensesnitt, med fokus på closures og DOM-manipulasjon | [JavaScript Closures, DOM-manipulasjon](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen | | 10 | [Terrarium](./3-terrarium/solution/README.md) | JavaScript closures, DOM-manipulasjon | Lag JavaScript for å gjøre terrariet funksjonelt som et dra/slipp-grensesnitt, med fokus på closures og DOM-manipulasjon | [JavaScript Closures, DOM-manipulasjon](./3-terrarium/3-intro-to-DOM-and-closures/README.md) | Jen |
| 11 | [Typing Game](./4-typing-game/solution/README.md) | Bygg et skrive-spill | Lær hvordan du bruker tastaturevents for å styre logikken i ditt JavaScript-app | [Event-drevet programmering](./4-typing-game/typing-game/README.md) | Christopher | | 11 | [Typing Game](./4-typing-game/solution/README.md) | Lag et skrive-spill | Lær hvordan du bruker tastaturhendelser for å styre logikken i din JavaScript-app | [Event-Drevet programmering](./4-typing-game/typing-game/README.md) | Christopher |
| 12 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Arbeide med nettlesere | Lær hvordan nettlesere fungerer, deres historie og hvordan skissere de første elementene i en nettleserutvidelse | [Om nettlesere](./5-browser-extension/1-about-browsers/README.md) | Jen | | 12 | [Grønn Nettleserutvidelse](./5-browser-extension/solution/README.md) | Arbeide med nettlesere | Lær hvordan nettlesere fungerer, deres historie, og hvordan du bygger de første elementene i en nettleserutvidelse | [Om nettlesere](./5-browser-extension/1-about-browsers/README.md) | Jen |
| 13 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Bygging av skjema, kalle et API og lagre variabler i lokal lagring | Bygg JavaScript-elementer i nettleserutvidelsen din som kaller et API ved bruk av variabler lagret i lokal lagring | [API-er, skjemaer og lokal lagring](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen | | 13 | [Grønn Nettleserutvidelse](./5-browser-extension/solution/README.md) | Lage et skjema, kalle et API og lagre variabler lokalt | Bygg JavaScript-elementene i nettleserutvidelsen din for å kalle et API med variabler lagret i lokal lagring | [APIer, skjemaer og lokal lagring](./5-browser-extension/2-forms-browsers-local-storage/README.md) | Jen |
| 14 | [Green Browser Extension](./5-browser-extension/solution/README.md) | Bakgrunnsprosesser i nettleseren, web-ytelse | Bruk nettleserens bakgrunnsprosesser til å styre utvidelsens ikon; lær om web-ytelse og noen optimaliseringer | [Bakgrunnsoppgaver og ytelse](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen | | 14 | [Grønn Nettleserutvidelse](./5-browser-extension/solution/README.md) | Bakgrunnsprosesser i nettleseren, webytelse | Bruk nettleserens bakgrunnsprosesser til å styre utvidelsens ikon; lær om webytelse og noen optimaliseringer | [Bakgrunnsprosesser og ytelse](./5-browser-extension/3-background-tasks-and-performance/README.md) | Jen |
| 15 | [Space Game](./6-space-game/solution/README.md) | Mer avansert spillutvikling med JavaScript | Lær om arv ved bruk av både klasser og komposisjon og Pub/Sub-mønsteret, som forberedelse til å bygge et spill | [Introduksjon til avansert spillutvikling](./6-space-game/1-introduction/README.md) | Chris | | 15 | [Space Game](./6-space-game/solution/README.md) | Mer avansert spillutvikling med JavaScript | Lær om arv ved bruk av både klasser og komposisjon og Pub/Sub-mønsteret i forberedelse til å bygge et spill | [Introduksjon til avansert spillutvikling](./6-space-game/1-introduction/README.md) | Chris |
| 16 | [Space Game](./6-space-game/solution/README.md) | Tegning til canvas | Lær om Canvas API, brukt for å tegne elementer på en skjerm | [Tegning til Canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris | | 16 | [Space Game](./6-space-game/solution/README.md) | Tegning til canvas | Lær om Canvas API, brukt for å tegne elementer på skjermen | [Tegning til canvas](./6-space-game/2-drawing-to-canvas/README.md) | Chris |
| 17 | [Space Game](./6-space-game/solution/README.md) | Flytte elementer rundt på skjermen | Oppdag hvordan elementer kan få bevegelse ved hjelp av kartesiske koordinater og Canvas API | [Flytte elementer rundt](./6-space-game/3-moving-elements-around/README.md) | Chris | | 17 | [Space Game](./6-space-game/solution/README.md) | Flytte elementer rundt på skjermen | Oppdag hvordan elementer kan få bevegelse ved bruk av kartesiske koordinater og Canvas API | [Flytte elementer rundt](./6-space-game/3-moving-elements-around/README.md) | Chris |
| 18 | [Space Game](./6-space-game/solution/README.md) | Kollisjonsdeteksjon | Få elementer til å kollidere og reagere på hverandre ved hjelp av tastetrykk og tilby en cooldown-funksjon for å sikre ytelse | [Kollisjonsdeteksjon](./6-space-game/4-collision-detection/README.md) | Chris | | 18 | [Space Game](./6-space-game/solution/README.md) | Kollisjonsdeteksjon | Få elementer til å kollidere og reagere på hverandre ved bruk av tastetrykk og lag en nedkjølingsfunksjon for å sikre ytelse | [Kollisjonsdeteksjon](./6-space-game/4-collision-detection/README.md) | Chris |
| 19 | [Space Game](./6-space-game/solution/README.md) | Holde styr på poeng | Utfør matematiske beregninger basert på spillets status og ytelse | [Holde styr på poeng](./6-space-game/5-keeping-score/README.md) | Chris | | 19 | [Space Game](./6-space-game/solution/README.md) | Holde poengsum | Utfør matematiske beregninger basert på spillets status og ytelse | [Holde poengsum](./6-space-game/5-keeping-score/README.md) | Chris |
| 20 | [Space Game](./6-space-game/solution/README.md) | Avslutte og starte spillet på nytt | Lær om å avslutte og starte spillet på nytt, inkludert opprydding av ressurser og tilbakestilling av variabler | [Sluttbetingelsen](./6-space-game/6-end-condition/README.md) | Chris | | 20 | [Space Game](./6-space-game/solution/README.md) | Avslutte og starte spillet på nytt | Lær om å avslutte og starte spillet på nytt, inkludert å rydde opp ressurser og tilbakestille variabler | [Avslutningsbetingelsen](./6-space-game/6-end-condition/README.md) | Chris |
| 21 | [Banking App](./7-bank-project/solution/README.md) | HTML-maler og ruter i en webapp | Lær hvordan lage strukturen for en nettsides arkitektur med routing og HTML-maler | [HTML-maler og ruter](./7-bank-project/1-template-route/README.md) | Yohan | | 21 | [Bank App](./7-bank-project/solution/README.md) | HTML-maler og ruter i en webapp | Lær hvordan lage strukturen av en flersidig nettside ved bruk av ruting og HTML-maler | [HTML-maler og ruter](./7-bank-project/1-template-route/README.md) | Yohan |
| 22 | [Banking App](./7-bank-project/solution/README.md) | Bygge påloggings- og registreringsskjema | Lær om bygging av skjemaer og håndtering av valideringsrutiner | [Skjemaer](./7-bank-project/2-forms/README.md) | Yohan | | 22 | [Bank App](./7-bank-project/solution/README.md) | Lag en innloggings- og registreringsskjema | Lær om å bygge skjemaer og håndtere valideringsrutiner | [Skjemaer](./7-bank-project/2-forms/README.md) | Yohan |
| 23 | [Banking App](./7-bank-project/solution/README.md) | Metoder for henting og bruk av data | Hvordan data flyter inn og ut av appen din, hvordan hente, lagre og kvitte seg med den | [Data](./7-bank-project/3-data/README.md) | Yohan | | 23 | [Bank App](./7-bank-project/solution/README.md) | Metoder for henting og bruk av data | Hvordan data flyter inn og ut av appen din, hvordan hente, lagre og kassere den | [Data](./7-bank-project/3-data/README.md) | Yohan |
| 24 | [Banking App](./7-bank-project/solution/README.md) | Konsepter innen tilstandshåndtering | Lær hvordan appen din beholder tilstand og hvordan styre den programmatisk | [Tilstandshåndtering](./7-bank-project/4-state-management/README.md) | Yohan | | 24 | [Bank App](./7-bank-project/solution/README.md) | Konsepter for tilstandshåndtering | Lær hvordan appen din beholder tilstand og hvordan styre den programmatisk | [Tilstandshåndtering](./7-bank-project/4-state-management/README.md) | Yohan |
| 25 | [Browser/VScode Code](../../8-code-editor) | Arbeide med VScode | Lær hvordan du bruker en kodeeditor| [Bruk VScode kodeeditor](./8-code-editor/1-using-a-code-editor/README.md) | Chris | | 25 | [Browser/VScode Code](../../8-code-editor) | Arbeide med VScode | Lær hvordan du bruker en kodeeditor| [Bruke VScode kodeeditor](./8-code-editor/1-using-a-code-editor/README.md) | Chris |
| 26 | [AI Assistants](./9-chat-project/README.md) | Arbeide med AI | Lær hvordan bygge din egen AI-assistent | [AI Assistant-prosjekt](./9-chat-project/README.md) | Chris | | 26 | [AI Assistants](./9-chat-project/README.md) | Arbeide med AI | Lær hvordan du bygger din egen AI-assistent | [AI-assistentprosjekt](./9-chat-project/README.md) | Chris |
## 🏫 Pedagogikk ## 🏫 Pedagogikk
Vårt pensum er utformet med to viktige pedagogiske prinsipper i tankene: Vår læreplan er designet med to viktige pedagogiske prinsipper i tankene:
* prosjektbasert læring * prosjektbasert læring
* hyppige quizer * hyppige quizer
Programmet lærer grunnleggende JavaScript, HTML, og CSS, samt de nyeste verktøyene og teknikkene som dagens webutviklere bruker. Studenter får muligheten til å utvikle praktisk erfaring ved å bygge et skrive-spill, virtuelt terrarium, miljøvennlig nettleserutvidelse, et Space Invaders-inspirert spill og en bank-app for bedrifter. Ved slutten av serien vil studentene ha oppnådd en solid forståelse av webutvikling. Programmet underviser grunnleggende JavaScript, HTML og CSS, samt de nyeste verktøy og teknikker som dagens webutviklere bruker. Studentene får muligheten til å utvikle praktisk erfaring ved å bygge et skrive-spill, virtuelt terrarium, miljøvennlig nettleserutvidelse, et rom-invasjonsspill og en bankapp for bedrifter. Ved slutten av serien vil studentene ha fått en solid forståelse av webutvikling.
> 🎓 Du kan ta de første leksjonene i dette pensumet som en [Læringssti](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) på Microsoft Learn! > 🎓 Du kan ta de første leksjonene i denne læreplanen som en [Learn Path](https://docs.microsoft.com/learn/paths/web-development-101/?WT.mc_id=academic-77807-sagibbon) på Microsoft Learn!
Ved å sikre at innholdet stemmer overens med prosjektene, blir prosessen mer engasjerende for studentene og konseptene blir bedre husket. Vi skrev også flere oppstartleksjoner i JavaScript-grunnleggende for å introdusere konsepter, kombinert med en video fra "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)"-samlingen av videotutorials, hvor noen av forfatterne bidro til dette pensumet. Ved å sikre at innholdet samsvarer med prosjekter, blir prosessen mer engasjerende for studentene og konseptene blir lettere å huske. Vi har også skrevet flere introduksjonsleksjoner i JavaScript grunnleggende for å introdusere konsepter, sammen med en video fra "[Beginners Series to: JavaScript](https://channel9.msdn.com/Series/Beginners-Series-to-JavaScript/?WT.mc_id=academic-77807-sagibbon)" samling av videotutorials, hvorav noen av forfatterne bidro til denne læreplanen.
I tillegg setter en lavterskel-quiz før en klasse intensjonen for studenten mot å lære et tema, mens en andre quiz etter klassen sikrer videre hukommelse. Dette pensumet er designet for å være fleksibelt og morsomt, og kan tas i sin helhet eller delvis. Prosjektene starter smått og blir stadig mer komplekse innen slutten av en 12-ukers syklus. I tillegg setter en lavrisiko quiz før en klasse intensjonen til studenten mot å lære et emne, mens en andre quiz etter klassen sikrer videre innlæring. Denne læreplanen er designet for å være fleksibel og morsom og kan tas helt eller delvis. Prosjektene starter smått og blir gradvis mer kompliserte etter hvert som 12-ukers syklusen skrider frem.
Selv om vi bevisst har unngått å introdusere JavaScript-rammeverk for å fokusere på grunnleggende ferdigheter som kreves som webutvikler før du tar i bruk et rammeverk, vil et godt neste steg etter dette pensumet være å lære om Node.js via en annen videosamling: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)". Selv om vi bevisst har unngått å introdusere JavaScript-rammeverk for å konsentrere oss om grunnleggende ferdigheter som trengs som webutvikler før man tar i bruk et rammeverk, vil et godt neste steg for å fullføre denne læreplanen være å lære om Node.js via en annen videosamling: "[Beginner Series to: Node.js](https://channel9.msdn.com/Series/Beginners-Series-to-Nodejs/?WT.mc_id=academic-77807-sagibbon)".
> Besøk våre retningslinjer for [Adferdskodeks](CODE_OF_CONDUCT.md) og [Bidrag](CONTRIBUTING.md). Vi setter pris på din konstruktive tilbakemelding! > Besøk våre retningslinjer for [Atferdskodeks](CODE_OF_CONDUCT.md) og [Bidrag](CONTRIBUTING.md). Vi setter pris på konstruktive tilbakemeldinger!
## 🧭 Frakoblet tilgang ## 🧭 Offline-tilgang
Du kan kjøre denne dokumentasjonen frakoblet ved å bruke [Docsify](https://docsify.js.org/#/). Fork dette repoet, [installer Docsify](https://docsify.js.org/#/quickstart) på din lokale maskin, og så i rotmappen av dette repoet, skriv `docsify serve`. Nettstedet vil bli servert på port 3000 på din localhost: `localhost:3000`. Du kan kjøre denne dokumentasjonen offline ved å bruke [Docsify](https://docsify.js.org/#/). Fork dette repoet, [installer Docsify](https://docsify.js.org/#/quickstart) på din lokale maskin, og skriv så `docsify serve` i rotmappen til dette repoet. Nettstedet vil bli servert på port 3000 på din localhost: `localhost:3000`.
## 📘 PDF ## 📘 PDF
En PDF av alle leksjonene kan finnes [her](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf). En PDF av alle leksjonene kan finnes [her](https://microsoft.github.io/Web-Dev-For-Beginners/pdf/readme.pdf).
## 🎒 Andre kurs ## 🎒 Andre Kurs
Vårt team produserer andre kurs! Sjekk ut: Vårt team produserer andre kurs! Sjekk ut:
@ -225,7 +225,7 @@ Vårt team produserer andre kurs! Sjekk ut:
[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) [![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
--- ---
### Azure / Edge / MCP / Agents ### Azure / Edge / MCP / Agenter
[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
@ -233,7 +233,7 @@ Vårt team produserer andre kurs! Sjekk ut:
--- ---
### Generative AI Series ### Generativ AI Serie
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
@ -241,7 +241,7 @@ Vårt team produserer andre kurs! Sjekk ut:
--- ---
### Core Learning ### Kjerne Læring
[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
@ -252,7 +252,7 @@ Vårt team produserer andre kurs! Sjekk ut:
--- ---
### Copilot Series ### Copilot Serie
[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) [![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
@ -260,21 +260,21 @@ Vårt team produserer andre kurs! Sjekk ut:
## Få hjelp ## Få hjelp
Hvis du sitter fast eller har spørsmål om å bygge AI-apper. Bli med andre elever og erfarne utviklere i diskusjoner om MCP. Det er et støttende fellesskap hvor spørsmål er velkomne, og kunnskap deles fritt. Hvis du sitter fast eller har spørsmål om å lage AI-apper. Bli med andre lærende og erfarne utviklere i diskusjoner om MCP. Det er et støttende fellesskap hvor spørsmål er velkomne og kunnskap deles fritt.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Hvis du har produktinnspill eller feil under bygging, besøk: Hvis du har produktfeedback eller feil mens du bygger, besøk:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Lisens ## Lisens
Dette depotet er lisensiert under MIT-lisensen. Se [LICENSE](../../LICENSE) filen for mer informasjon. Dette depotet er lisensiert under MIT-lisensen. Se [LICENSE](../../LICENSE)-filen for mer informasjon.
--- ---
<!-- CO-OP TRANSLATOR DISCLAIMER START --> <!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfraskrivelse**: **Ansvarsfraskrivelse**:
Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på dets opprinnelige språk skal betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi påtar oss ikke ansvar for eventuelle misforståelser eller feiltolkninger som følge av bruken av denne oversettelsen. Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på sitt opprinnelige språk bør betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for misforståelser eller feiltolkninger som følge av bruk av denne oversettelsen.
<!-- CO-OP TRANSLATOR DISCLAIMER END --> <!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save