Indhold af dette Valgfag:
Advanced Software Construction
Indhold:
At dykke længere ned i C# og lære avancerede teknikker til at konstruere og opbygge Frameworks, bl.a.
Advanced C# language features relevant and other features for building Frameworks
- Refleksion (udrede og gøre brug af typer på kørselstidspunktet)
- Et nærmere kig på iteration (indexers, iterators og collection interfaces)
- Operator Overloading (du kan selv bestemme hvad ‘+’ og ‘-‘ betyder på objekt niveau)
- Anonyme Typer (oprette nye typer på kørsels tidspunktet)
- Et nærmere kig på LINQ
- Et nærmere kig ind i Design Patterns
- Hvad betyder SOLID principperne for din programmering
- Refaktorering teknikker
Concurrency
- Hvordan kan du benytte state machine til håndtering af asynkrone input
- Avanceret brug af synkroniserings mekanismer in C#
- Hvordan benyttes parallelisering i C#
Undervisningsmål
Viden:
Den studerende har viden om:
- Flere avancerede features i C#
- Målet og brugbarheden af SOLID principperne
- Mangfoldigheden af Design Patterns
- Refaktorerings teknikker og værktøjer
- Problemer og løsninger til samtidighed (concurrency)
Færdigheder:
Den studerende har færdigheder til:
- At aktivt udnytte de muligheder der ligger i C# sprogets mange features f.eks. ved udvikling af Frameworks.
- At udvikle software der er i overensstemmelse med principperne i SOLID.
- At afdække flere steder og muligheder for med fordel at benytte Design Patterns, samt at vælge mellem Design Patterns på en kvalificerede måde.
- At udvikle software gennem refaktorering, samt at vælge mellem forskellige refaktorerings teknikker på en kvalificerede måde.
- At kunne anvende samtidighedes (concurrency )kontrol mekanismer hensigtsmæssigt.
Kompetencer:
Den studerende har kompetencer indenfor:
- At deltage i udviklingen af større moderne software systems, gennem inddragelse af en række avancerede teknikker til SOLID, DesignPattern, Samtidighed og refaktorering.
- At udvikle Object-Oriented kode af høj kvalitet, bl.a. ved at identificere dårlig kode og kan redesigne koden på en systematisk måde.