Zealand  => Peter Levinsky  => Advanced Software Construction - 4.sem   => Semester plan 
Updated :  2024-01-29

Preliminary
plan for "Elective: Advanced Software Construction" 4th semester spring 2024

changes will occur

WeekNo
Date
Literature/reading
Bold : Need to read, Italic : Read light, Italic-green: Additional-reading
Exercises
 
Solutions https://github.com/orgs/RO24F-VF-ASWC/repositories

Uge 05
30/jan

Introduction to this elective
Design Patterns - template -- C#Note chap OOProg3 p.1-17 + 43-47

Comments of code -- Corey's Tutorial: How to Comment & Document Your Code (video)
 Insert XML Comments https://docs.microsoft.com/en-us/dotnet/csharp/codedoc
 Download Doxygen

 How to use doxygen : http://www.doxygen.nl/manual/starting.html

Slides: ServerFramework1.pdf

MakeAnAbstractTCPServer-part1

Uge 06
06/feb

Configuration-files & logging functions
Microsoft logging and debugging: https://docs.microsoft.com/en-us/dotnet/core/diagnostics/logging-tracing
Using TraceListeners: https://docs.microsoft.com/en-us/dotnet/framework/debug-trace-profile/trace-listeners
XML -- https://www.w3schools.com/xml/default.asp
XML schema XSD -- https://www.w3schools.com/xml/xml_schema.asp
Read XML file in C# -- https://support.microsoft.com/da-dk/help/307548/how-to-read-xml-from-a-file-by-using-visual-c | https://www.c-sharpcorner.com/UploadFile/167ad2/read-xml-file-using-xml-reader-in-C-Sharp/

Slides: ServerFramework2.pdf

MoreAbstractServer Log and configuration

Uge 07
13/feb

Regular expressions

Overall view Wikipeia: https://en.wikipedia.org/wiki/Regular_expression
Nice presentation (though not C#) https://cs.lmu.edu/~ray/notes/regex/
Microsoft - regular expressions: https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expressions
C# How to use: https://www.c-sharpcorner.com/article/c-sharp-regex-examples/
Interactive tutorial: https://regexone.com/

Slides: RegularExpressions.pdf


Regular expression #1

Regular expression #2

Uge 08
20/feb

Parallelism / synchronous mechanism
Note i Moodle - 'Meterials, notes, etc' -> Interprocess Communication   - læs let
C#Note Prog04 pp.1-21

Threads in C# :
Basic: http://www.albahari.com/threading/
Basic sync: http://www.albahari.com/threading/part2.aspx
Using thread: http://www.albahari.com/threading/part3.aspx
Advanced Threading: http://www.albahari.com/threading/part4.aspx
Parallel: http://www.albahari.com/threading/part5.aspx

Slides: Concurrency.pdf

Prog 4.1-4.2 + Prog 4.4

Brewery simulation

Uge 09
27/feb

Reflection -> metadata of objects at run-time 
C#Note OOProg04 pp.23-28

MS references:
Object.GetType: https://docs.microsoft.com/en-us/dotnet/api/system.object.gettype?view=netcore-3.0
Type.GetType: https://docs.microsoft.com/en-us/dotnet/api/system.type.gettype?view=netcore-3.0
Reflection: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/reflection
C# Reflection Examples: https://www.dotnetperls.com/reflection

Slides: Reflection.pdf

MyOwnJsonConvert

Training OOP4.4


Uge 10
05/mar

State machine
Theory: https://ocw.mit.edu/courses/6-01sc-introduction-to-electrical-engineering-and-computer-science-i-spring-2011/6d24bc51571a1a945a63ffa8343a5b55_MIT6_01SCS11_chap04.pdf p.117-123
Wiki: https://en.wikipedia.org/wiki/Finite-state_machine
Fun intruduction: https://www.c-sharpcorner.com/article/understanding-state-design-pattern-by-implementing-finite-state/
State Pattern: https://www.dofactory.com/net/state-design-pattern
Finite State Machines: https://fabioutzig.com/posts/table-driven-state-machines/
More State Machine: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.94.2987&rep=rep1&type=pdf

Slides: StateMachine.pdf

State-machines-snake


Mandatory Assignment

Uge 11
12/mar

Simple Game Framework

SOLID -- C#Note Solid pp.1-48
Quality factors ISO 25010

Slides SOLID.pdf

Training: SOLID.1-3

Mandatory Assignment- stadig den samme

Uge 12
19/mar

Simple Game Framework

More deisgn Patterns -- C# Note: OOProg3 pp.18-58
C# Site om Design Patterns: https://www.dofactory.com/net/design-patterns

Slides: DesignPattern.pdf

Training: C# Exercises OOP 3.1, OOP 3.2, OOP 3.3, OOP 3.7, OOP 3.9

Training C# Exercises OOP3.4, OOP3.5, OOP3.6, OOP3.8

Mandatory Assignment- stadig den samme

Uge 13
26/mar

Easter

Easter

Uge 14
02/apr

Simple Game Framework
Iterations, Linq -- C# Note: Prog03, s.30-48
Classes, interfaces, abstract, static, Overload/overwrite + Operator overload
-- C# Note: OOProg04, s.3-17

Slides: LinqOperator.pdf

Training C# Exercises PRO 3.4 + PRO 3.7
Training C# Exercises OOP 4.1, OOP 4.2
Training C# Exercises OOP4.5

Mandatory Assignment - stadig den samme
Vink til løsning af den obligatoriske opgave

Uge 15
09/apr

Path Algorithm & (Simple Game Framework)
LET - Wiki Pathfinding: Pathfinding - Wikipedia
LET - Wiki OSPF: Dijkstra's algorithm - Wikipedia
LET - Wiki A* : A* search algorithm - Wikipedia

OSPF - Computer Network (3sem bog) kap 5.2 (se Moodle)
A-star Understanding A* Path Algorithms and Implementation with Python | by Adem Akdogan | Towards Data Science

Pathfinding Algorithms- Top 5 Most Powerful (graphable.ai)

Slides: grafer.pdf
Animation: binær træ: Binary Search Tree Visualization (usfca.edu) og balanceret binær træ: Balancing a binary search tree · Applied Go

Ekstra opgave -- Kun hvis du har tid -- Ekstra-Algoritmer.pdf

 

 

Mandatory Assignment- stadig den samme
Vink til løsning af den obligatoriske opgave

Uge 16
16/apr

Presentation
Simple Game Framework - See Plan for presentation
It will be online (zoom - see link provided on the day i moodle and on the plan)

PLAN for præsentation Der er både tirsdag d. 16 + onsdag . 17

Handin Mandatory assignment

Ideer til Synopsis | Tidligere Synopser
Synopsis beskrivelse | Synopsis eksempler

Formular til Synopsis

Uge 17
23/apr

Individual study - Synopsis

No supersision

Individual study - Synopsis

Uge 18
30/apr

Individual study - Synopsis        

Individual study - Synopsis

Uge 19
07/may

Individual study - Synopsis

Individual study - Synopsis

Uge 20
14/may

Individual study - Synopsis

Individual study - Synopsis

Uge 21
21/may

Individual study - Synopsis

Individual study - Synopsis

Uge 22
28/may
31/may Handin Synopsis in Wiseflow
Uge 23-25
01/jun-30/jun

Scheduled Exam:??? /june comming

Exam schedule - See Wiseflow