• Henrik Høltzer (heho)
    Software Construction - SWC 1.1 1C

    Semester: 1.sem., efterår 2020
    Email: heho@zealand.dk

    Materialer generelt:

    Noter:

    Object-Oriented Programming with C# (findes på GitHub her)
    Razor pages: PART 1: Razor Pages Nyt!


    Opgaver:

    C# Programming Exercises (findes på GitHub her)

    Unsolved exercise projects (C# VSCode)
    Solved exercise projects (C# )
    Razor Pages: RazorPages_Exercises.docx Nyt!
    Unsolved exercise projects (Razor Pages - VS2019) Nyt!
    Solved exercise projects (Razor Pages - VS2019) Nyt!


    Supplerende materiale:

    Microsoft Visual C# Step by Step (8th ed.), by John Sharp (ISBN: 9781509301041)
    NB: Bogen er IKKE pensum
     

    Online kurser:

    LinkedIn learning (Lynda.com) - Gratis adgang; tilmeld med EASJ e-mail konto: https://www.lynda.com/email-signup (SWC Lynda.com Playlist)
    MS Academy: C# Fundamentals for absolute beginners
    Nemprogrammering.dk (c# - kursus på dansk)
    SoloLearn.com
    .NET Academy: https://dotnetcademy.net/Learn/2045/Pages/1


    Videoer:

    Razor Pages, Github mm Nyt!

    Bemærk - ugeplanen er foreløbig og vil ændres undervejs!

    Uge Emner Materialer Opgaver
    36

    Velkommen til Datamatiker-studiet!

    Generel intro til Zealand og studiet

     

    Overblik over Software Construction

    Værktøjer og Materialer

    I gang med Visual Studio Code (VSCode)

    Introprogram
    Introduktion til Zealand og studiet

    Introduktion til IT-systemer

    Installations guide til: Visual Studio Code

    Video:

     
    37

    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

    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

    38-39

    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
    Covid19.zip
    Covid19v2.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)
    Opgave stillet i klassen hvor prien beregnes på baggrund af:
    Grundpris, aldersrabat, studierabat, sesson, tid på dagen og grupperabat mm

    løsning: CalculatePrice.zip

    OOP.1.1 - 1.7

    Studiestartsprøve
    40-41

    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)


    Bemærk opdateret:
    Pro.2.1 - Pro.2.9
    Opgave: BookCatalog
    Pro.2.13 - Pro.2.14

     

    42 Efterårsferie  
    43 Ingen UV i programmering denne uge    
    44

    Object-Oriented Programming - Part II

    Composition/Inheritance
    Object construction
    Overriding properties/methods
    Polymorphic behavior
    Abstract methods and classes
    Interfaces

     

    I gang med Visual Studio Enterprise 2019

    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

     

    Visual Studio Enterprise 2019 (check s. 10 i C#Sharp noten!)
    Du får licens-nøgle fra Azure Dev Tools (tidligere Microsoft Imagine)
    ReSharper (du skal have en licens-nøgle)

    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 

    Exceptions-stack (ekstra - flyttes til 2. semester)


    Kode vist i klassen: 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

     

    Videoer (Mohammad El Allali):
    Model Binding:

    Validation-Singleton-Dependency injection:

    Slides :

    Exercises (Razor Pages)

    Løs følgende opgaver fra RazorPages_Exercises.docx
    RazorPage1.0
    RazorPage2.0

    • Part1
    • Part2

    RazorPages3.0

    Bemærk: Du finder start projekter og løsninger her:
    Unsolved exercise projects (Razor Pages - VS2019)
    Solved exercise projects (Razor Pages - VS2019)

     

     

    Kode fra klassen:
    EventMakerRazorPagesV2.zip

    ItemRazor.zip

    47
    Nyt!

    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

    • Chapter 9
    • Chapter 10

    Videoer (Mohammad El Allali):
    Routing:

    • Video 10
    • Video 11
    • Video 12

    Slides :

    Exercises (Razor Pages)

    Løs følgende opgaver fra RazorPages_Exercises.docx
    RazorPage4.0
    RazorPage5.0

    • Part1
    • Part2

    RazorPage6.0

    • Part1
    • Part2

    Bemærk: Du finder start projekter og løsninger her:
    Unsolved exercise projects (Razor Pages - VS2019)
    Solved exercise projects (Razor Pages - VS2019)

    48-51 Projektarbejde

    Razor Pages Arkitektur illustrationer: Nyt!
    RazorArchitecture.docx
    RazorArchitecture(Req-Res).docx
    RazorArchitecture(Service).docx

     

    ItemRazorV2.zip Nyt!

    51

    Projektaflevering

     

    Repetition/Spørgetimer


      Unit test - flyttet til 2. semester

    C# Note s. 262-276 (Unit Test)
    LinkedIn.com/learning

    Pro 3.10-3.12