35 |
Velkommen til Datamatiker-studiet!
Generel intro til Zealand og studiet
Overblik over Software Construction
Værktøjer og Materialer
I gang med Visual Studio Enterprise 2019 |
Introprogram
Introduktion til Zealand og studiet
Visual Studio Enterprise 2019
Du får licens-nøgle fra Azure Dev Tools (tidligere Microsoft Imagine)
ReSharper (du skal have en licens-nøgle)
HowTo make Visual Studio (with ReSharper) quiet... |
|
36
|
Programming - Part I
Code organisation
Types
Variables
Type conversion
Simple I/O
Arithmetic
Logic
Functions |
IT HW SW
Noter: s 7-41
(Bog: Kap. 1, 2)
Online kursus med quizzes:
SoloLearn.com |
Hyttetur (torsdag-fredag, detailplanlægges senere)
Get.1
Pro1.1 - Pro1.3
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 |
Noter: s.42-75
(Bog: Kap. 7)
|
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 |
39-40 |
Programming - Part II
Control statements
Debugging
Data structures
Code Quality (keeping code DRY) |
Noter: s.76-116
(Bog: Kap. 4, 5, 10, 18)
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
Pro.2.1 - Pro.2.9
Pro.2.13 - Pro.2.14
|
41 |
Ingen UV i programmering denne uge |
|
|
42 |
Efterårsferie |
|
|
43-44 |
Object-Oriented Programming - Part II
Composition/Inheritance
Object construction
Overriding properties/methods
Polymorphic behavior
Abstract methods and classes
Interfaces
|
C# Note: s.117-128
(Bog: Kap. 12, 13, 6 (i den orden))
Bob Tabor Video (Inheritance)
LinkedIn.com/learning videoserie I
LinkedIn.com/learning videoserie II
|
Begreber2 if og løkker
EjendomsMægleren
OOP.2.1 - 2.6
ISpeak
OOP2.8
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
|
C# Note: s.129-133 (Exceptions)
Bob Tabor Video (Exceptions)
LinkedIn.com/learning
|
Opgave:
ExceptionsObjektVsRef.docx
MyStack
Kode vist i klassen:
CarExceptionTest.zip Nyt!
MyStack.zip Nyt!
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 (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)
Exercises (ItemsRazor)
ItemsRazorPages (1. opgave i serien ItemsRazor)
CreateNewItems (2. opgave i serien ItemsRazor)
Kode fra klassen:
EventMakerRazorPagesV2.zip
ItemRazor.zip
CarRazorPages.zip (onsdag d. 16. november)
|
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 (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)
Exercises (ItemsRazor)
ValidationSearchFilterItems (3. opgave i serien ItemsRazor)
EditDeleteItems (4. opgave i serien ItemsRazor)
JsonIconImageBootstrapItems (5. opgave i serien ItemsRazor)
ItemRazorV2_2.zip (løsning på opgave 1-4)
ItemRazorV2_3.zip (løsning på opgave 1-5)
|
48-50 |
Projektarbejde
Aflevering: torsdag 16/12 kl. 16.00
DEMO-dag fredag 17/12 kl. 11.00-ca 13.00 |
|
ItemRazorV3.zip(jsonFileService opdateret mm) |
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 ?? |
C# Note s. 262-276 (Unit Test)
LinkedIn.com/learning
|
Pro 3.10-3.12 |