Session 1
Agenda
I modul 1 (ud af 6 moduler) vil vi lave en introduktion til kurset, og du vil blive guidet igennem grundlæggende koncepter af C# og .NET frameworket. Dette starter med en overordnet introduktion til kurset og dets mål, efterfulgt af en dybdegående gennemgang af .NET, Microsofts udviklingsplatform, som C# ofte anvendes sammen med. Herefter vil fokus skifte til selve C# programmeringssproget, hvor der lægges vægt på dets syntaks og type system. Dette fundament vil sætte kursisterne i stand til at forstå, hvordan C# anvendes til at bygge robuste applikationer inden for .NET økosystemet.
Her er siden om sessionen hos Prosa.
Resourcer
Vi kommer til at arbejde med følgende resourcer i dag:
- Introduktion til .NET
- Udviklingsmiljøer
- Hello World
- Introduktion til C#
- Løsning og projekter
- Konsolapplikationer
- Dokumentation
- Simple variabler
- Tegn og tekster
- Konstanter
- Introduktion til debugging (hvis vi kan nå det)
Tip
Hvis du er helt ny i programmering så se her for en introduktion til programmering.
Opgaver
Der er masser af små opgaver du kan arbejde med efter sessionen. Du kan eventuelt kigge på version 1 af denne opgave om hastighedskonvertering.
Husk, at du skal løse opgaverne på din måde. Enten kan du vælge at skrive koden selv, eller du kan kopiere fra løsningen for at prøve at forstå hvad der sker, og evt. ændre i koden, eller også bruger du GitHub Copilot (eller andet) til at få hjælp. Det vigtigste er at du læser og skriver noget kode.
Spørgsmål du kan stille AI
Her er nogle af de spørgsmål, du kan stille AI, der passer på de emner vi dækker i denne session:
Generelle spørgsmål
- Hvad er historien bag C# og .NET?
- Hvordan fungerer C# sammenlignet med andre sprog som Python, C++, Java og Rust?
- Hvad er forskellen på .NET Framework, .NET Core og .NET?
- Hvad er BCL (Base Class Library) i .NET?
- Hvad er NuGet?
- Hvad er en Console-applikation i .NET?
- Hvad er dotnet CLI i mit operativsystem, og hvordan virker det?
- Kan du vise mig step-by-step, hvordan man opretter en simpel “Hello World” Console-applikation i .NET fra en terminal?
- Hvad er forskellen på Visual Studio og Visual Studio Code?
- Hvad er den grundlæggende syntaks i C# (klammer, semikolon, kommentarer osv.)?
- Giv nogle simple eksempler på C#-kode, der viser forskellen på store og små bogstaver.
- Hvad er et programmeringsparadigme, og hvilke dækker C# over?
- Hvad betyder det, at C# er typestærkt, typesikkert og hukommelsessikkert?
- Forklar, hvad en “Garbage Collector” er i C#, og hvad den gør godt for.
- Der er overordnet fem muligheder for at skabe typer i C#: klasser, strukturer, interfaces, enums og delegates. Vil du ikke helt overordnet forklare forskellene mellem dem, og hvorfor man skal bruge dem?
- Helt overordnet: hvad er debugging i C#? Og hvordan hænger det sammen med breakpoints og at “steppe sig gennem koden”? Og hvorfor er det smart?
- Hvad består en C#-applikation typisk af – herunder hvad er et projekt, og hvad er en løsning?
- Giv et step-by-step eksempel på, hvordan jeg i en terminal kan skabe to projekter og binde dem sammen i en løsning.
- Hvad er de mest simple og anvendte datatyper i C#?
- Hvordan skaber jeg en variabel i C# og tildeler en værdi?
- Hvilke taltyper findes i C#?
- Hvilke operatorer findes relateret til tal?
- Hvordan kan jeg formatere tal?
- Hvordan kan jeg typekonvertere mellem forskellige taltyper?
- Hvilken betydning har kultur for talformatering i C#?
- Hvad er en bool?
- Hvordan fungerer dato og tid i C#?
- Hvordan arbejder jeg med dato og tid i C#?
- Hvordan kan jeg formatere dato og tid i C#?
- Hvad betyder
var
i C#? - Hvad er en char i C#?
- Hvad er en string i C#?
- Hvordan kan jeg bruge en string i C#?
- Hvorfor bør jeg nogle gange benytte en StringBuilder i stedet for en string?
- Helt overordnet – hvad er forskellen på en klasse og en struct? Og har det noget med værdityper og referencetyper at gøre?
- Kan du lave en tabel over de mest anvendte datatyper i C# – herunder deres størrelse, værdityper vs. referencetyper, og hvornår man typisk bruger dem?
- Hvorfor kan man sætte en variabel af typen string til null?
- Hvad er en konstant i C#?
- Hvad er en enum i C#?
Git og GitHub-spørgsmål
- Hvad er Git?
- Hvad er historien bag Git?
- Hvad er forskellen på Git og GitHub?
- Kan du kort forklare grundlæggende begreber som commit, branch, PR og merge?