diff --git a/Doc/Sd1/Exam/2022/SummerTest/exam.xml b/Doc/Sd1/Exam/2022/SummerTest/exam.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1021b8bac16c447b943e9132714cf6e7861aee82
--- /dev/null
+++ b/Doc/Sd1/Exam/2022/SummerTest/exam.xml
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<section version="5.0" xml:id="sd1_exam_2022_summerTest" xml:lang="de"
+         xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xila="http://www.w3.org/2001/XInclude/local-attributes"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         xmlns:trans="http://docbook.org/ns/transclusion"
+         xmlns:svg="http://www.w3.org/2000/svg"
+         xmlns:m="http://www.w3.org/1998/Math/MathML"
+         xmlns:html="http://www.w3.org/1999/xhtml"
+         xmlns:db="http://docbook.org/ns/docbook">
+  <title>SD1 Probeklausur Sommer 2022</title>
+
+  <section xml:id="sd1_exam_2022_summerTest_task1">
+    <title>Java Datentypen</title>
+
+    <qandaset defaultlabel="qanda"
+              xml:id="sd1_exam_2022_summerTest_task1Qanda">
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Nennen Sie 10 verschiedene Datentypen in Java und
+            beschreiben Sie deren Verwendung in eigenen Worten:</para>
+
+            <programlisting language="none">Datentyp 1: Verwendung (Beschreibung in eigenen Worten)
+
+Datentyp 2: ...
+...</programlisting>
+
+            <para>Nutzen Sie bitte das nachfolgende Eingabefeld.</para>
+          </question>
+
+          <answer>
+            <programlisting language="none">Primitive Datentypen:
+
+boolean: Logische Werte
+byte: Ganzzahlen von -128 bis 127
+short: Ganzzahlen von -2^15 bis 2^15 - 1
+int: Ganzzahlen von -2^31 bis 2^31 - 1
+long: Ganzzahlen von -2^63 bis 2^63 - 1
+char: Zeichen dargestellt durch 2 bytes
+float: 4 Byte IEEE Gleitkommazahlen aus Vorzeichen, Mantisse und Exponent
+double: 8 Byte IEEE Gleitkommazahlen aus Vorzeichen, Mantisse und Exponent
+
+Referenztypen:
+
+String: Unveränderliche Zeichenketten bestehend aus char Werten
+java.util.Scanner: Lesen von Eingabedatenströmen</programlisting>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+  </section>
+
+  <section xml:id="sd1_exam_2022_summerTest_task2">
+    <title>Fließkommazahlen</title>
+
+    <qandaset defaultlabel="qanda"
+              xml:id="sd1_exam_2022_summerTest_task2Qanda">
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Eignen sich Fließkommazahlen zur genauen Darstellung und
+            Berechnung von kleinen Werten? Erläutern Sie Ihre Antwort.</para>
+          </question>
+
+          <answer>
+            <para>Durch Verwendung von negativen Exponenten können gemäß der
+            IEEE Spezifikation kleine Werte mit hoher Genauigkeit dargestellt
+            werden.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+  </section>
+
+  <section xml:id="sd1_exam_2022_summerTest_task3">
+    <title>Darstellung von Längenangaben</title>
+
+    <qandaset defaultlabel="qanda"
+              xml:id="sd1_exam_2022_summerTest_task3Qanda">
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Implementieren Sie die statische Methode <methodname>String
+            mmToLength(long mm)</methodname>, welche den Parameter
+            <code>mm</code> (Millimeter) in die Anzahl von Meter, Zentimeter
+            und Millimeter umwandelt und die Werte als textuelle
+            Repräsentation zurückgibt:</para>
+
+            <informaltable border="1">
+              <tr>
+                <th>Länge in mm</th>
+
+                <th>Textuelle Repräsentation</th>
+              </tr>
+
+              <tr>
+                <td valign="top">3576</td>
+
+                <td>3m, 57cm, 6mm</td>
+              </tr>
+
+              <tr>
+                <td valign="top">14</td>
+
+                <td>0m, 1cm, 4mm</td>
+              </tr>
+            </informaltable>
+          </question>
+
+          <answer>
+            <para/>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+  </section>
+
+  <section xml:id="sd1_exam_2022_summerTest_task4">
+    <title>Verwaltung einer Garage</title>
+
+    <qandaset defaultlabel="qanda"
+              xml:id="sd1_exam_2022_summerTest_task4Qanda">
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Implementieren Sie zwei eigene Klassen
+            <classname>Car</classname> und
+            <classname>Garage</classname>.</para>
+
+            <glosslist>
+              <glossentry>
+                <glossterm><classname>Car</classname>:</glossterm>
+
+                <glossdef>
+                  <itemizedlist>
+                    <listitem>
+                      <para>Definieren Sie drei beliebige Attribute, welche
+                      die Eigenschaften eines Autos beschreiben.</para>
+                    </listitem>
+
+                    <listitem>
+                      <para>Definieren Sie mindestens einen Konstruktor, über
+                      welchen alle Attribute initialisiert werden
+                      können.</para>
+                    </listitem>
+
+                    <listitem>
+                      <para>Halten Sie sich an die gelernten Best practises
+                      (Zugriffsmodifikatoren, Kapselung).</para>
+                    </listitem>
+                  </itemizedlist>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm><classname>Garage</classname>:</glossterm>
+
+                <glossdef>
+                  <itemizedlist>
+                    <listitem>
+                      <para>Eine Instanz der Klasse
+                      <classname>Garage</classname> benötigt für die
+                      Initialisierung die Anzahl der Stellplätze (1...n).
+                      Implementieren Sie den entsprechenden
+                      Konstruktor.</para>
+                    </listitem>
+
+                    <listitem>
+                      <para>Folgende Methoden müssen für die Klasse
+                      implementiert werden:</para>
+
+                      <itemizedlist>
+                        <listitem>
+                          <para><methodname>boolean isFull()</methodname>:
+                          Liefert <code>true</code>, wenn die Garage voll ist,
+                          also alle Stellplätze belegt sind.</para>
+                        </listitem>
+
+                        <listitem>
+                          <para><methodname>boolean park(Car
+                          car)</methodname>: Parkt das übergebene Auto in
+                          einen der Stellplätze, falls möglich. Liefert
+                          <code>false</code>, wenn die Garage bereits voll
+                          besetzt ist.</para>
+                        </listitem>
+
+                        <listitem>
+                          <para><methodname>boolean unpark(Car
+                          car)</methodname>: Parkt das übergebene Auto aus.
+                          Gibt <code>false</code> zurück, wenn das übergebene
+                          Auto nicht in der Garage ist.</para>
+                        </listitem>
+                      </itemizedlist>
+                    </listitem>
+                  </itemizedlist>
+                </glossdef>
+              </glossentry>
+            </glosslist>
+
+            <para>Das folgende Beispiel zeigt die beabsichtigte
+            Verwendung:</para>
+
+            <programlisting language="java">package garage;
+
+public class Main {
+    public static void main(String[] args) {
+        Garage garage = new Garage(2);
+
+        Car c1 = new Car("Audi", "R8", "blue");
+        Car c2 = new Car("Volkswagen", "Polo", "black");
+        Car c3 = new Car("BMW", "316", "red");
+
+        System.out.println(garage);
+
+        System.out.println("parking: " + c1);
+        System.out.println(garage.park(c1));
+
+        System.out.println("parking: " + c2);
+        System.out.println(garage.park(c2));
+
+        System.out.println(garage);
+
+        System.out.println("parking: " + c3);
+        System.out.println(garage.park(c3));
+
+        System.out.println(garage);
+
+        System.out.println("unparking: " + c2);
+        System.out.println(garage.unpark(c2));
+
+        System.out.println(garage);
+
+        System.out.println("parking: " + c3);
+        System.out.println(garage.park(c3));
+
+        System.out.println(garage);
+    }
+}</programlisting>
+
+            <para>Die Ausführung sollte etwa folgende Log Ausgabe
+            liefern:</para>
+
+            <screen>Garage{slots=[null, null]}
+parking: Car{brand='Audi', model='R8', color='blue'}
+true
+parking: Car{brand='Volkswagen', model='Polo', color='black'}
+true
+Garage{slots=[Car{brand='Audi', model='R8', color='blue'},
+Car{brand='Volkswagen', model='Polo', color='black'}]}
+parking: Car{brand='BMW', model='316', color='red'}
+false
+Garage{slots=[Car{brand='Audi', model='R8', color='blue'},
+Car{brand='Volkswagen', model='Polo', color='black'}]}
+unparking: Car{brand='Volkswagen', model='Polo', color='black'}
+true
+Garage{slots=[Car{brand='Audi', model='R8', color='blue'}, null]}
+parking: Car{brand='BMW', model='316', color='red'}
+true
+Garage{slots=[Car{brand='Audi', model='R8', color='blue'},
+Car{brand='BMW', model='316', color='red'}]}
+</screen>
+
+            <para>Kopieren Sie bitte <emphasis role="red">ALLE</emphasis>
+            Klassen (visuell getrennt) in das Antwortfeld.</para>
+          </question>
+
+          <answer>
+            <para/>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+  </section>
+
+  <section xml:id="sd1_exam_2022_summerTest_task5">
+    <title>Semantische Gleichheit</title>
+
+    <qandaset defaultlabel="qanda"
+              xml:id="sd1_exam_2022_summerTest_task5Qanda">
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Wahrscheinlich mussten Sie für die Implementierung der
+            vorherigen Aufgabe Instanzen der Klasse <classname>Car</classname>
+            auf Gleichheit prüfen. Nachdem es sich um einen referenzierten
+            Datentyp handelt, vergleichen Sie mit dem Gleichheitsoperator
+            <quote><code>==</code></quote> 'nur' die Objektidentität. Für
+            einen semantischen Vergleich müssen Sie <methodname>public boolean
+            equals(Object o)</methodname> implementieren.</para>
+
+            <para>Wie haben Sie den Vergleich implementiert? Argumentieren Sie
+            warum!</para>
+          </question>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+  </section>
+</section>