Læringsmål

  • Kan installere Visual Studio, GitHub Desktop og VS Code
  • Kan oprette et GitHub-konto og klone GF2-CSharp repoet
  • Kan oprette et simpelt C# konsolprojekt
  • Kan forklare strukturen i et standard C# konsolprogram (namespace, class, Main)

Kom i gang

Velkommen til GF2 Programmering. Du lærer C# og Git i studiegrupper — med opgaver, projekter og pensum du kan arbejde dig igennem i dit eget tempo.

Installation og værktøjer

Som udvikler bruger du flere værktøjer, der hver især løser en bestemt opgave. Visual Studio er din primære IDE (Integrated Development Environment) til C# — her skriver, kører og debugger du kode. GitHub Desktop giver dig et grafisk interface til Git, så du kan committe og pushe uden at huske alle kommandoer. VS Code er en let editor, der er praktisk til scripts, markdown og hurtige ændringer.

Hent disse værktøjer inden første undervisningsdag:

Opret en konto på GitHub hvis du ikke har en. GitHub er en cloud-tjeneste, hvor du gemmer og deler din kode — tænk på det som Google Drive, men til programmeringsprojekter.

Videoer

Se det i praksis

What is C#? [Pt 1] | C# for Beginners

Hello World! [Pt 2] | C# for Beginners

Basics of VS Code and the C# DevKit [Pt 3] | C# for Beginners

GitHub og kursus-repoet

GitHub er verdens største platform til versionsstyring af kode. Når du kloner et repository, kopierer du hele projektet ned på din egen computer — så du kan arbejde lokalt og synce ændringer tilbage.

Klon kursus-repoet — her ligger opgaver og projekter:

github.com/Mercantech/GF2-CSharp

I GitHub Desktop: File → Clone repository → vælg URL'en ovenfor. Nu har du en lokal kopi, du kan åbne i Visual Studio.

Pensum er designet til begyndere. Har du erfaring, kan du arbejde forud — der er ekstra projekter at tage fat i.

Opgaverne kan løses med AI i én prompt. Brug ikke AI til at løse opgaverne for dig — men det er fint at bruge AI til at forstå pensum bedre.

Dit første C# konsolprojekt

Et konsolprogram kører i en terminal og skriver tekst — perfekt til at lære grundlæggende C# uden at tænke på grafik.

Sådan opretter du et projekt i Visual Studio:

  1. Create a new project → vælg Console App (C#)
  2. Giv projektet et navn, fx MitFoersteProjekt
  3. Gennemgå Program.cs — det er her din kode lever
  4. Tryk F5 for at køre

Nyere C#-projekter kan bruge top-level statements (kode uden class og Main). Det er kortere, men den klassiske struktur nedenfor hjælper dig med at forstå, hvad der sker under overfladen.

Anatomi af et C#-program — Main(string[] args)

En standard konsolapp i C# har en fast struktur. Du skal forstå programmet, før du kan skrive i det!

namespace FirstProgram
{
    public class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hej og velkommen til C#-bogen!");
        }
    }
}

Her er kodeordene, der starter programmet, forklaret ét ad gangen:

namespace

Namespaces (Microsoft Docs)

Et namespace organiserer din kode og adskiller den fra andre dele af programmet. Det står i toppen af stort set alle filer og kan indeholde klasser — og endda indlejrede namespaces.

Tuborg-klammer - { }

Formatting (Microsoft Docs)

Du kender sikkert { og } fra andre sprog (Python bruger dem normalt ikke). Klammerne definerer, hvor et namespace, en klasse eller en metode starter og stopper.

public

public (Microsoft Docs)

public betyder, at den efterfølgende klasse eller variabel er offentligt tilgængelig — altså at den kan bruges uden for sin egen klasse eller namespace. Emner som public, private og protected dækker vi senere i forløbet.

class

class er et nøgleord, du lærer meget mere om i OOP-kapitlet. Klasser bruges til at holde variabler (attributter) og metoder. Objekter hænger tæt sammen med klasser — det kommer vi tilbage til der.

static

Main-metoden skal altid være static. Det betyder, at metoden kan kaldes uden at oprette en instans af klassen. Du behøver ikke dyb viden om static lige nu — det bliver tydeligere, når vi arbejder med objekter.

void

void betyder, at metoden ikke returnerer noget. Hvis en metode skal sende et resultat tilbage, erstatter du void med den rette type — fx int eller string. Det bruger vi meget senere i kurset.

Main(string[] args)

Main() er indgangspunktet til programmet. Når du starter appen, leder runtime efter en Main-metode og begynder der. I større projekter ligger det ofte i en fil kaldet Program.cs — præcis det samme princip.

string[] args er kommandolinjeargumenter (input fra terminalen). args er den gængse engelske forkortelse for arguments. Dem bruger vi sjældent i starten, men de er en del af signaturen.

Vi bruger engelske navne til variabler og parametre gennem hele pensum — også når forklaringen og programmets output er på dansk. Det gør koden lettere at dele og holder den på linje med C#-dokumentation og almindelig best practice.

Console

Console er en del af System-biblioteket. Den giver dig et sted at skrive tekst til (og senere læse input fra) konsollen.

WriteLine er den du bruger mest i starten.

Versionsstyring fra dag ét

Selv som begynder bør du vænne dig til at gemme din kode med Git. Hver gang du har lavet en logisk ændring, laver du en commit — et snapshot af din kode på det tidspunkt.

En god commit-besked forklarer hvad du har ændret: "init: opret GF2 projekt" er bedre end "fix" eller "asdf". Du lærer mere om Git i senere pensum-emner.

Git-trin

  • Branch: main
  • Commit: init: opret GF2 projekt

Opret et GitHub-repo og push dit projekt efter første commit.

Sådan arbejder du med pensum

Pensum er opdelt i kapitler, der følger undervisningen. Hvert kapitel har kompetencemål — det er det, du skal kunne, når du er færdig. Brug dem som tjekliste.

Du kan arbejde på to måder. Begge følger det samme pensum og træner de samme kompetencer — forskellen er, om koden kører på GF2 Learn eller på din egen computer.

Spor A — Brug GF2 Learn og den indbyggede IDE

Dette er den nemmeste måde at komme i gang på. Du behøver ikke installere noget, og du kan skrive og køre C# direkte i browseren.

  1. Læs kapitlet og gennemgå kodeeksemplerne.
  2. Åbn de tilhørende Exercises.
  3. Skriv din løsning efter // TODO i den indbyggede editor.
  4. Tryk Kør eller brug Ctrl+Enter for at teste koden.
  5. Brug output og fejlbeskeder til at rette løsningen.
  6. Besvar kapitlets quizspørgsmål og brug kompetencemålene som tjekliste.

Er du logget ind, kan du også gemme løsninger med Gem løsning eller Ctrl+S.

Start her, hvis du er ny. Den indbyggede IDE fjerner arbejdet med installation og projektfiler, så du kan koncentrere dig om at lære C#.

Spor B — Arbejd lokalt på din egen PC

Dette spor er til dig, der er færdig med dagens opgaver, er foran pensum eller er klar til en mere realistisk udviklerarbejdsgang.

  1. Følg guiden Lokal udvikling og installér .NET SDK.
  2. Vælg VS Code med C# Dev Kit eller Visual Studio.
  3. Opret et lokalt C#-konsolprojekt.
  4. Genskab kapitlets kodeeksempler og opgaveløsninger i projektet.
  5. Kør koden, sæt breakpoints og undersøg variabler med debuggeren.
  6. Gem ændringerne med Git og skriv tydelige commit-beskeder.

Lokalt arbejder du med rigtige .cs- og .csproj-filer. Det kræver lidt mere opsætning, men giver dig erfaring med den arbejdsgang, du møder på en arbejdsplads.

Du behøver ikke vælge ét spor for resten af forløbet. Du kan løse en opgave på GF2 Learn først og bagefter genskabe den lokalt som ekstra træning.

Studiegrupper er til at diskutere og hjælpe hinanden — ikke til at kopiere løsninger. Det er helt normalt at sidde fast; det er en del af at lære programmering.

Test din viden

Spørgsmål 1

Hvad er indgangspunktet i et standard C# konsolprogram?

Spørgsmål 2

Hvad betyder void i signaturen static void Main(string[] args)?

Spørgsmål 3

Hvad er forskellen på Console.WriteLine og Console.Write?

Spørgsmål 4

Hvad gør et namespace i C#?

Spørgsmål 5

Hvad er formålet med en Git commit?

Spørgsmål 6

Hvilket værktøj er den primære IDE til C#-udvikling i GF2?

Spørgsmål 7

Hvad betyder staticMain-metoden?