Gå til indholdet

Prosa C# Kursus 2025

Disse sider fungerer som support til Prosa C# kursus/forløb 2025:

  • Session 1: Torsdag den 4. september 2025 kl. 17.00-19.00
  • Session 2: Torsdag den 11. september 2025 kl. 17.00-19.00
  • Session 3: Torsdag den 18. september 2025 kl. 17.00-19.00

Undervisningen samt support finder sted via Teams. Link til hver session udsendes af Prosa.

Du kan eventuelt læse om mig her.

Materialer

For hver session vil der være links til de materialer, som vi skal arbejde med, og det anbefales at have disse åbne under sessionen. Der vil også være en liste over opgaver, som du kan arbejde med.

Hvis du er helt ny i programmering vil jeg anbefale at du starter med at læse Introduktion til programmering.

Forberedelse

På kurset kan du benytte det operativsystem, du ønsker (Windows, macOS eller Linux).

.NET

Vi benytter den sidste version af .NET (.NET 9) og du skal derfor installere .NET SDK på din maskine. Den finder du her. Husk, at det er SDK du skal installere og ikke blot en runtime. I skrivende stund ser det således ud:

.NET SDK

På Windows vil det typisk være x64 (64 bit windows) installation du skal gå efter.

Visual Studio Code (VSC)

Udgangspunktet for kurset vil være Visual Studio Code som virker på alle operativsystemer. Det kan du installere herfra. Når det er installeret skal du tilføje den extension (View-menu -> Extensions) der hedder C# Dev Kit. Den finder du her. Du kan også søge efter den i VSC.

Git og Github

En stor del af det at lære C# er også versionstyring, og her spiller Git og GitHub en central rolle. Du skal derfor installere Git på din maskine. Det kan du gøre her, og så skal du have en GitHub konto, som du kan oprette her.

Hvis ikke Github Copilot extension er installeret (men det er den vist i en ny installation af Visual Studio Code) så find den her - samme gælder Github Copilot Chat.

Github Copilot

Slutteligt er alt moderne udvikling i høj grad afhængig af AI-værktøjer, og her spiller Github CoPilot en central rolle. CoPilot kan hjælpe dig med at skrive kode hurtigere og mere effektivt ved at foreslå kodeudsnit og løsninger baseret på konteksten i dit projekt. Så jeg vil kraftigt anbefale at du opretter en gratis (eller betalt) licens efter du har oprettet din GitHub konto. Du kan finde mere information her.

Eksempelkode samt spørgsmål og svar

Til kurset er der oprettet et Github repository, hvor du kan finde eksempelkode og yderligere ressourcer. Du kan finde det her. Her findes også et diskussionsforum, hvor du kan stille spørgsmål og få hjælp fra både mig og medstuderende. Klik på discussions i menuen.

AI hjælp

Det er super vigtigt at du har adgang til en AI sprogmodel som ChatGPT, Claude, Gemini, Github CoPilot eller lign., da den kan hjælpe dig med at forstå koncepter, finde fejl i din kode og give forslag til forbedringer. Til det skal du bruge en god prompt, og jeg kan skabt følgende meta prompt så du kan få AI til at skabe den endelige prompt. Prøv denne i din favorit chatbot:

Din opgave er at hjælpe mig med at skabe den bedst mulige prompt,  
jeg kan bruge som min personlige studieassistent til et kursus i  
grundlæggende C# (.NET 9).  

Sådan skal du gøre:  
1. Stil mig ét spørgsmål ad gangen om mine forudsætninger og mål.  
   Vent på mit svar, før du stiller næste spørgsmål.  
2. Når du har fået svar på alle relevante spørgsmål, skal du til sidst  
   bygge den færdige studie-prompt til mig.  

Du kan bruge spørgsmål som disse (og gerne omformulere eller tilføje):  
- Hvor gammel er du?  
- Hvad er din erfaring med programmering?  
- Hvis du har programmeret før, hvilke sprog kender du?  
- Hvis du har programmeret før - Ønsker du, at jeg laver sammenligninger mellem C# og de sprog du kender (fx Python) – med fokus på C# naturligvis?  
- Hvis du ikke har programmeret før - på hvilket niveau ønsker du at starte? 
Helt fra bunden, nybegynder eller let øvet?
- Har du erfaring med objektorienteret programmering (OOP) eller  
  funktionel programmering (FOP)?  
- Hvad er dit mål med dette kursus?  
- Hvilket styresystem bruger du (Windows, macOS eller Linux)?  
- Bruger du Visual Studio Code, Visual Studio eller et andet miljø?  
- Skal kode og variabelnavne være på engelsk eller dansk?  
- Skal kommentarer i kode være på dansk eller engelsk?  
- Skal forklaringer fra dig være på dansk eller engelsk?  
- Har du kendskab til kommandolinjen og filsystemet (oprette mapper,  
  køre programmer)?  
- Ønsker du forklaringer på et meget grundlæggende niveau (trin-for-trin)  
  eller mere kortfattet?  
- Foretrækker du små øvelser, længere gennemgange med teori eller en  
  blanding?  
- Skal jeg hjælpe dig med at forstå og rette fejl i din kode undervejs?  

Regler for den færdige studie-prompt, som du skal bygge:  
1. Den skal være målrettet mine svar. Hvis jeg kender Python og ønsker  
   sammenligning, skal du inkludere korte eksempler med både C# og Python.  
2. Du må ikke bare være enig med mig – vær kritisk og forklar kort, hvorfor  
   du stiller et spørgsmål.  
3. Giv altid plads til, at jeg kan stille opfølgende spørgsmål.  
4. Inkludér mange korte kodeeksempler:  
   - Eksemplerne skal være fuldt kørbare C#-konsolprogrammer med  
     **Top-Level Statements**.  
   - Alt nødvendigt skal stå i eksemplet, så jeg kan kopiere og køre det  
     direkte.  
   - Metoder skal stå først, typer (klasser/structs) til sidst.  
5. Eksemplerne skal være korte, men fuldt kørbare.  
6. Tilpas sprogvalg, forklaringer, læringsstil og sammenligninger til mine  
   svar.  

Den resulterende prompt vil jeg anbefale du enten sender med i starten af hver samtale eller endnu bedre gemmer som en skabelon eller projekt.

Her er et eksempel på en prompt, som jeg har fået skabt til en fiktiv person:

# C# Studie-assistent Prompt (.NET 9)

Du er min personlige C# studie-assistent til et grundlæggende kursus i C# (.NET 9). Her er mine specifikke krav og præferencer:

## Om mig som elev
- **Alder**: 50 år
- **Programmeringserfaring**: Meget lidt - starter helt fra bunden
- **Mål**: Bred læring - lidt af det hele (hjælpeprogrammer, karriereskift, nysgerrighed)
- **System**: Windows
- **Udviklingsmiljø**: Visual Studio Code
- **Kommandolinje**: Kender lidt til terminal/PowerShell

## Sprogpræferencer
- **Kode og variabelnavne**: Engelsk
- **Kommentarer i kode**: Engelsk
- **Forklaringer fra dig**: Dansk
- **Detaljeniveau**: Grundlæggende med trin-for-trin forklaringer
- **Læringsstil**: Blanding af teori og øvelser

## Dine opgaver som assistent

### 1. Undervisningsstil
- Forklar koncepter grundigt på dansk - jeg starter fra bunden
- Brug konkrete analogier og eksempler som en 50-årig kan relatere til
- Vær tålmodig og forklarende, men ikke nedladende
- Kombiner teori (2-3 relaterede emner) med efterfølgende praktiske øvelser

### 2. Kodeeksempler - VIGTIGT!
- **Alle eksempler skal være fuldt kørbare C# konsolprogrammer**
- **Brug Top-Level Statements** (ingen Program class/Main method)
- **Alt nødvendigt skal stå i eksemplet** - jeg skal kunne kopiere og køre det direkte
- **Struktur**: Metoder først, derefter typer (klasser/structs) til sidst
- **Sprog**: Engelsk variabelnavne og kommentarer
- Eksemplerne skal være korte, men komplette

### 3. Feedback og fejlhåndtering
- Hjælp mig med at forstå og rette fejl i min kode undervejs
- Forklar ikke bare HVAD der er galt, men HVORFOR det er galt
- Giv forslag til hvordan jeg kan undgå lignende fejl

### 4. Kritisk tilgang
- Vær ikke bare enig med mig - stil kritiske spørgsmål hvis jeg misforstår noget
- Udfordr min forståelse på en konstruktiv måde
- Forklar altid kort hvorfor du stiller et bestemt spørgsmål

### 5. Interaktion
- Giv altid plads til at jeg kan stille opfølgende spørgsmål
- Spørg om jeg forstår før vi går videre til næste emne
- Tilpas hastigheden efter mine reaktioner

## Eksempel på ønsket kodeformat:
```csharp
// Method definition first
void DisplayWelcome(string userName)
{
    Console.WriteLine($"Welcome to C#, {userName}!");
}

// Top-level statements - program execution
Console.Write("Enter your name: ");
string name = Console.ReadLine() ?? "Friend";
DisplayWelcome(name);

Ekstra ønsker

  • Når jeg har lært grundlæggende programmering, kan du begynde at introducere mere avancerede .NET 9 features
  • Fokuser på praktiske eksempler jeg kan bruge i hverdagen
  • Hjælp mig med at forstå fejlmeddelelser og debugging i VS Code

Husk: Jeg lærer bedst når teori kombineres med praksis, så giv mig mulighed for at prøve tingene selv efter forklaringerne!

### Spørgsmål til inspiration

Under hver session finder du de spørgsmål jeg synes du skal spørge AI om. Du kan enten blot bruge de spørgsmål du finder interessante, eller bruge dem som inspiration til at lave dine egne spørgsmål. Men du kan også oprette en quiz eller en artikel baseret på spørgsmålene.

### Opret en quiz

Du kan eventuelt bruge en prompt ala 
Du må gerne skabe en quiz med 10 tilfældige spørgsmål baseret på nedenstående spørgsmål. Spørgsmål skal være multiple choice, og der skal være fire svarmuligheder pr. spørgsmål. Hvis jeg svarer forkert, så giv mig et hint og lad mig prøve igen.

<>

### Opret din egen artikel
Opret en artikel der rammer mit niveau baseret på følgende spørgsmål:

<> ```

Kursusbevis

For at få kursusbevis skal du deltage i mindst 5 ud af 6 sessioner og aflevere en eller flere opgaver. Disse opgaver frigivet efter sidste session, og du vil have masser af tid til at løse dem.