35 |
Velkommen til Datamatiker-studiet!
Generel intro til Zealand og studiet
Overblik over Software Construction
|
Introprogram
Introduktion til Zealand og studiet
IT-vejledninger
Studieordning |
|
36
|
Start
Værktøjer og Materialer
I gang med Visual Studio Enterprise 2022
Programming - Part I
Code organisation
Types
Variables
Type conversion
Simple I/O
Arithmetic
Logic
Functions |
Litteratur: Getting Started (s.2 - 22)
Visual Studio Enterprise 2022
Du får licens-nøgle fra Azure Dev Tools (tidligere Microsoft Imagine)
Slides:
SoftwareTools.pptx
IT
HW
SW
Noter: Programming - Part I (s. 2-19)
Slides:
TypesVariables.pptx
ArithmeticConversion.pptx
Logic.pptx
Functions.pptx
Online kursus med quizzes:
SoloLearn.com |
Start.1 (Getting Started s. 22)
Pro1.1 - Pro1.4 (Programming - Part I, s. 20-22)
Ekstra opgave: (PrintMovie - funktion)
Tag udgangspunkt i opgave Pro1.1 (MovieManagerV05).
Lav en ny funktion PrintMovie( ..) der kan udskrive alle dine informationer om en film.
Bemærk, at funktionen skal defineres (skrives) uden for kroppen af MyCode() funktionen, dvs efter public void MyCode{ ... }.
Funktionen skal være public og void, og skal tage alle dine varable der beskriver en film, som paramertre.
Omstrukturerer (refaktorerer)
MyCode( ) funktionen, så alle Console.WriteLine sætningerne der udskriver film-information flyttes til PrintMovie(...). Kald PrintMovie(...) fra MyCode( ).
Prøv evt at ændre på dine film-oplysninger (fx title="XXX") og kald PrintMovie( ..) igen.
Opgave: (SoloLearn)
Gennemfør Basic Concepts delen på: SoloLearn.com
|
37-38 |
Object-Oriented Programming - Part I
What is OO?
Creating objects
Reference-type vs. value-type
Using properties and methods
Class definitions
Class collaboration
Static classes and methods |
Litteratur: Object-Oriented Programming, Part I (s. 3-38)
Slides:
ObjectsClasses.pptx
ClassDefinition.pptx
ClassCollaboration.pptx
Static.pptx
|
Program vist i klassen :
MovieManager.zip
Program vist i klassen:
PersonClassTest.zip
Ekstra opgave: (LilleOpgave)
1) Lav et program der kan tage et heltal som input og fortælle om det er et et negativt tal, et positivt tal eller nul.
2) Lav et andet program der tager to heltal som input og kan fortælle hvilket af dem der er størst.
Løsning: LilleOpgave.zip
Ekstra opgave: (CalculatePrice - svær opgave)
Der ønskes en metode der kan beregne prisen på en ny "oplevelses-event".
For af udnytte faciliteterne mest (benyttes adfærdsregulerende pris) dvs prisen skal beregnes på baggrund af:
Grundpris, aldersrabat, studierabat, sesson, tid på dagen og grupperabat mm
Conditions:
Grundpris: 100 kr
Aldersrabat og studiekort:
Børn u. 3år: gratis
Børn o.2år u.13år: halv pris
Unge o. 16år med studiekort: 20 % rabat
Pensionist o. 67år: 40% rabat
Sesson:
Lavsesson (jan, feb): 20 % rabat
Højsesson (maj-august): 20% tillæg
Time:
Mellem 8-10: 10 % rabat
Mellem 15-20: 10% tillæg
Gruppe rabat:
Antal 10-19: 10% rabat
Antal o. 19: 15% rabat
løsning: CalculatePrice.zip
OOP.1.1 - 1.7 (Object-Oriented Programming, Part I, s. 40-46)
Ekstra opgaver:
OOP.1.8 - 1.9 (Object-Oriented Programming, Part I, s. 47-48)
|
39-40 |
Programming - Part II
Control statements
Debugging
Data structures
Code Quality (keeping code DRY) |
Litteratur: Programming, Part II (s.3-46)
Slides:
ConditionalStatements.pptx
RepetitionStatements.pptx
Debugging.pptx
Lists.pptx
Dictionary.pptx
Enumerations.pptx
DRY.pptx
Bemærk, hvis du har svært ved C# og døjer lidt med de engelske gloser, findes der noget materiale på dansk her:
Nemprogrammering.dk (c# - kursus på dansk) |
Ekstra opgave: (Class Fly)
Implementer klassn Fly - helt fra grunden i et nyt consol-project.
Klassen Fly skal have følgende:
Instansfelter: _xPosition, _yPosition, _xSpeed, _ySpeed og _flyId.
Konstruktører: Fly(string) og Fly(string, double, double, double, double)
Properties: FlyId(readonly), XPosition, YPosition, XSpeed, YSpeed
Metoder: Move(), Accelerate(), Decelerate(), Stop(), Turn(double, double)
Move() skal opdatere _xPosition og _yPosition ved at addere _xSpeed og _ySpeed til positionerne. Accelerate() og Decelerate() skal opdatere _xSpeed og _ySpeed med en
fast procentsats fx 10%. Stop() sætter _xSpeed og _ySpeed til 0. Turn(double, double) gopdatere _xSpeed og _ySpeed med nye værdier.
Test klassen Fly ved at oprette Fly-objekter i Main() og kalde metoderne på objekterne.
(Brug Console.WriteLine() til at udskrive flydata før og efter hvert metodekald.)
Hvis du har mod på vektorregning eller er en ørn til cosinus og sinus er du velkommen til at beregne de nye værdier i stedet for at parameteroverføre de nye værdier :)
Løsning: FlyClass.zip (kode fra klassen)
Kode fra klassen:
TemperatureMeasurementArray.zip (Array)
KundeListe.zip (List)
KundeListe(2).zip (ver.2 - nu med Dictionary)
Opgave: BookCatalog
Obligatorisk opgave i SWD/SWC: UML1 - (Big Mamma, PizzaStore)
Pro.2.1 - Pro.2.9 (Programming - Part II, s. 47-55)
Pro.2.13 - Pro.2.14 (Programming - Part II, s. 59-60)
Ekstra opgaver:
Pro2.10-Pro2.12, Pro2.15 |
41 |
Ikke planlagt endnu (Buffer) |
|
|
42 |
Efterårsferie |
|
Opgave: WoodPelletsShop (Part 1)
Løsning: WoodPelletShop.zip |
43-44 |
Object-Oriented Programming - Part II
Composition/Inheritance
Object construction
Overriding properties/methods
Polymorphic behavior
Abstract methods and classes
Interfaces
|
Litteratur: Object-Oriented Programming, Part II (s. 3-15)
Slides:
InheritanceFundamentals.pptx
InheritanceAbstract.pptx
InheritancePoly.pptx
InheritanceObject.pptx
InheritanceInterfaces.pptx
Bob Tabor Video (Inheritance)
LinkedIn.com/learning videoserie I
LinkedIn.com/learning videoserie II
|
Opgaver:
Begreber2 if og løkker
EjendomsMægleren
OOP.2.1 - 2.6 (Object-Oriented Programming, Part II , s. 47-52)
ISpeak
Obligatorisk opgave i SWD/SWC: UMLII - (Big Mamma, Pizzaria)
Opgave:
Læs og Løs exercises i .NET Academy: https://dotnetcademy.net/Learn/2045/Pages/1
Kode fra klassen:
EstateAgency.zip (Ejendomsmægler)
WolfPack.zip
|
45 |
Exceptions
Bemærk:
Unit test er rykket til 2. semester
|
Litteratur: Object-Oriented Programming, Part II (s. 16-20)
Slides:
Exceptions.pptx
Bob Tabor Video (Exceptions)
LinkedIn.com/learning
|
Opgaver:
OOP.2.8 (Object-Oriented Programming, Part II , s. 54)
ExceptionsObjektVsRef.docx
MyStack
Kode vist i klassen:
CarExceptionTest.zip
MyStack.zip
ExceptionTest.zip
ItemExceptionTest.zip
|
46 |
ASP.Net Core / Razor Pages
Build your first application
Razor Pages architecture
Model Binding
Implementing :
- Read operation
- Create operation
Server side Validation
Singleton Design pattern |
Razor Pages
RazorPages_Tutorial: PART 1: Razor Pages
- Chapter 4
- Chapter 5
- Chapter 6
- Chapter 7
- Chapter 8
Bemærk: Skip afsnitet om Singleton design pattern i kapitel 8 !!!!
Videoer (Mohammad El Allali):
Model Binding:
Validation-Singleton-Dependency injection:
Razor Pages Arkitektur illustrationer:
RazorArchitecture.docx
RazorArchitecture(Req-Res).docx
Slides :
|
Exercises (ItemsRazor)
ItemsRazorPages (1. opgave i serien ItemsRazor)
CreateNewItems (2. opgave i serien ItemsRazor)
Solutions (ItemsRazor)
ItemRazorV1.zip (Løsning til opgave 1)
ItemRazorV2.zip (Løsning til opgave 2)
Kode vist i klassen:
EventMakerRazorPagesV2.zip
ItemRazor.zip
CarRazorPages.zip (kode fra klassen d. 17/11) NYT!
Ekstra:
Exercises (Razor Pages)
Løs følgende opgaver fra RazorPages_Exercises.docx
RazorPage1.0
RazorPage2.0
RazorPages3.0
Bemærk: Du finder start projekter og løsninger her:
Unsolved exercise projects (Razor Pages - VS2019)
Solved exercise projects (Razor Pages - VS2019)
UML II - Big Mamma Pizzeria - Minimum løsningsforslag: NYT!
DCD: UML2SimpelDCD.pdf
Code: BigMammaUML2Simple.zip
UML II - Big Mamma Pizzeria - Udvidet løsningsforslag: NYT!
DCD: UML2udvidetV2.vsdx (Design Class Diagram - visio)
DCD: UML2UdvidetV2.pdf (som PDF)
SD: UML2_Sequence-Diagram_PizzaMenuCard_SearchPizza().vsdx
SD: UML2_Sequence-Diagram_PizzaMenuCard_SearchPizza().pdf
SD: UML2_Sequence-Diagram_Order_CalculatePrice().vsdx
SD: UML2_Sequence-Diagram_Order_CalculatePrice().pdf
Code: BigMammaUML2.zip |
47
|
ASP.Net Core / Razor Pages (fortsat)
Routing with Razor Pages
Implementing :
- Update operation
- Delete operation
- Filter operation
|
Razor Pages (fortsat)
RazorPages_Tutorial: PART 1: Razor Pages
Videoer (Mohammad El Allali):
Routing:
- Video 10
- Video 11
- Video 12
Razor Pages Arkitektur illustrationer:
RazorArchitecture(Service).docx
Slides :
|
Exercises (ItemsRazor)
ValidationSearchFilterItems (3. opgave i serien ItemsRazor)
EditDeleteItems (4. opgave i serien ItemsRazor)
JsonIconImageBootstrapItems (5. opgave i serien ItemsRazor)
Solutions (ItemsRazor)
ItemRazorV3.zip (Løsning til opgave 3)
ItemRazorV4.zip (Løsning til opgave 4)
ItemRazorV5.zip (Løsning til opgave 5)
Ekstra:
Exercises (Razor Pages)
Løs følgende opgaver fra RazorPages_Exercises.docx
RazorPage4.0
RazorPage5.0
RazorPage6.0
Bemærk: Du finder start projekter og løsninger her:
Unsolved exercise projects (Razor Pages - VS2019)
Solved exercise projects (Razor Pages - VS2019)
|
48-50 |
Projektarbejde
Aflevering: tirsdag 20/12 kl. 16.00
DEMO-dag onsdag 21/12 |
|
Projektoplæg
|
51- |
Læse "ferie" |
|
Til repetition brug:
Big Mamma (pizzaria) UML1 og UML2
Media System
Fartkontrol.pdf
Træningsopgave.docx |
|
Unit test - flyttet til 2. semester ?? |
LinkedIn.com/learning
|
|