diff --git a/11 StructIntro/Program.cs b/11 StructIntro/Program.cs
index a668d4b0db32a5a2471dfc809c380f8d3890f158..a51f19194bd9152a0672c3ba3192ff54cc3329aa 100644
--- a/11 StructIntro/Program.cs	
+++ b/11 StructIntro/Program.cs	
@@ -11,7 +11,7 @@ namespace _11_StructIntro
         public string ort ;
         public int plz;
 
-                                    // Konstruktoren: Initialisieren die struct. Allen Feldern der Struktur muss
+                                    // Konstruktoren: Initialisieren die struct. Allen Feldern der Struktur MUSS
                                     //      ein Wert zugewiesen werden!
                                     // Es kann mehrere Konstruktoren (mit mehr oder weniger Parametern) geben
         public Person(string Name, string Vorname, int Alter, string Ort, int Plz)
@@ -26,7 +26,9 @@ namespace _11_StructIntro
         {
             name = Name;
             vorname = Vorname;
+
             alter = -1;
+
             ort = "";
             plz = -1;
         }
@@ -45,6 +47,13 @@ namespace _11_StructIntro
         {
             Console.WriteLine($"{p.vorname} {p.name} -- Alter: {p.alter}   {p.plz} {p.ort}");
         }
+
+        static void PersonErhoeheAlter(ref Person p)
+        {
+            p.alter++;
+            Console.WriteLine($"Alter: {p.alter}");
+            // return p;
+        }
         static void Main(string[] args)
         {
             //anton.name = "Meier";
@@ -56,17 +65,23 @@ namespace _11_StructIntro
             Person anton = new Person("Meier","Anton",27,"Nürnberg",90489);
             PersonAusgeben(anton);
 
-            Person berta = anton;
-            anton.vorname = "Antonia";
+            PersonErhoeheAlter(ref anton);   // ACHTUNG: structs sind Wertetypen!
+            PersonAusgeben(anton);           //    d.h. es wird eine KOPIE von anton übergeben
+                                             // Für Veränderungen im struct ist eine ref-Übergabe erforderlich
 
-            PersonAusgeben(anton);
-            PersonAusgeben(berta);
 
-            Person claudia = new Person("Schneider", "Claudia");
-            PersonAusgeben(claudia);
-            Console.WriteLine(claudia);
-            string s = claudia.ToString();
-            // anton, berta, claudia sind WERTETYPEN, da structs
+            //Person berta = anton;
+            //anton.vorname = "Antonia";
+
+            //PersonAusgeben(anton);
+            //PersonAusgeben(berta);
+
+            //Person claudia = new Person("Schneider", "Claudia");
+            //PersonAusgeben(claudia);
+            //Console.WriteLine(claudia);
+            //string s = claudia.ToString();
+            //// anton, berta, claudia sind WERTETYPEN, da structs
+
         }
     }
 }
diff --git a/11 StructsPublicPrivate/11 StructsPublicPrivate.csproj b/11 StructsPublicPrivate/11 StructsPublicPrivate.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..626b23b5a0f14679c9e6592c408d7da690799168
--- /dev/null
+++ b/11 StructsPublicPrivate/11 StructsPublicPrivate.csproj	
@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <RootNamespace>_11_StructsPublicPrivate</RootNamespace>
+  </PropertyGroup>
+
+</Project>
diff --git a/11 StructsPublicPrivate/Program.cs b/11 StructsPublicPrivate/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..627b8d98b3c7cc2b91f176cf6c695fafbac6d7b3
--- /dev/null
+++ b/11 StructsPublicPrivate/Program.cs	
@@ -0,0 +1,27 @@
+using System;
+
+namespace Space1
+{
+    struct xyz { }
+    class Program
+    {
+        public static void Main(string[] args)
+        {
+            Console.WriteLine("Hello World!");
+        }
+    }
+}
+
+namespace Space2
+{
+    //using Space1;
+    class xxx
+    {
+        static void TueEtwas()
+        {
+            Space1.xyz yyy = new Space1.xyz();
+            Space1.Program zzz = new Space1.Program();
+            Space1.Program.Main(new string[] { "par1", "par2" });
+        }
+    }
+}
diff --git a/11 ThrowIntro/11 ThrowIntro.csproj b/11 ThrowIntro/11 ThrowIntro.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..57fbb5cc5e22487899ba76238ac75a88e5dcceb9
--- /dev/null
+++ b/11 ThrowIntro/11 ThrowIntro.csproj	
@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <RootNamespace>_11_ThrowIntro</RootNamespace>
+  </PropertyGroup>
+
+</Project>
diff --git a/11 ThrowIntro/Program.cs b/11 ThrowIntro/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..9f0e48f94db44faa138cc67f54189d49c6b92659
--- /dev/null
+++ b/11 ThrowIntro/Program.cs	
@@ -0,0 +1,40 @@
+using System;
+
+namespace _11_ThrowIntro
+{
+    class Program
+    {
+        static void TueEtwas (int x)        // x muss >= 0 sein
+        {
+            if (x >=0)
+            {
+                // nur dann mit dem x arbeiten ==> Fehlerzustand wird ignoriert
+            }
+
+            ////////////////////
+            if (x < 0)
+            {
+                Console.WriteLine("Unzulässiger x Wert");
+                /*return*/;
+            }
+            // nur dann mit dem x arbeiten ==> Fehlerzustand wird ignoriert
+            if (x < 0)
+                throw new ArgumentOutOfRangeException("Unzulässiger x Wert");
+        }
+
+        static void Main(string[] args)
+        {
+            try
+            {
+                TueEtwas(10);
+                TueEtwas(-1);       // In diesem Funktionsaufruf wurde der Fehler geworfen
+                                    // Folge: try-Block wird abgebrochen
+                TueEtwas(11);
+            }
+            catch (Exception e)
+            {
+                Console.WriteLine($"Exception: {e.Message}");
+            }
+        }
+    }
+}
diff --git a/11 Time/Program.cs b/11 Time/Program.cs
index c3fbbaf121b077d836a9c6d66f720715ead7795b..c306ee3812aac5ec4051fa54b0c9398f8919fa5e 100644
--- a/11 Time/Program.cs	
+++ b/11 Time/Program.cs	
@@ -5,13 +5,18 @@ namespace _11_Time
     struct Time
     {
         public int time;
-        public Time(int stunden, int minuten)
-        {
+        public Time(int stunden, int minuten)       // Konstruktoren haben keine Rückgabewerte
+        {                                           // Konstruktoren sind nicht static
             time = 60 * stunden + minuten;
         }
+        public Time(string zeit)    // "9:45"
+        {
+            string[] daten = zeit.Split(':');
+            time = 60 * Convert.ToInt32(daten[0]) + Convert.ToInt32(daten[1]);
+        }
         public override string ToString()
         {
-            return base.ToString();
+            return $"{time/60}:{time%60}";
         }
     }
     class Program
@@ -23,6 +28,8 @@ namespace _11_Time
             Time t1 = new Time(9, 45);
             Time t2 = new Time(11, 15);
 
+            Console.WriteLine(t1);
+
             Console.WriteLine(TimeDifInMinutes(t2,t1));
 
         }
diff --git a/11 UebgKoordinaten/11 UebgKoordinaten.csproj b/11 UebgKoordinaten/11 UebgKoordinatenMo.csproj
similarity index 100%
rename from 11 UebgKoordinaten/11 UebgKoordinaten.csproj
rename to 11 UebgKoordinaten/11 UebgKoordinatenMo.csproj
diff --git a/11 UebgKoordinaten/Program.cs b/11 UebgKoordinaten/Program.cs
index 0acd44d64fb14d7e487a7c57d4052bc343f08f6e..70b82969027c20b34a651798d7f85202ee9d690e 100644
--- a/11 UebgKoordinaten/Program.cs	
+++ b/11 UebgKoordinaten/Program.cs	
@@ -15,7 +15,7 @@ namespace _11_UebgKoordinaten
             x = X;
             y = Y;
         }
-        public override string ToString() => $"({x}|{y})";
+        public override string ToString() => $"Koordinate: ({x}|{y})";
         
     }
     class Program
@@ -50,6 +50,16 @@ namespace _11_UebgKoordinaten
 
             Coord c3 = CoordMove(c1, 6, 5);     // Werteübergabe von c1, aber return liefert Ergebnis zurück
             Console.WriteLine(c3);
+
+            Console.WriteLine(c3.ToString());
+
+            Coord[] coords = new Coord[5];
+            coords[0] = new Coord(1, 2);
+            coords[1] = new Coord(3, 3);
+
+            coords[3] = coords[0];              // Structs sind Wertetypen!
+            coords[0].x = -999;                 //   d.h. bei der Zuweisung wird eine KOPIE von coords[0] gespeichert
+            coords[0].y = -999;                 // bei Referenztypen (class) wird hingegen eine weitere Referenz gespeichert
         }
     }
 }
diff --git a/11 UebgKoordinaten_Di/11 UebgKoordinaten_Di.csproj b/11 UebgKoordinaten_Di/11 UebgKoordinaten_Di.csproj
new file mode 100644
index 0000000000000000000000000000000000000000..a8fbb526df51dd27449c991a01916e124426bb5a
--- /dev/null
+++ b/11 UebgKoordinaten_Di/11 UebgKoordinaten_Di.csproj	
@@ -0,0 +1,9 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp3.1</TargetFramework>
+    <RootNamespace>_11_UebgKoordinaten_Di</RootNamespace>
+  </PropertyGroup>
+
+</Project>
diff --git a/11 UebgKoordinaten_Di/Program.cs b/11 UebgKoordinaten_Di/Program.cs
new file mode 100644
index 0000000000000000000000000000000000000000..04ecf956aea9de2ee2fdd6f06cbc9356d88a4fa6
--- /dev/null
+++ b/11 UebgKoordinaten_Di/Program.cs	
@@ -0,0 +1,22 @@
+using System;
+
+namespace _11_UebgKoordinaten_Di
+{
+    
+    // Erstellen Sie eine Struct Koordinate Coord(double x, double y) mit
+    //    ToString() und Konstruktor(en)
+    // Erstellen Sie in Program eine Methode CoordDist(), welche den Abstand zwischen zwei Koordinaten bestimmt
+    // Erstellen Sie in Program eine Methode CoordMove(), welche die Koordinate um ein deltaX, deltaY verschiebt
+
+    struct Coord
+    {
+
+    }
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            Console.WriteLine();
+        }
+    }
+}
diff --git a/Prog1_WS2021_22.sln b/Prog1_WS2021_22.sln
index c9f67d38a35d448185b8d5139752400c4b912a4a..5cfbffa9a8188b2b86c07281980fba6c9436519c 100644
--- a/Prog1_WS2021_22.sln
+++ b/Prog1_WS2021_22.sln
@@ -101,11 +101,17 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10 StringSplit2", "10 Strin
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10 Enums", "10 Enums\10 Enums.csproj", "{0A59F1EF-68BD-43C7-BA85-EC1557017D86}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11 StructIntro", "11 StructIntro\11 StructIntro.csproj", "{F8A06135-B753-408E-B569-D345AA694667}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "11 StructIntro", "11 StructIntro\11 StructIntro.csproj", "{F8A06135-B753-408E-B569-D345AA694667}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11 UebgKoordinaten", "11 UebgKoordinaten\11 UebgKoordinaten.csproj", "{EAAD4537-6255-4C1B-8162-BD7C946F3065}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "11 UebgKoordinatenMo", "11 UebgKoordinaten\11 UebgKoordinatenMo.csproj", "{EAAD4537-6255-4C1B-8162-BD7C946F3065}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11 Time", "11 Time\11 Time.csproj", "{A5C6305D-65D0-4B95-9884-F75E61BDD8E9}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "11 Time", "11 Time\11 Time.csproj", "{A5C6305D-65D0-4B95-9884-F75E61BDD8E9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11 UebgKoordinaten_Di", "11 UebgKoordinaten_Di\11 UebgKoordinaten_Di.csproj", "{B1C38CF7-98C6-4696-990E-E590C24BCA46}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11 StructsPublicPrivate", "11 StructsPublicPrivate\11 StructsPublicPrivate.csproj", "{2A85F1F9-5C05-4905-BC7D-D9C836D10477}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "11 ThrowIntro", "11 ThrowIntro\11 ThrowIntro.csproj", "{055DDC53-EB6E-43B8-BED5-EC6BEDC87507}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -321,6 +327,18 @@ Global
 		{A5C6305D-65D0-4B95-9884-F75E61BDD8E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{A5C6305D-65D0-4B95-9884-F75E61BDD8E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{A5C6305D-65D0-4B95-9884-F75E61BDD8E9}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B1C38CF7-98C6-4696-990E-E590C24BCA46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B1C38CF7-98C6-4696-990E-E590C24BCA46}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B1C38CF7-98C6-4696-990E-E590C24BCA46}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B1C38CF7-98C6-4696-990E-E590C24BCA46}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2A85F1F9-5C05-4905-BC7D-D9C836D10477}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{2A85F1F9-5C05-4905-BC7D-D9C836D10477}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{2A85F1F9-5C05-4905-BC7D-D9C836D10477}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2A85F1F9-5C05-4905-BC7D-D9C836D10477}.Release|Any CPU.Build.0 = Release|Any CPU
+		{055DDC53-EB6E-43B8-BED5-EC6BEDC87507}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{055DDC53-EB6E-43B8-BED5-EC6BEDC87507}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{055DDC53-EB6E-43B8-BED5-EC6BEDC87507}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{055DDC53-EB6E-43B8-BED5-EC6BEDC87507}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE