aboutsummaryrefslogtreecommitdiff
path: root/Info
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2026-04-13 16:56:57 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2026-04-13 16:56:57 +0200
commitda012d103e520dc003a8d56c32414641beaa8e10 (patch)
treef9e1e9dd2dfacbc481bf4491c4952a8440d8f6a4 /Info
parent94a4c6a4b6ad73c8cb10f418c561b2ad1b0975f9 (diff)
downloadunterricht-da012d103e520dc003a8d56c32414641beaa8e10.tar.gz
unterricht-da012d103e520dc003a8d56c32414641beaa8e10.zip
initial planet commit
Diffstat (limited to 'Info')
-rw-r--r--Info/9/3/Planet/.gitignore6
-rw-r--r--Info/9/3/Planet/Makefile45
-rw-r--r--Info/9/3/Planet/algorithmik/if/bedingte-anweisung.md2
-rw-r--r--Info/9/3/Planet/algorithmik/sequenzen/h5p-sequenz3.md30
-rw-r--r--Info/9/3/Planet/algorithmik/sequenzen/img/canyon1.pngbin0 -> 238958 bytes
-rw-r--r--Info/9/3/Planet/algorithmik/sequenzen/img/canyon2.pngbin0 -> 235445 bytes
-rw-r--r--Info/9/3/Planet/algorithmik/sequenzen/img/canyon3.pngbin0 -> 263308 bytes
-rw-r--r--Info/9/3/Planet/algorithmik/sequenzen/img/h5p-sequenzen3.pngbin0 -> 3836 bytes
-rw-r--r--Info/9/3/Planet/algorithmik/sequenzen/img/sequenzen1-file.pngbin0 -> 5676 bytes
-rw-r--r--Info/9/3/Planet/algorithmik/sequenzen/img/sequenzen2-file.pngbin0 -> 4811 bytes
-rw-r--r--Info/9/3/Planet/algorithmik/sequenzen/sequenzen.md95
-rw-r--r--Info/9/3/Planet/algorithmik/while/.gitignore7
-rw-r--r--Info/9/3/Planet/algorithmik/while/aufgabe-4_3-struktogramm.tikz8
-rw-r--r--Info/9/3/Planet/algorithmik/while/bedingte-wiederholung.md254
-rw-r--r--Info/9/3/Planet/algorithmik/while/img/bergkette-flowchart.pngbin0 -> 34913 bytes
-rw-r--r--Info/9/3/Planet/algorithmik/while/img/rover-4_2.pngbin0 -> 681281 bytes
-rw-r--r--Info/9/3/Planet/algorithmik/while/img/rover-4_3.pngbin0 -> 38536 bytes
-rw-r--r--Info/9/3/Planet/algorithmik/while/img/sammle-steine.pngbin0 -> 161842 bytes
-rw-r--r--Info/9/3/Planet/algorithmik/while/img/suche-stein1.pngbin0 -> 82526 bytes
-rw-r--r--Info/9/3/Planet/algorithmik/while/img/suche-stein2.pngbin0 -> 89277 bytes
-rw-r--r--Info/9/3/Planet/algorithmik/while/img/suche-stein3.pngbin0 -> 82776 bytes
-rw-r--r--Info/9/3/Planet/algorithmik/while/sucheStein-flowchart.tikz41
-rw-r--r--Info/9/3/Planet/algorithmik/while/sucheStein-struktogramm.tikz5
-rw-r--r--Info/9/3/Planet/algorithmik/while/tuwas.tex23
-rw-r--r--Info/9/3/Planet/algorithmik/while/while-flowchart.tikz40
-rw-r--r--Info/9/3/Planet/algorithmik/while/while-struktogramm.tikz5
-rw-r--r--Info/9/3/Planet/img/20170122_gasa-gullies-kevin-gill.jpgbin0 -> 438909 bytes
-rw-r--r--Info/9/3/Planet/img/220_F_365660222_ZP4JkbCB5R5DuYGQgF2TGgkv3cAgmrMB.jpgbin0 -> 63370 bytes
-rw-r--r--Info/9/3/Planet/img/220_F_365660222_ZP4JkbCB5R5DuYGQgF2TGgkv3cAgmrMB.pngbin0 -> 21695 bytes
-rw-r--r--Info/9/3/Planet/img/NASA_Mars_Rover.jpgbin0 -> 210787 bytes
-rw-r--r--Info/9/3/Planet/img/a-martian-rock-called-rocknest-3-3da0a3-640.jpgbin0 -> 83830 bytes
-rw-r--r--Info/9/3/Planet/img/base-dome.svg1
-rw-r--r--Info/9/3/Planet/img/bergkette-abfahren.pngbin0 -> 221570 bytes
-rw-r--r--Info/9/3/Planet/img/cave-entrance.svg1
-rw-r--r--Info/9/3/Planet/img/earth-crack.svg1
-rw-r--r--Info/9/3/Planet/img/lunar-module.svg1
-rw-r--r--Info/9/3/Planet/img/map.pngbin0 -> 4259492 bytes
-rw-r--r--Info/9/3/Planet/img/map.xcfbin0 -> 8680240 bytes
-rw-r--r--Info/9/3/Planet/img/mars.jpgbin0 -> 639286 bytes
-rw-r--r--Info/9/3/Planet/img/mountains.svg1
-rw-r--r--Info/9/3/Planet/img/online-ide-overview.pngbin0 -> 271919 bytes
-rw-r--r--Info/9/3/Planet/img/online-ide-overview.xcfbin0 -> 601931 bytes
-rw-r--r--Info/9/3/Planet/img/stone-pile.svg1
-rw-r--r--Info/9/3/Planet/karten-beschreibung.md5
-rw-r--r--Info/9/3/Planet/modellierung/landung/.gitignore5
-rw-r--r--Info/9/3/Planet/modellierung/landung/datentypen-quiz.md6
-rw-r--r--Info/9/3/Planet/modellierung/landung/gestein-object.plantuml7
-rw-r--r--Info/9/3/Planet/modellierung/landung/huegel-object.plantuml6
-rw-r--r--Info/9/3/Planet/modellierung/landung/img/default-planet.pngbin0 -> 267345 bytes
-rw-r--r--Info/9/3/Planet/modellierung/landung/img/h5p-datentyp-zuordnung.pngbin0 -> 5038 bytes
-rw-r--r--Info/9/3/Planet/modellierung/landung/koordinatensystem.tikz4
-rw-r--r--Info/9/3/Planet/modellierung/landung/marke-object.plantuml6
-rw-r--r--Info/9/3/Planet/modellierung/landung/modellierung.md119
-rw-r--r--Info/9/3/Planet/modellierung/landung/online-ide.md107
-rw-r--r--Info/9/3/Planet/modellierung/landung/rover-object.plantuml7
-rw-r--r--Info/9/3/Planet/modellierung/landung/todo.md8
-rw-r--r--Info/9/3/Planet/modellierung/landung/welcome.md38
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/bauplaene.md17
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/img/block-comment.pngbin0 -> 34789 bytes
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/img/fahreDreiFelder.pngbin0 -> 56165 bytes
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/img/h5p-methoden-sortieren.pngbin0 -> 4591 bytes
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/img/h5p-methoden-testen.pngbin0 -> 3918 bytes
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/img/methoden-teile.pngbin0 -> 30781 bytes
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/img/oide-methodenTest.pngbin0 -> 9106 bytes
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/img/oide-rover.pngbin0 -> 17152 bytes
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/img/quadrat.pngbin0 -> 30779 bytes
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/img/zusatzaufgabe1.pngbin0 -> 209148 bytes
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/img/zusatzaufgabe2.pngbin0 -> 205558 bytes
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/methoden-schreiben.md260
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/methoden-sortieren-quiz.md6
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/methoden-testen-h5p-questionset.txt26
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/methoden-testen-quiz.md7
-rw-r--r--Info/9/3/Planet/modellierung/zwischenlager/methoden-testen.md142
-rw-r--r--Info/9/3/Planet/pandoc/center-img.lua14
-rw-r--r--Info/9/3/Planet/pandoc/color-text.lua15
-rw-r--r--Info/9/3/Planet/pandoc/default-metadata.yml3
-rw-r--r--Info/9/3/Planet/pandoc/wrap-merke.lua7
77 files changed, 1382 insertions, 0 deletions
diff --git a/Info/9/3/Planet/.gitignore b/Info/9/3/Planet/.gitignore
new file mode 100644
index 00000000..e9ac88a1
--- /dev/null
+++ b/Info/9/3/Planet/.gitignore
@@ -0,0 +1,6 @@
+plots/
+*.html
+*.pdf
+*.log
+*.aux
+_minted/
diff --git a/Info/9/3/Planet/Makefile b/Info/9/3/Planet/Makefile
new file mode 100644
index 00000000..f825714e
--- /dev/null
+++ b/Info/9/3/Planet/Makefile
@@ -0,0 +1,45 @@
+PRINTOUT=modellierung/landung/modellierung.pdf \
+ modellierung/zwischenlager/methoden-testen.pdf \
+ modellierung/zwischenlager/methoden-schreiben.pdf \
+ algorithmik/sequenzen/sequenzen.pdf \
+ algorithmik/while/bedingte-wiederholung.pdf
+
+PLOTSRCS := $(shell find -name "*.plantuml")
+TIKSSRC := $(shell find -name "*.tikz")
+PLOTS := $(PLOTSRCS:.plantuml=.svg) $(TIKSSRC:.tikz=.svg)
+
+SRC := $(shell find -name "*.md")
+
+PANDOC_FILTER := --filter pandoc-plot
+PANDOC_FILTER += --lua-filter pandoc/color-text.lua
+PANDOC_FILTER += --lua-filter pandoc/wrap-merke.lua
+PANDOC_FILTER += --lua-filter pandoc/center-img.lua
+
+COMMON_PANDOC_OPTIONS := --embed-resources --standalone \
+ $(PANDOC_FILTER) \
+ --metadata-file=pandoc/default-metadata.yml
+
+PANDOC=pandoc $(COMMON_PANDOC_OPTIONS)
+
+all: $(PLOTS) $(SRC:.md=.html) $(PRINTOUT)
+
+%.html: %.md planet-mebis-page-template.html Makefile
+ $(PANDOC) --template planet-mebis-page-template.html --resource-path="$(@D):." $< > $@
+
+%.pdf: %.html Makefile
+ chromium --headless --disable-gpu --print-to-pdf="$@" --generate-pdf-document-outline --no-pdf-header-footer $<
+
+%.svg: %.plantuml Makefile
+ plantuml --svg $< > $@
+
+%.svg: %.tikz Makefile
+ tikztosvg -l shapes.geometric -l arrows.meta -l positioning -l calc -p struktex -o $@ $<
+ inkscape --actions="page-fit-to-selection" -o $@ $@
+
+algorithmik/while/bedingte-wiederholung.html: algorithmik/while/tuwas.svg
+
+algorithmik/while/tuwas.pdf: algorithmik/while/tuwas.tex
+ latexmk -pdf -outdir=$(@D) $<
+
+algorithmik/while/tuwas.svg: algorithmik/while/tuwas.pdf
+ pdf2svg $< $@
diff --git a/Info/9/3/Planet/algorithmik/if/bedingte-anweisung.md b/Info/9/3/Planet/algorithmik/if/bedingte-anweisung.md
new file mode 100644
index 00000000..0edf6cc1
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/if/bedingte-anweisung.md
@@ -0,0 +1,2 @@
+:::{.terminal}
+:::
diff --git a/Info/9/3/Planet/algorithmik/sequenzen/h5p-sequenz3.md b/Info/9/3/Planet/algorithmik/sequenzen/h5p-sequenz3.md
new file mode 100644
index 00000000..1a723d01
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/sequenzen/h5p-sequenz3.md
@@ -0,0 +1,30 @@
+![](img/canyon3.png){.center}
+
+```
+rover.*fahre();*
+*rover.drehe("rechts");*
+*rover*.fahre();
+rover.fahre();
+rover.drehe(*"links"*);
+*rover.fahre();*
+*rover.fahre();*
+*rover.drehe("links");*
+*rover.fahre();*
+*rover.fahre();*
+*rover.drehe("rechts");*
+*rover.fahre();*
+*rover.drehe("links");*
+*rover.fahre();*
+*rover.drehe("rechts");*
+*rover.fahre();*
+*rover.fahre();*
+*rover.drehe("rechts");*
+*rover.fahre();*
+*rover.fahre();*
+*rover.fahre();*
+*rover.drehe("rechts");*
+*rover.fahre();*
+*rover.drehe("links");*
+*rover.fahre();*
+```
+
diff --git a/Info/9/3/Planet/algorithmik/sequenzen/img/canyon1.png b/Info/9/3/Planet/algorithmik/sequenzen/img/canyon1.png
new file mode 100644
index 00000000..8a33caf8
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/sequenzen/img/canyon1.png
Binary files differ
diff --git a/Info/9/3/Planet/algorithmik/sequenzen/img/canyon2.png b/Info/9/3/Planet/algorithmik/sequenzen/img/canyon2.png
new file mode 100644
index 00000000..9dfa9478
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/sequenzen/img/canyon2.png
Binary files differ
diff --git a/Info/9/3/Planet/algorithmik/sequenzen/img/canyon3.png b/Info/9/3/Planet/algorithmik/sequenzen/img/canyon3.png
new file mode 100644
index 00000000..a3053705
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/sequenzen/img/canyon3.png
Binary files differ
diff --git a/Info/9/3/Planet/algorithmik/sequenzen/img/h5p-sequenzen3.png b/Info/9/3/Planet/algorithmik/sequenzen/img/h5p-sequenzen3.png
new file mode 100644
index 00000000..b744a4ee
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/sequenzen/img/h5p-sequenzen3.png
Binary files differ
diff --git a/Info/9/3/Planet/algorithmik/sequenzen/img/sequenzen1-file.png b/Info/9/3/Planet/algorithmik/sequenzen/img/sequenzen1-file.png
new file mode 100644
index 00000000..bedf4714
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/sequenzen/img/sequenzen1-file.png
Binary files differ
diff --git a/Info/9/3/Planet/algorithmik/sequenzen/img/sequenzen2-file.png b/Info/9/3/Planet/algorithmik/sequenzen/img/sequenzen2-file.png
new file mode 100644
index 00000000..85096383
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/sequenzen/img/sequenzen2-file.png
Binary files differ
diff --git a/Info/9/3/Planet/algorithmik/sequenzen/sequenzen.md b/Info/9/3/Planet/algorithmik/sequenzen/sequenzen.md
new file mode 100644
index 00000000..3ac07df2
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/sequenzen/sequenzen.md
@@ -0,0 +1,95 @@
+:::{.terminal}
+Um mit dem Rover die Landezone zu verlassen, müssen wir durch einen Canyon fahren.
+Deine Aufgabe ist es den Rover erfolgreich zu den markierten Stellen zu lenken.
+Dazu musst du ihn richtig programmieren.
+Wir verwenden *Java* zum Programmieren.
+Das ist nicht nur der Name einer indonesischen Insel, sondern gleichzeitig auch der Name der weltweit sehr beliebten Programmiersprache.
+
+Der Rover befolgt einzelne Befehle, sogenannte **Anweisungen**.
+**Anweisungen** können in einer nacheinander abgearbeitet werden.
+Eine Abfolge von **Anweisungen** nennt man eine **Sequenz**.
+_
+:::
+
+:::{.merke data-class="Merke: Anweisungen und Sequenzen"}
+Eine **Sequenz** ist eine Folge von **Anweisungen**, die in der angegebenen Reihenfolge abgearbeitet werden.
+
+Ein **Programm** ist eine Folge von Anweisungen in einer *Programmiersprache*.
+:::
+
+#### Schritt 2.1
+
+Der Eingang des Canyon liegt direkt vor dem Rover.
+Jetzt musst du ihn nur noch bewegen.
+
+![](img/canyon1.png){.center}
+
+:::{.aufgabe data-class="Aufgabe 1.1"}
+::: {.columns align=center}
+:::: {.column width=30%}
+![](img/sequenzen1-file.png)
+::::
+
+:::: {.column width=70%}
+Öffne die Datei **Sequenzen1** in der [Online-IDE](online-ide.de).
+Schreibe eine Sequenz von Anweisungen, um den Rover auf die grüne Markierung zu fahren.
+
+*Teste deine Sequenz in dem du den grünen Startknopf ▶ drückst.*
+::::
+:::
+:::
+
+:::{.tipp style="margin-top:1em;"}
+*Die Stelle, an der du im Code etwas ergänzen musst, ist mit `// TODO: ...`{.java} markiert.*
+:::
+
+#### Schritt 2.2
+
+:::{.terminal}
+Im Canyon angekommen, verzweigt sich der Weg.
+Das letzte Team hat bereits die richtige Abzweigung markiert.
+_
+:::
+
+![](img/canyon2.png){.center}
+
+:::{.aufgabe data-class="Aufgabe 1.2"}
+::: {.columns align=center}
+:::: {.column width=30%}
+![](img/sequenzen2-file.png)
+::::
+
+:::: {.column width=70%}
+Öffne die Datei **Sequenzen2** in der Online-IDE.
+Schreibe eine Sequenz von Anweisungen, um den Rover auf die grüne Markierung zu fahren.
+
+*Teste deine Sequenz in dem du den grünen Startknopf ▶ drückst.*
+::::
+:::
+:::
+
+:::{.tipp style="margin-top:1em;"}
+*Du kannst die Fahrtrichtung mit der **Anweisung** `rover.drehe("rechts");`{.java} beziehungsweise `rover.drehe("links");`{.java} ändern.*
+:::
+
+:::{.terminal}
+Sehr gut der Canyon liegt fast hinter uns.
+Du hast gelernt wie du den Rover durch eine **Sequenz** von **Anweisungen** kontrollierst.
+Im letzte Stück des Canyons müssen wir einige Kurven fahren.
+_
+:::
+
+:::{.aufgabe data-class="Aufgabe 1.3"}
+::: {.columns align=center}
+:::: {.column width=30%}
+![](img/h5p-sequenzen3.png)
+::::
+
+:::: {.column width=70%}
+Öffne die Aktivität **Planet: Sequenzen3** in diesem Kurs.
+Bringe die Anweisungen in die richtige Reihenfolge, um den Rover auf die grüne Markierung zu fahren.
+
+*Wenn du willst kannst du deine Seuqenz in der Online-IDE testen.*
+::::
+:::
+:::
diff --git a/Info/9/3/Planet/algorithmik/while/.gitignore b/Info/9/3/Planet/algorithmik/while/.gitignore
new file mode 100644
index 00000000..f236d30e
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/.gitignore
@@ -0,0 +1,7 @@
+aufgabe-4_3-struktogramm.svg
+sucheStein-flowchart.svg
+sucheStein-struktogramm.svg
+tuwas.*
+!tuwas.tex
+while-flowchart.svg
+while-struktogramm.svg
diff --git a/Info/9/3/Planet/algorithmik/while/aufgabe-4_3-struktogramm.tikz b/Info/9/3/Planet/algorithmik/while/aufgabe-4_3-struktogramm.tikz
new file mode 100644
index 00000000..e0d52af9
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/aufgabe-4_3-struktogramm.tikz
@@ -0,0 +1,8 @@
+\begin{struktogramm}(90,50)
+ \assign{fahre vorwärts}
+ \while{solange Gestein vorhanden}
+ \assign{nimm Gestein}
+ \assign{fahre vorwärts}
+ \whileend
+ \assign{setze eine Marke}
+\end{struktogramm}
diff --git a/Info/9/3/Planet/algorithmik/while/bedingte-wiederholung.md b/Info/9/3/Planet/algorithmik/while/bedingte-wiederholung.md
new file mode 100644
index 00000000..7e7d89cb
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/bedingte-wiederholung.md
@@ -0,0 +1,254 @@
+:::{.terminal}
+Um unser gesuchten Mineral zu finden, wollen wir Gesteinsproben untersuchen.
+Der Rover kann Gestein unter sich aufnehmen damit es später genauer analysiert werden kann.
+Es ist deine Aufgabe eine **Methode** zu schreiben, mit der der Rover auf das Gestein vor ihm fährt und es aufsammelt.
+Das letzte Team hat die folgenden Vorschläge gemacht.
+_
+:::
+
+::: {.columns}
+:::: {.column width=33%}
+![](img/suche-stein1.png)
+
+```java
+void sucheGestein()
+{
+ fahre();
+ fahre();
+ nimmGestein();
+}
+```
+::::
+
+:::: {.column width=33%}
+![](img/suche-stein2.png)
+
+```java
+void sucheGestein()
+{
+ fahre(); fahre(); fahre();
+ fahre(); fahre(); fahre();
+ fahre(); fahre();
+ nimmGestein();
+}
+```
+::::
+
+:::: {.column width=33%}
+
+![](img/suche-stein3.png)
+
+```java
+void sucheGestein()
+{
+ wiederhole solange kein Stein vorhanden
+ fahre();
+ nimmGestein();
+}
+```
+::::
+:::
+
+:::{.merke data-class="Merke: Wiederholung mit Bedingung"}
+Mit einer **Wiederholung mit Bedingung** (while-Schleife) können bestimmte [Anweisungen]{color="orange"} mehrmals ausgeführt werden.
+Solange die [Bedingung]{color="magenta"} *wahr* ist, wird die Sequenz wiederholt.
+Wenn die Bedingung *falsch* ist, wird der Programmcode nach der Wiederholung fortgesetzt.
+
+::: {.columns}
+:::: {.column width=33%}
+**Programmcode:**
+
+<code style="white-space: pre;">
+while([Bedingung]{color="magenta"})<br>
+{<br>
+[Anweisungen]{style="color: orange; margin-left: 20px;"}<br>
+}
+</code>
+::::
+
+:::: {.column width=33%}
+**Programmablauf:**
+
+![](while-flowchart.svg)
+::::
+
+:::: {.column width=33%}
+**Struktogramm:**
+
+![](while-struktogramm.svg)
+::::
+:::
+:::
+
+![](img/suche-stein3.png){.center}
+
+:::{.terminal}
+Der letzte Vorschlag unseres Teams sieht schon nicht schlecht aus.
+Leider ist der vorgeschlagene Code noch kein korrektes Java Programm.
+In Java kann das **kein** in *kein Gestein* durch ein `!`{.java} ausgedrückt werden.
+_
+:::
+
+:::{.aufgabe data-class="Aufgabe 4.1"}
+Übertrage die Methode `sucheStein()` in die drei Darstellungsformen.
+
+:::: {.columns}
+::::: {.column width=33%}
+**Programmcode:**
+<div style="height: 10cm;"></div>
+:::::
+
+::::: {.column width=33%}
+**Programmablauf:**
+:::::
+
+::::: {.column width=33%}
+**Struktogramm:**
+:::::
+::::
+:::
+
+:::{.terminal}
+Nun bist du auf dich selbst gestellt.
+Schaffst du die unterschiedlichen Aufgaben auf der Planetenoberfläche?
+_
+:::
+
+#### Schritt 4.1
+
+Vervöllständige die Methode `sammleSteine()`{.java} der Klasse `Rover` in der [Online-IDE](online-ide.de), mit der der Rover eine beliebig lange Gesteinsreihe aufsammeln kann.
+
+![](img/sammle-steine.png){.center}
+
+Teste die Methode in der Datei **SammleSteine**.
+
+#### Schritt 4.2
+
+Mit der Methode `bergketteAbfahren()`, kann der Rover an einer beliebig langen Bergkette entlang fahren.
+Der Programmablaufplan beschreibt den Aufbau der Methode.
+
+::: {.columns}
+:::: {.column width=60%}
+![](img/bergkette-abfahren.png)
+::::
+
+:::: {.column width=40%}
+![](img/bergkette-flowchart.png){style="max-height:6cm;"}
+::::
+:::
+
+* Überlege dir zunächst genau, wo der Rover nach Aufruf der Methode steht und an welchen Stellen er Marken gesetzt hat.
+* Setze die Methode `bergketteAbfahren()`{.java} in der [Online-IDE](online-ide.de) in der Klasse `Rover` um.
+* Teste die Methode in der Datei **BergketteAbfahren** und finde heraus, ob deine Vermutung richtig war.
+
+#### Schritt 4.3
+
+::: {.columns}
+:::: {.column width=50%}
+:::::{.aufgabe data-class="Aufgabe 4.2"}
+Analysiere die folgenden Wiederholungen im abgebildeten Szenario, indem du jeweils angibst, wie oft die Bedingung überprüft wird, wie oft die Anweisung ausgeführt wird, auf welchen Feldern eine Marke gesetzt wird und auf welchem Feld der Rover nach Ausführung des Programms steht.
+:::::
+::::
+
+:::: {.column width=50%}
+![](img/rover-4_2.png)
+::::
+:::
+
+<table>
+<tr>
+ <td>
+ **Code A**
+
+ ```java
+ while(huegelVorhanden("links"))
+ {
+ fahre();
+ }
+ ```
+ </td>
+ <td>
+ **Code B**
+
+ ```java
+ while(huegelVorhanden("rechts"))
+ {
+ fahre();
+ }
+ ```
+ </td>
+ <td>
+ **Code C**
+
+ ```java
+ while(!huegelVorhanden("links"))
+ {
+ fahre();
+ }
+ ```
+ </td>
+</tr>
+<tr>
+ <td>
+ **Code D**
+
+ ```java
+ while(!huegelVorhanden("rechts"))
+ {
+ fahre();
+ }
+ ```
+ </td>
+ <td>
+ **Code E**
+
+ ```java
+ while(huegelVorhanden("rechts"))
+ {
+ fahre();
+ setzeMarke();
+ }
+ ```
+ </td>
+ <td>
+ **Code F**
+
+ ```java
+ while(!huegelVorhanden("links"))
+ {
+ fahre();
+ }
+ setzeMarke();
+ ```
+ </td>
+</tr>
+</table>
+
+::: {.columns}
+:::: {.column width=50%}
+:::::{.aufgabe data-class="Aufgabe 4.3"}
+Der Rover soll alle Gesteine sammeln.
+Dazu hat Tim einen Algorithmus verfasst und ihn als Struktogramm dargestellt.
+Beschreibe, welches Problem im abgebildeten Szenario auftritt.
+:::::
+::::
+
+:::: {.column width=50%}
+![](img/rover-4_3.png)
+
+![](aufgabe-4_3-struktogramm.svg)
+::::
+:::
+
+::: {.columns}
+:::: {.column width=50%}
+:::::{.aufgabe data-class="Aufgabe: 4.4"}
+Im nebenstehenden Code befinden sich 6 Fehler.
+Gib die Zeilennummern der Fehler an und beschreibe den Fehler kurz.
+:::::
+::::
+
+:::: {.column width=50%}
+![](tuwas.svg)
+::::
+:::
diff --git a/Info/9/3/Planet/algorithmik/while/img/bergkette-flowchart.png b/Info/9/3/Planet/algorithmik/while/img/bergkette-flowchart.png
new file mode 100644
index 00000000..3c620074
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/img/bergkette-flowchart.png
Binary files differ
diff --git a/Info/9/3/Planet/algorithmik/while/img/rover-4_2.png b/Info/9/3/Planet/algorithmik/while/img/rover-4_2.png
new file mode 100644
index 00000000..0a423f1c
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/img/rover-4_2.png
Binary files differ
diff --git a/Info/9/3/Planet/algorithmik/while/img/rover-4_3.png b/Info/9/3/Planet/algorithmik/while/img/rover-4_3.png
new file mode 100644
index 00000000..25d4089e
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/img/rover-4_3.png
Binary files differ
diff --git a/Info/9/3/Planet/algorithmik/while/img/sammle-steine.png b/Info/9/3/Planet/algorithmik/while/img/sammle-steine.png
new file mode 100644
index 00000000..6480a927
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/img/sammle-steine.png
Binary files differ
diff --git a/Info/9/3/Planet/algorithmik/while/img/suche-stein1.png b/Info/9/3/Planet/algorithmik/while/img/suche-stein1.png
new file mode 100644
index 00000000..63ab8b40
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/img/suche-stein1.png
Binary files differ
diff --git a/Info/9/3/Planet/algorithmik/while/img/suche-stein2.png b/Info/9/3/Planet/algorithmik/while/img/suche-stein2.png
new file mode 100644
index 00000000..dd73e7bd
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/img/suche-stein2.png
Binary files differ
diff --git a/Info/9/3/Planet/algorithmik/while/img/suche-stein3.png b/Info/9/3/Planet/algorithmik/while/img/suche-stein3.png
new file mode 100644
index 00000000..4580c60e
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/img/suche-stein3.png
Binary files differ
diff --git a/Info/9/3/Planet/algorithmik/while/sucheStein-flowchart.tikz b/Info/9/3/Planet/algorithmik/while/sucheStein-flowchart.tikz
new file mode 100644
index 00000000..393e85df
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/sucheStein-flowchart.tikz
@@ -0,0 +1,41 @@
+\tikzset{
+ process/.style={
+ rectangle,
+ minimum width=2.5cm, minimum height=1cm,
+ draw,
+ text centered
+ },
+ % Decision (diamond)
+ decision/.style={
+ diamond, aspect=2,
+ minimum width=2.5cm, minimum height=1cm,
+ draw,
+ text width=3cm,
+ align=center
+ },
+ % Input/Output (parallelogram)
+ io/.style={
+ trapezium, trapezium left angle=70, trapezium right angle=110,
+ minimum width=2.5cm, minimum height=1cm,
+ draw, fill=green!20,
+ text centered
+ },
+ % Arrow style
+ arrow/.style={
+ thick, ->, >=Stealth
+ }
+}
+
+\begin{tikzpicture}
+ \node (start) {};
+ \node[decision, below=of start] (decision1) {\textcolor{magenta}{Kein Gestein vorhanden}};
+ \node[process, below=of decision1] (process2) {\textcolor{orange}{fahre()}};
+
+ % Arrows
+ \draw[arrow] (start) -- (decision1);
+ \draw[arrow] (decision1) -- node[right] {Wahr} (process2);
+
+ % Decision branch
+ \draw[arrow] (decision1) -- node[above] {Falsch} ($(decision1.east) + (1cm, 0)$) -- ($(decision1.east) + (1cm, -3cm)$);
+ \draw[arrow] (process2.west) -| (-3, -2.4) |- (decision1.west);
+\end{tikzpicture}
diff --git a/Info/9/3/Planet/algorithmik/while/sucheStein-struktogramm.tikz b/Info/9/3/Planet/algorithmik/while/sucheStein-struktogramm.tikz
new file mode 100644
index 00000000..1ca2403a
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/sucheStein-struktogramm.tikz
@@ -0,0 +1,5 @@
+\begin{struktogramm}(90,50)
+ \while{solange \textcolor{magenta}{kein Gestein vorhanden}}
+ \assign{\textcolor{orange}{fahre()}}
+ \whileend
+\end{struktogramm}
diff --git a/Info/9/3/Planet/algorithmik/while/tuwas.tex b/Info/9/3/Planet/algorithmik/while/tuwas.tex
new file mode 100644
index 00000000..7d7c4b6c
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/tuwas.tex
@@ -0,0 +1,23 @@
+\documentclass[border={8mm, 0mm, 2mm, 0mm}, varwidth]{standalone}
+\usepackage{minted}
+\begin{document}
+\begin{minipage}{6cm}
+\begin{minted}[
+linenos,
+frame=lines,
+]{java}
+boolean tueWas()
+{
+ while(!gesteinVorhanden()
+ {
+ fahre();
+ }
+ drehe("rechts");
+ while(!huegelVorhanden(vorne))
+ fahre();
+ }
+ nimmGestein()
+}
+\end{minted}
+\end{minipage}
+\end{document}
diff --git a/Info/9/3/Planet/algorithmik/while/while-flowchart.tikz b/Info/9/3/Planet/algorithmik/while/while-flowchart.tikz
new file mode 100644
index 00000000..e11c711d
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/while-flowchart.tikz
@@ -0,0 +1,40 @@
+\tikzset{
+ process/.style={
+ rectangle,
+ minimum width=2.5cm, minimum height=1cm,
+ draw,
+ text centered
+ },
+ % Decision (diamond)
+ decision/.style={
+ diamond, aspect=2,
+ minimum width=2.5cm, minimum height=1cm,
+ draw,
+ text centered
+ },
+ % Input/Output (parallelogram)
+ io/.style={
+ trapezium, trapezium left angle=70, trapezium right angle=110,
+ minimum width=2.5cm, minimum height=1cm,
+ draw, fill=green!20,
+ text centered
+ },
+ % Arrow style
+ arrow/.style={
+ thick, ->, >=Stealth
+ }
+}
+
+\begin{tikzpicture}
+ \node (start) {};
+ \node[decision, below=of start] (decision1) {\textcolor{magenta}{Bedingung}};
+ \node[process, below=of decision1] (process2) {\textcolor{orange}{Anweisungen}};
+
+ % Arrows
+ \draw[arrow] (start) -- (decision1);
+ \draw[arrow] (decision1) -- node[right] {Wahr} (process2);
+
+ % Decision branch
+ \draw[arrow] (decision1) -- node[above] {Falsch} ($(decision1.east) + (1cm, 0)$) -- ($(decision1.east) + (1cm, -3cm)$);
+ \draw[arrow] (process2.west) -| (-2,-2) |- (decision1.west);
+\end{tikzpicture}
diff --git a/Info/9/3/Planet/algorithmik/while/while-struktogramm.tikz b/Info/9/3/Planet/algorithmik/while/while-struktogramm.tikz
new file mode 100644
index 00000000..cecc55ad
--- /dev/null
+++ b/Info/9/3/Planet/algorithmik/while/while-struktogramm.tikz
@@ -0,0 +1,5 @@
+\begin{struktogramm}(70,50)
+ \while{solange \textcolor{magenta}{Bedingung}}
+ \assign{\textcolor{orange}{Anweisungen}}
+ \whileend
+\end{struktogramm}
diff --git a/Info/9/3/Planet/img/20170122_gasa-gullies-kevin-gill.jpg b/Info/9/3/Planet/img/20170122_gasa-gullies-kevin-gill.jpg
new file mode 100644
index 00000000..ff35d27e
--- /dev/null
+++ b/Info/9/3/Planet/img/20170122_gasa-gullies-kevin-gill.jpg
Binary files differ
diff --git a/Info/9/3/Planet/img/220_F_365660222_ZP4JkbCB5R5DuYGQgF2TGgkv3cAgmrMB.jpg b/Info/9/3/Planet/img/220_F_365660222_ZP4JkbCB5R5DuYGQgF2TGgkv3cAgmrMB.jpg
new file mode 100644
index 00000000..67b92e83
--- /dev/null
+++ b/Info/9/3/Planet/img/220_F_365660222_ZP4JkbCB5R5DuYGQgF2TGgkv3cAgmrMB.jpg
Binary files differ
diff --git a/Info/9/3/Planet/img/220_F_365660222_ZP4JkbCB5R5DuYGQgF2TGgkv3cAgmrMB.png b/Info/9/3/Planet/img/220_F_365660222_ZP4JkbCB5R5DuYGQgF2TGgkv3cAgmrMB.png
new file mode 100644
index 00000000..37c2095b
--- /dev/null
+++ b/Info/9/3/Planet/img/220_F_365660222_ZP4JkbCB5R5DuYGQgF2TGgkv3cAgmrMB.png
Binary files differ
diff --git a/Info/9/3/Planet/img/NASA_Mars_Rover.jpg b/Info/9/3/Planet/img/NASA_Mars_Rover.jpg
new file mode 100644
index 00000000..c815ea58
--- /dev/null
+++ b/Info/9/3/Planet/img/NASA_Mars_Rover.jpg
Binary files differ
diff --git a/Info/9/3/Planet/img/a-martian-rock-called-rocknest-3-3da0a3-640.jpg b/Info/9/3/Planet/img/a-martian-rock-called-rocknest-3-3da0a3-640.jpg
new file mode 100644
index 00000000..9159c219
--- /dev/null
+++ b/Info/9/3/Planet/img/a-martian-rock-called-rocknest-3-3da0a3-640.jpg
Binary files differ
diff --git a/Info/9/3/Planet/img/base-dome.svg b/Info/9/3/Planet/img/base-dome.svg
new file mode 100644
index 00000000..5246cfa1
--- /dev/null
+++ b/Info/9/3/Planet/img/base-dome.svg
@@ -0,0 +1 @@
+<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="m408.7 31-15.4 414h45.4L423.3 31zm-51 32 23 23-23 23h30.1l1.7-46zm84.8 0 1.7 46h30.1l-23-23 23-23zm-56.6 95c-19 27-44.3 42.7-74.3 52.1-39.7 12.5-87.8 13.2-137.8 11.4 24.6 1.8 45.6 8.4 63 18.3 28.1-1.2 55.2-4.6 80.2-12.5 25.5-8 48.6-21 67.9-40.5zm-252.7 83.1c-30.9 5-53.17 18.7-69.5 36.9h44.8c6.4-13.6 14.6-26.1 24.7-36.9zm53.6 0c10.1 10.8 18.3 23.3 24.7 36.9h44.8c-16.3-18.2-38.6-31.9-69.5-36.9zm-26.8.1c-12.8 9.7-23.1 22.3-31.1 36.8h62.2c-8-14.5-18.3-27.1-31.1-36.8zM50.2 296c-7.2 11.5-12.64 24.1-16.58 37h58.02c2.23-12.8 5.34-25.2 9.46-37zm70.3 0c-4.5 11.6-8 24-10.5 37h100c-2.5-13-6-25.4-10.5-37zm98.4 0c4.1 11.8 7.2 24.2 9.5 37h58c-3.9-12.9-9.4-25.5-16.6-37zM29.06 351c-2.08 10.3-3.31 20.4-3.77 30h61.83c.23-10 .86-20.1 1.97-30zm78.14 0c-1.1 9.8-1.8 19.9-2.1 30h109.8c-.3-10.1-1-20.2-2.1-30zm123.7 0c1.1 9.9 1.7 20 2 30h61.8c-.5-9.6-1.7-19.7-3.8-30zM25 399v46h103v18H25v30h174v-80h66v80h30v-94zm192 32v62h30v-62zm160 32v30h78v-30z" fill="#fff" fill-opacity="1"></path></g></svg> \ No newline at end of file
diff --git a/Info/9/3/Planet/img/bergkette-abfahren.png b/Info/9/3/Planet/img/bergkette-abfahren.png
new file mode 100644
index 00000000..e3018b3d
--- /dev/null
+++ b/Info/9/3/Planet/img/bergkette-abfahren.png
Binary files differ
diff --git a/Info/9/3/Planet/img/cave-entrance.svg b/Info/9/3/Planet/img/cave-entrance.svg
new file mode 100644
index 00000000..7f2ce42b
--- /dev/null
+++ b/Info/9/3/Planet/img/cave-entrance.svg
@@ -0,0 +1 @@
+<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="M346.951 24.582 299.193 72.34l-101.136-7.024-40.97 80.737 68.688 25.35 37.153-19.936 8.511 15.861-44.293 23.768-79.7-29.416-70.19 55.341 35.117 58.995-.375.2 13.014 21.585 29.134 2.361 55.06-35.123 9.679 15.176-60.16 38.377-44.364-3.596-18.23-30.234-56.8 30.586 33.712 61.804-33.713 40.735L18 444.177V494h170.62l-5.6-45.592a260.658 260.658 0 0 1-5.147-4.512c-4.186-3.761-5.89-5.444-8.027-7.484l-73.13 21.797-21.339-20.484 12.467-12.985 13.777 13.225 73.068-21.78 3.784 3.667s4.24 4.09 9.216 8.636l37.797-37.248 8.133 79.54 6.3-93.444 10.364 28.387 6.281-45.112 3.14-3.091-.29-.233 22.486-27.974.465-.907.188.096 11.453-14.248 14.03 11.277-9.122 11.348 67.803 34.715 27.008-9.489 22.478 17.71 22.924-12.036 8.367 15.938-33.262 17.46-23.875-18.81-24.964 8.772-9.584-4.907 39.04 87.842L383.923 494H494v-28.512L462.713 478.2l-6.776-16.678L494 446.06V211.176l-23.438-26.463-21.654-67.371-33.547 32.666-107.77-13.873-28.019-29.096 12.967-12.486 23.629 24.539 92.867 11.953 31.442-30.615-52.79-61.801zm27.53 177.74 34.177 41.428 28.863-6.56-4.136-13.59 17.22-5.243 9.77 32.098-58.543 13.307-31.377-38.033-33.086 19.853-9.262-15.436z" fill="#fff" fill-opacity="1"></path></g></svg> \ No newline at end of file
diff --git a/Info/9/3/Planet/img/earth-crack.svg b/Info/9/3/Planet/img/earth-crack.svg
new file mode 100644
index 00000000..19211489
--- /dev/null
+++ b/Info/9/3/Planet/img/earth-crack.svg
@@ -0,0 +1 @@
+<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="m156.777 16.248 21.832 149.004-83.165-78.248 40.946 125.732-74.765-6.927 39.33 68.112h71.87l-11.512-38.73 28.125 15.234 1.17-49.223 44.537 51.568 14.064-78.52 17.58 60.94 57.425-39.846-17.58 58.597 55.082-22.266-30.912 42.248h80.834l37.17-63.13-51.26 6.845 20.565-85.008-70.873 48.905 48.37-111.842-95.25 51.473-12.266-100.908-51.576 104.803-32.53-87.51-18.517 18.18-28.693-39.482zm57.23 259.61-48.064 34.892 20.48 27.527L59.384 355l8.42 66.527-.506 2.99-48.087 20.126V491.7h34.42l47.1-46.206-18.678-74.63 46.343-6.1 3.358 54.933 1.685.75 39.685 32.815-18.117 38.437h54.185L215 432.284l-65.352-26.19-2.673-43.777 73.43-9.666-28.182-37.886 53.593-38.91h-31.81zm60.124 0 49.722 58.437-74.63 35.61-4.355.222 52.588 62.935L266.69 491.7h72.033l-2.315-73.403L282.78 374.6l58.706-28.014 73.418 17.262-45.13 72.213 41.003 55.112.19.527h69.838l-78.51-55.122 14.45-35.62 77.86 30.75v-34.606l-68.937-15.215 18.912-30.26-101.807-23.934-44.103-51.836h-24.54z" fill="#fff" fill-opacity="1"></path></g></svg> \ No newline at end of file
diff --git a/Info/9/3/Planet/img/lunar-module.svg b/Info/9/3/Planet/img/lunar-module.svg
new file mode 100644
index 00000000..d5203d4d
--- /dev/null
+++ b/Info/9/3/Planet/img/lunar-module.svg
@@ -0,0 +1 @@
+<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="M144 23c-9.282 0-17 7.718-17 17 0 5.99 3.224 11.317 8 14.35v40.46l-15.156 7.38L91.68 228.93l76.5-12.75 15.238-91.434 48.268-77.014L153 86.047V54.35c4.776-3.033 8-8.36 8-14.35 0-9.282-7.718-17-17-17zm112 19.832L202.62 128h106.76L256 42.832zM416 45c-24.96 0-45 20.04-45 45s20.04 45 45 45 45-20.04 45-45-20.04-45-45-45zm-135.686 2.732 48.268 77.014 15.068 90.414 76.637 13.617-17.135-77.105C374.586 145.708 353 120.287 353 90c0-2.263.126-4.497.36-6.7l-73.046-35.568zM416 71c9.282 0 17 7.718 17 17s-7.718 17-17 17-17-7.718-17-17 7.718-17 17-17zm-288 48h32v18h-32v-18zm64 89 16 32h96l16-32H192zm149.88 25.13-39.46 92.067 91.148-13.35 25.967-64.92-77.656-13.798zm-171.468.925L92.51 247.04l25.922 64.806 89.494 13.11-37.514-90.9zM198.942 256l29.71 71.992L256 331.998l25.527-3.74L312.494 256h-113.55zm-84.962 73.385L58.15 455H32v18h64v-18H77.85l6.543-14.72c.154-.06.285-.122.486-.18 1.41-.413 3.09-.958 5.097-1.637 4.014-1.358 9.296-3.25 15.464-5.514 12.34-4.53 28.187-10.538 43.86-16.546a8685.83 8685.83 0 0 0 46.782-18.093L247 436.5V471h-23v18h64v-18h-23v-34.5l50.918-38.19a8578.732 8578.732 0 0 0 46.78 18.094c15.675 6.008 31.523 12.017 43.86 16.545 6.17 2.263 11.45 4.155 15.465 5.513 2.007.68 3.687 1.224 5.098 1.637.202.058.333.12.487.18L434.15 455H416v18h64v-18h-26.15l-55.83-125.613-18.493 2.71 38.096 85.717c-1.6-.578-3.097-1.116-4.86-1.763-12.184-4.47-27.99-10.462-43.622-16.454a9258.018 9258.018 0 0 1-39.288-15.176l24.304-48.608-21.715 3.18L314.44 375H265v-26.13l-9 1.32-9-1.32V375h-49.438l-18.003-36.008-21.718-3.18 24.304 48.608a9019.184 9019.184 0 0 1-39.287 15.176c-15.633 5.992-31.44 11.983-43.622 16.455-1.764.648-3.26 1.186-4.86 1.764l38.095-85.72-18.493-2.71zM219 393h28v21l-28-21zm46 0h28l-28 21v-21z" fill="#fff" fill-opacity="1"></path></g></svg> \ No newline at end of file
diff --git a/Info/9/3/Planet/img/map.png b/Info/9/3/Planet/img/map.png
new file mode 100644
index 00000000..3007e806
--- /dev/null
+++ b/Info/9/3/Planet/img/map.png
Binary files differ
diff --git a/Info/9/3/Planet/img/map.xcf b/Info/9/3/Planet/img/map.xcf
new file mode 100644
index 00000000..6a3d089c
--- /dev/null
+++ b/Info/9/3/Planet/img/map.xcf
Binary files differ
diff --git a/Info/9/3/Planet/img/mars.jpg b/Info/9/3/Planet/img/mars.jpg
new file mode 100644
index 00000000..96fae3f0
--- /dev/null
+++ b/Info/9/3/Planet/img/mars.jpg
Binary files differ
diff --git a/Info/9/3/Planet/img/mountains.svg b/Info/9/3/Planet/img/mountains.svg
new file mode 100644
index 00000000..0c48ee46
--- /dev/null
+++ b/Info/9/3/Planet/img/mountains.svg
@@ -0,0 +1 @@
+<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="M256.22 18.375c-132.32 0-239.783 107.43-239.783 239.75S123.9 497.905 256.22 497.905 496 390.446 496 258.126 388.54 18.375 256.22 18.375zm0 17.875c102.773 0 189.092 69.664 214.374 164.406l-79.313-81.47-6.967-7.155-6.688 7.47-77.22 86.438a1912.536 1912.536 0 0 0-34.467-30.063l-6.563-5.625-6.125 6.156a3510.226 3510.226 0 0 0-55.438 57.094l-76.437-83.375-6.875-7.5-6.875 7.5-71.188 77.313C51.364 119.34 143.983 36.25 256.22 36.25zm102.25 147.28-3.845 35.376 21.563-32 10.75 16.688 9.968-8.47 27.188 26.814L417 187.344l19.5 5.062 39.188 40.25.843-.812a224.379 224.379 0 0 1 1.564 26.28c0 37.033-9.06 71.917-25.063 102.595-46.25-53.48-92.512-100.116-138.75-142.283l11-12.312 33.19-22.594zm-220.16 22.75 26.438 18.782 20.22 22.032c-39.47 42.024-78.63 85.836-115.94 130.344-21.98-34.443-34.718-75.38-34.718-119.313v-.78l16.25-17.658L87.81 219.5l-17.187 54.063 41.813-51.22 27.312 32.72-1.438-48.782zm141.375 61.657 53.157 60.938-7.688-54.563L386.312 315a1631.644 1631.644 0 0 1 56.75 62.78l.188-.186C403.853 439.216 334.868 480.03 256.22 480.03c-71.76 0-135.483-33.992-176.033-86.75 19.135-22.91 38.775-45.645 58.72-68.06l56.155-33.814-29.312 76.75 61.53-73.375 6.25 32.19 19.532-36.783 47.844 69.5-21.22-91.75z" fill="#fff" fill-opacity="1"></path></g></svg> \ No newline at end of file
diff --git a/Info/9/3/Planet/img/online-ide-overview.png b/Info/9/3/Planet/img/online-ide-overview.png
new file mode 100644
index 00000000..45a993ae
--- /dev/null
+++ b/Info/9/3/Planet/img/online-ide-overview.png
Binary files differ
diff --git a/Info/9/3/Planet/img/online-ide-overview.xcf b/Info/9/3/Planet/img/online-ide-overview.xcf
new file mode 100644
index 00000000..cfa8b025
--- /dev/null
+++ b/Info/9/3/Planet/img/online-ide-overview.xcf
Binary files differ
diff --git a/Info/9/3/Planet/img/stone-pile.svg b/Info/9/3/Planet/img/stone-pile.svg
new file mode 100644
index 00000000..5ac9603a
--- /dev/null
+++ b/Info/9/3/Planet/img/stone-pile.svg
@@ -0,0 +1 @@
+<svg style="height: 512px; width: 512px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 0h512v512H0z" fill="#000" fill-opacity="1"></path><g class="" style="" transform="translate(0,0)"><path d="m317.727 108.904-95.192 96.592-26.93 86.815 17.54 36.723 20.417 9.287 33.182-55.082 11.297-3.61 61.75 26.85 20.26-12.998 4.47-43.7 11.42 53.634-10.622 14.162 3.772 1.64 5.238 6.5 6.832 34.343 55.977-66.775 13.98.23 22.397 28.575-9.453-52.244L434.01 166.81l-116.28-57.906zM123.61 120.896 94.08 173l-4.603 27.62 25.98-8.442 11.704 7.377.084.634 28.295 59.865 13.773-4.543 10.94 4.668 3.922 8.21 19.517-62.917-1.074-33.336-40.15-.522-29.732-23.78 34.06 10.888 42.49-7.727 26.034 15.88 36.282-36.815a332.698 332.698 0 0 0-8.58-3.52l-79.58 10.126-3.528-.25-56.307-15.52zm249.33 36.422 47.058 66.02 2.107 62.51-25.283-59.698-65.322-60.404 41.44-8.428zm-262.2 55.32-64.234 20.876-16.71 78.552 50.794 5.582.596-7.14 37.662-36.707-8.108-61.16zm56.688 62.45-36.44 12.016-31.644 30.84 22.588 30.867 57.326 1.74 16.5-16.16-28.33-59.302zm110.666 24.19-44.307 73.546-.033 57.14 97.264 12.216 44.242-19.528-17.666-88.806-79.5-34.567zM443.8 313.36l-46.843 55.876.287 1.774 65.147 13.887 25.78-14.926-44.37-56.613zm-138.382 15.89 39.23 22.842 13.41 50.658-26.82 23.838-45.015-2.553 38.562-28.242 2.483-39.23-21.85-27.312zm-238.37 53.838-8.77 28.51 13.152 48.498 91.037-11.91 1.32-26.418-62.582-31.995-34.156-6.684z" fill="#fff" fill-opacity="1"></path></g></svg> \ No newline at end of file
diff --git a/Info/9/3/Planet/karten-beschreibung.md b/Info/9/3/Planet/karten-beschreibung.md
new file mode 100644
index 00000000..585d38b1
--- /dev/null
+++ b/Info/9/3/Planet/karten-beschreibung.md
@@ -0,0 +1,5 @@
+:::{.terminal}
+Das ist die Karte des roten Planeten.
+Bahne dir deinen Weg von der Landung bis zur Höhle auf der anderen Seite, um die seltenen Mineralien zu bergen und die Mission abzuschließen.
+_
+:::
diff --git a/Info/9/3/Planet/modellierung/landung/.gitignore b/Info/9/3/Planet/modellierung/landung/.gitignore
new file mode 100644
index 00000000..0e53667b
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/landung/.gitignore
@@ -0,0 +1,5 @@
+gestein-object.svg
+huegel-object.svg
+koordinatensystem.svg
+marke-object.svg
+rover-object.svg
diff --git a/Info/9/3/Planet/modellierung/landung/datentypen-quiz.md b/Info/9/3/Planet/modellierung/landung/datentypen-quiz.md
new file mode 100644
index 00000000..1460caa3
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/landung/datentypen-quiz.md
@@ -0,0 +1,6 @@
+:::{.terminal}
+Kannst du dich noch an die Datentypen von Datenbanken erinnern?
+_
+:::
+
+Zurück zu TODO: Landung
diff --git a/Info/9/3/Planet/modellierung/landung/gestein-object.plantuml b/Info/9/3/Planet/modellierung/landung/gestein-object.plantuml
new file mode 100644
index 00000000..916caec8
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/landung/gestein-object.plantuml
@@ -0,0 +1,7 @@
+@startuml
+object gestein7 {
+ x = 3
+ y = 7
+ farbe="rot"
+}
+@enduml
diff --git a/Info/9/3/Planet/modellierung/landung/huegel-object.plantuml b/Info/9/3/Planet/modellierung/landung/huegel-object.plantuml
new file mode 100644
index 00000000..42f278e5
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/landung/huegel-object.plantuml
@@ -0,0 +1,6 @@
+@startuml
+object huegel3 {
+ x = 5
+ y = 8
+}
+@enduml
diff --git a/Info/9/3/Planet/modellierung/landung/img/default-planet.png b/Info/9/3/Planet/modellierung/landung/img/default-planet.png
new file mode 100644
index 00000000..5781bfcc
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/landung/img/default-planet.png
Binary files differ
diff --git a/Info/9/3/Planet/modellierung/landung/img/h5p-datentyp-zuordnung.png b/Info/9/3/Planet/modellierung/landung/img/h5p-datentyp-zuordnung.png
new file mode 100644
index 00000000..469e61f3
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/landung/img/h5p-datentyp-zuordnung.png
Binary files differ
diff --git a/Info/9/3/Planet/modellierung/landung/koordinatensystem.tikz b/Info/9/3/Planet/modellierung/landung/koordinatensystem.tikz
new file mode 100644
index 00000000..ac9c6c66
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/landung/koordinatensystem.tikz
@@ -0,0 +1,4 @@
+\begin{tikzpicture}
+\draw[->, line width=1pt] (0, 0.2) -- (0, -1);
+\draw[->, line width=1pt] (-0.2, 0) -- (1, 0);
+\end{tikzpicture}
diff --git a/Info/9/3/Planet/modellierung/landung/marke-object.plantuml b/Info/9/3/Planet/modellierung/landung/marke-object.plantuml
new file mode 100644
index 00000000..759e6abd
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/landung/marke-object.plantuml
@@ -0,0 +1,6 @@
+@startuml
+object marke19 {
+ x = 12
+ y = 1
+}
+@enduml
diff --git a/Info/9/3/Planet/modellierung/landung/modellierung.md b/Info/9/3/Planet/modellierung/landung/modellierung.md
new file mode 100644
index 00000000..c12651b5
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/landung/modellierung.md
@@ -0,0 +1,119 @@
+:::{.terminal}
+Bevor wir los legen, müssen wir uns kurz damit beschäftigen, welche Dinge auf dem roten Planeten existieren und wie die YASA damit umgeht.
+:::
+
+#### Schritt 0.1
+
+:::{.merke data-class="Merke: Modellierung"}
+**Modellierung** bezeichnet die Übertragung von Dingen aus der "echten" Welt in Konzepte einer Programmiersprache, wie beispielsweise **Klassen** und **Objekte**.
+:::
+
+:::{.tipp style="margin-top:1em;"}
+Vergiss nicht einen Screenshot des Merkkastens abzugeben.
+:::
+
+#### Schritt 0.2
+
+<table>
+ <tr>
+ <td style="width:20%">**Realität**</td>
+ <td style="width:55%"></td>
+ <td style="width:15%">**Objekt**</td>
+ <td style="width:10%"></td>
+ </tr>
+ <tr>
+ <td>![](img/NASA_Mars_Rover.jpg)</td>
+ <td>**Rover**
+ Ein Rover muss seine Position in Form einer x- und einer y-Koordinate kennen.
+ Die Rotation bestimmt seine Fahrtrichtung.
+ </td>
+ <td>![](rover-object.svg)</td>
+ <td>![](img/Copyrighted/rover.png)</td>
+ </tr>
+ <tr>
+ <td>![](img/20170122_gasa-gullies-kevin-gill.jpg)</td>
+ <td>**Hügel**
+ Ein Hügel ist eine Erhebung, die im Gegensatz zur ebenen Oberfläche eine Steigung größer als 30 Grad besitzt.
+ Jeder Hügel hat einen festen, durch x und y festgelegten Standort.
+ </td>
+ <td>![](huegel-object.svg)</td>
+ <td>![](img/Copyrighted/huegel.png)</td>
+ </tr>
+ <tr>
+ <td>![](img/a-martian-rock-called-rocknest-3-3da0a3-640.jpg)</td>
+ <td>**Gestein**
+ Das Gestein besitzt wie alle anderen Objekte auch eine x- und eine y-Koordinate.
+ Außerem kann Gestein rot oder blau sein.
+ Es kann vom Rover aufgenommen werden.
+ </td>
+ <td>![](gestein-object.svg)</td>
+ <td>![](img/Copyrighted/gesteinRot.png)</td>
+ </tr>
+ <tr>
+ <td>![](img/220_F_365660222_ZP4JkbCB5R5DuYGQgF2TGgkv3cAgmrMB.png)</td>
+ <td>**Marke**
+ Eine Marke wird von einem Rover an einem bestimmten Ort, der durch eine x- und eine
+ y-Koordinate festgelegt ist, abgelegt.
+ </td>
+ <td>![](marke-object.svg)</td>
+ <td>![](img/Copyrighted/marke.png)</td>
+ </tr>
+</table>
+
+:::{.page-break}
+:::
+
+#### Schritt 0.3
+
+![](img/default-planet.png)
+
+::: {.columns}
+:::: {.column width=80%}
+Anders als in der Mathematik zeigt die y-Achse des Koordinatensystems stets nach unten.
+Außerdem beginnt man in der Informatik beim Zählen mit der 0 und nicht mit der 1.
+Der Rover aus der obigen Grafik hat also die Koordinaten $(1|2)$.
+::::
+
+:::: {.column width=20%}
+![](koordinatensystem.svg)
+::::
+:::
+
+:::{.aufgabe data-class="Aufgabe 0.1"}
+Welche Koordinaten haben die Markierung und das rote Gestein?
+:::
+
+:::{.page-break}
+:::
+
+#### Schritt 0.4
+
+Bisher hast du nur Datentypen für Datenbanken kennengelernt.
+Recherchiere im Internet, welche Datentypen es in Java gibt.
+Fülle mit deinen gewonnenen Informationen nachfolgende Übersicht über Datentypen:
+
+:::{.merke data-class="Merke: Datentypen"}
+Ein Datentyp gibt an, welche Art von Wert eine Variable hat. Z. B. ob es sich bei dem Wert um einen Text, Zahl oder Wahrheitswert handelt.
+
+---------------------------------------------------------------------
+Datentyp Bedeutung Beispiel
+------------ ----------------------- ------------------------------
+`String` Zeichenkette bzw. Text "Hallo", "Informatik ist toll"
+
+ [int]{color="white"}
+
+ [double]{color="white"}
+
+ [boolean]{color="white"}
+
+ [char]{color="white"}
+---------------------------------------------------------------------
+:::
+
+:::{.aufgabe data-class="Aufgabe 0.2"}
+Schaffst du es den Java Datentypen den entsprechenden Datentyp der Datenbanken zuzuordnen?
+Hier geht's zur Aktivität: SQL-Java-Datentypen-Match
+![](img/h5p-datentyp-zuordnung.png)
+:::
+
+<< Zurück zu TODO: Landung
diff --git a/Info/9/3/Planet/modellierung/landung/online-ide.md b/Info/9/3/Planet/modellierung/landung/online-ide.md
new file mode 100644
index 00000000..0811920c
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/landung/online-ide.md
@@ -0,0 +1,107 @@
+---
+include-after: |
+ <script>
+ async function fetchJson(url) {
+ try {
+ const response = await fetch(url);
+ if (!response.ok) {
+ console.log(response);
+ return;
+ }
+ return await response.json();
+ } catch (error) {
+ console.error('Error fetching JSON:', error);
+ }
+ }
+
+ // Get the user's firstname via the moodle generico filter
+ const firstname = "{firstname}";
+ const lastname = "{lastname}";
+
+ const resource = 90441121;
+ // Moodle some insists in wrapping urls in <a> tags breaking the JS code.
+ // We use a base64 encoding for the url: https://lernplattform.bycs.de/mod/resource/view.php?id=
+ const resourceUrl = "aHR0cHM6Ly9sZXJucGxhdHRmb3JtLmJ5Y3MuZGUvbW9kL3Jlc291cmNlL3ZpZXcucGhwP2lkPQo=";
+ const url = window.atob(resourceUrl) + resource;
+
+ fetchJson(url).then((logins) => {
+ if (logins) {
+ for (const user of logins) {
+ if (!(user.Name.includes("{firstname}") && user.Name.includes("{lastname}")))
+ continue;
+
+ let loginDiv = document.querySelector(".oide-login");
+ loginDiv.innerHTML = `Benutzername: ${user.Benutzername}<br>Passwort: ${user.Passwort}`;
+ }
+ }
+ });
+ </script>
+---
+
+:::{.terminal}
+### Online-IDE
+
+Die YASA benutzt für alle Programmieraufgaben die [Online-IDE](https://www.online-ide.de/).
+Rufe die Seite auf und melde dich an.
+
+#### Dein Zugang
+
+Die YASA hat dir einen Zugang für die Online-IDE angelegt.
+
+::::{.oide-login}
+::::
+
+Bitte ändere dein Passwort und notiere dir deine Login-Informationen!
+:::
+
+#### Aufbau der Seite
+
+Die Online-IDE ist folgendermaßen aufgebaut.
+
+![](img/online-ide-overview.png){.center}
+
+##### [Datei-Fenster]{color="#004CFF"}
+
+Das <span style="border: solid 1px #004CFF">Datei-Fenster</span> befindet sich in der linken oberen Ecke und zeigt dir alle Dateien und Ordner in deinem aktuellen Projekt.
+Durch anklicken einer Datei siehst du deren Inhalt.
+Wird rechts neben einer Datei ein grüner Pfeil angezeigt, dann kann Code in der Datei mit einem Klick auf den grünen Pfeil im Controls-Fenster direkt ausgeführt werden.
+
+##### [Workspace-Fenster]{color="#770088"}
+
+Das <span style="border: solid 1px #770088">Workspace-Fenster</span> zeigt dir alle deine Projekte.
+Ein Projekt heißt in der Online-IDE workspace.
+
+##### [Code-Fenster]{color="#028121"}
+
+Das größte und wichtigste Fenster ist das <span style="border: solid 1px #028121">Code-Fenster</span>.
+Hier erscheint der Code der in der ausgewählten Datei steht.
+Für dich wichtige Dateien sind alle die mit einem grünen Pfeil markiert sind und die Datei **Rover**.
+
+##### [Status-Fenster]{color="#FF0000"}
+
+Das <span style="border: solid 1px #FF0000">Status-Fenster</span> unter dem Code-Fenster zeigt dir an, ob du noch Fehler in deinem Code hast.
+Für jeden Fehler wird eine kurze Beschreibung angezeigt.
+Oft hilft es aufmerksam die Beschreibung des Fehlers zu lesen wenn du zum Beispiel einfach nur einen Strichpunkt (Semikolon) `;`{.java} vergessen hast.
+
+##### [Ausgabe-Fenster]{color="#EEDD00"}
+
+Das <span style="border: solid 1px #FFEE00">Ausgabe-Fenster</span> ist der Ort an dem die spannenden Dinge passieren, dein Fenster zum roten Planeten.
+Hier kannst du bequem von deinem sicheren Arbeitsplatz die karge Welt des Planeten beobachten und was der Rover darin so tut.
+
+##### [Controls-Fenster]{color="#00B2FF"}
+
+Zuletzt kannst du über dem Code-Fenster mit den <span style="border: solid 1px #00B2FF">Controls</span> dein Programm starten, die Geschwindigkeit in der es ausgeführt werden soll einstellen und vieles mehr.
+
+<< Zurück zu TODO: Landung
+
+##### Wenn du mehr wissen willst
+
+Der Entwickler der Online-IDE hat ausführlichere Erklärvideos zum Aufbau und der Benuztung der Online-IDE erstellt.
+
+###### Funktionen
+
+[Funktionen](https://youtu.be/gh7CM8RFCQ0)
+
+###### Code-Hilfen
+
+[Code-Hilfen](https://youtu.be/1xIEjj2NhTI)
diff --git a/Info/9/3/Planet/modellierung/landung/rover-object.plantuml b/Info/9/3/Planet/modellierung/landung/rover-object.plantuml
new file mode 100644
index 00000000..ddf21ff2
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/landung/rover-object.plantuml
@@ -0,0 +1,7 @@
+@startuml
+object rover {
+ x = 3
+ y = 7
+ rotation = 270
+}
+@enduml
diff --git a/Info/9/3/Planet/modellierung/landung/todo.md b/Info/9/3/Planet/modellierung/landung/todo.md
new file mode 100644
index 00000000..14c5381c
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/landung/todo.md
@@ -0,0 +1,8 @@
+:::{.terminal}
+Schön dass du uns auf dem roten Planeten unterstützt!
+Pro Bereich auf der Planetenoberfläche hast du gewissene Aufgaben zu erledigen.
+Die Aufgaben werden in einer *TODO* Übersicht zusammengefasst.
+Wenn du genug Aufgaben eines Bereiches erledigt hast, gelangst du zum Nächsten.
+Eine ausführliche Einführung in die Abläufe auf dem roten Planet findest du unter: Willkommen.
+_
+:::
diff --git a/Info/9/3/Planet/modellierung/landung/welcome.md b/Info/9/3/Planet/modellierung/landung/welcome.md
new file mode 100644
index 00000000..3ae31047
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/landung/welcome.md
@@ -0,0 +1,38 @@
+:::{.terminal}
+Willkommen {firstname} auf dem roten Planet!
+
+Als Teil der Erkundungsmission der YASA (Yet Another Space Agancy) bist du verantwortlich für die technische Kontrolle des Rovers.
+
+Da die Zeit auf der Erde knapp war, wirst du in den kommenden Wochen alles Nötige lernen, um den Rover zusteuern und unsere Mission zu erfüllen.
+
+### Was brauchst du dafür?
+
+* Zugang zu einem Computer/(Tablet) an dem du bequem arbeiten und tippen kannst.
+* Ein (digitales) Notizbuch/Schnellhefter, wo du Wissenswertes und Übungen aufschreiben kannst.
+* Zugang zu unserer Programmierumgebung [Online-IDE](https://www.online-ide.de/), um den Rover zu steuern.
+ Deinen Zugang und Informationen zur Nutzung der Online-IDE findest du auf der Seite "Überblick Online-IDE" in diesem Kurs.
+
+### Planetenerkundung
+
+Zweck dieser YASA-Mission ist den roten Planet Schritt-für-Schritt zu erkunden.
+Unser Ziel ist die seltenen Mineralien aus Höhle auf der anderen Seite des Planeten zu bergen.
+
+Hast du alle Aufgaben in einem Bereich erledigt, gelangst du zum Nächsten.
+
+::::{.tipp}
+:::::
+Vergiss nicht die Seiten als *erledigt* zu markieren.
+:::::
+::::
+
+Jeder Bereich hat ein eigenes Aufgabenblatt, lade das Blatt deines Bereichs runter oder nimm dir eine ausgedruckte Version und füge es deinen Notizen hinzu.
+
+::::{.merke data-class="Merke"}
+Wichtige Information sind als Merksätze markiert. Übertrage sie **handschriftlich** auf dein Blatt.
+::::
+
+Die YASA verlangt oft bei Missionen, dass ein Nachweis für die Erledigung von Aufgaben eingereicht wird.
+Dazu reicht ein Bild/Screenshot deiner Notizen.
+:::
+
+<< Zurück zu TODO: Landung
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/bauplaene.md b/Info/9/3/Planet/modellierung/zwischenlager/bauplaene.md
new file mode 100644
index 00000000..94c7ca52
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/bauplaene.md
@@ -0,0 +1,17 @@
+:::{.terminal}
+Sehr gut! Du bist im Zwischenlager der YASA auf dem roten Planeten angekommen.
+
+Nachdem du bereits gelernt hast, wie du dich im Ausbildungsmaterial zurechtfindest und den Rover kontrollierst (Online-IDE), findest du hier Bauanleitungen und Programme, die dir dein Leben einfacher machen.
+
+
+Bisher hast du einfach alle Anweisungen, die der Rover ausführen sollte nach einander aufgeschrieben.
+Das klappt für kurze Programme sehr gut, allerdings kommt dieses Vorgehen schnell an seine Grenzen bei komplizierteren Programmen.
+Stell dir vor der Rover soll in Quadraten um mehrere Hügel fahren, um die Umgebung nach Geröll abzusuchen.
+Dabei wäre es doch praktisch wenn du das Absuchen **eines** Hügels nur einmal programmieren müsstest und dann einfach wiederverwenden kannst.
+
+Genau dazu gibt die **Methoden** einer **Klasse**.
+
+Hier im Zwischenlager lernst du was eine **Methode** ist und wie du selbst **Methoden** schreiben kannst.
+
+Aber lass uns zuerst einmal ausprobieren was der Rovers schon kann, indem wir die Methoden Testen.
+:::
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/img/block-comment.png b/Info/9/3/Planet/modellierung/zwischenlager/img/block-comment.png
new file mode 100644
index 00000000..af3e3fbb
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/img/block-comment.png
Binary files differ
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/img/fahreDreiFelder.png b/Info/9/3/Planet/modellierung/zwischenlager/img/fahreDreiFelder.png
new file mode 100644
index 00000000..9bcb4a58
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/img/fahreDreiFelder.png
Binary files differ
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/img/h5p-methoden-sortieren.png b/Info/9/3/Planet/modellierung/zwischenlager/img/h5p-methoden-sortieren.png
new file mode 100644
index 00000000..c6b9f2d9
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/img/h5p-methoden-sortieren.png
Binary files differ
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/img/h5p-methoden-testen.png b/Info/9/3/Planet/modellierung/zwischenlager/img/h5p-methoden-testen.png
new file mode 100644
index 00000000..1bcaafc7
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/img/h5p-methoden-testen.png
Binary files differ
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/img/methoden-teile.png b/Info/9/3/Planet/modellierung/zwischenlager/img/methoden-teile.png
new file mode 100644
index 00000000..90da7b44
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/img/methoden-teile.png
Binary files differ
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/img/oide-methodenTest.png b/Info/9/3/Planet/modellierung/zwischenlager/img/oide-methodenTest.png
new file mode 100644
index 00000000..b8007c82
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/img/oide-methodenTest.png
Binary files differ
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/img/oide-rover.png b/Info/9/3/Planet/modellierung/zwischenlager/img/oide-rover.png
new file mode 100644
index 00000000..8e7653fd
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/img/oide-rover.png
Binary files differ
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/img/quadrat.png b/Info/9/3/Planet/modellierung/zwischenlager/img/quadrat.png
new file mode 100644
index 00000000..d5551e59
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/img/quadrat.png
Binary files differ
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/img/zusatzaufgabe1.png b/Info/9/3/Planet/modellierung/zwischenlager/img/zusatzaufgabe1.png
new file mode 100644
index 00000000..d92f0529
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/img/zusatzaufgabe1.png
Binary files differ
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/img/zusatzaufgabe2.png b/Info/9/3/Planet/modellierung/zwischenlager/img/zusatzaufgabe2.png
new file mode 100644
index 00000000..04ed56cf
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/img/zusatzaufgabe2.png
Binary files differ
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/methoden-schreiben.md b/Info/9/3/Planet/modellierung/zwischenlager/methoden-schreiben.md
new file mode 100644
index 00000000..de8f1ada
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/methoden-schreiben.md
@@ -0,0 +1,260 @@
+#### Schritt 3.2.1
+Öffne in der [Online-IDE](online-ide.de) den Workspace "Planet".
+
+Lade das Methoden Schreiben Arbeitsblatt herunter, und füge es deinen Notizen hinzu.
+
+#### Schritt 3.2.2
+
+::: {.columns style="margin-bottom:-5%"}
+:::: {.column width=70%}
+* Heute lernst du, wie man eigene Methoden programmiert.
+* Um eigene Methoden zu schreiben, muss man den Quellcode öffnen.
+ Klicke dazu auf die Datei **Rover** im linken oberen Fenster.
+::::
+
+:::: {.column width=30%}
+![](img/oide-rover.png){width=80%}
+::::
+:::
+
+#### Schritt 3.2.3
+Du solltest nun den Quellcode offen haben.
+Schau dir den Code kurz an, aber beachte nachfolgenden Hinweis:
+
+:::{.verboten}
+Verboten: Ändere keinesfalls den Code der vorgegebenen Methoden. Ohne Vorwissen zerstörst du sonst nur dein Projekt.
+:::
+Der Code wird zur besseren Übersicht farblich hervorgehoben.
+Die [gelbe Linie]{.underline color="#625615"} umschließt die komplette Klasse.
+Methoden werden mit einer [lila Linie]{.underline color="#573756"} dargestellt.
+Kontrollstrukturen (dazu kommen wir erst später) werden als [blaue Linien]{.underline color="#1F4067"} angezeigt.
+
+:::{.aufgabe data-class="Aufgabe 3.2.1"}
+Wozu dienen die Absätze, die mit `/**`{.java} anfangen und `*/`{.java} aufhören?
+Z. B.:
+
+![](img/block-comment.png){.center width=80%}
+:::
+
+#### Schritt 3.2.4
+Nun wird es Zeit für unsere erste eigene Methode.
+Übertrage dazu den Code der Methode `fahreDreiFelder()`{.java} in deinen eigenen Quellcode der Klasse Rover.
+Achte darauf, dass du alles genau so wie abgebildet abtippst.
+
+![](img/fahreDreiFelder.png){.center width=80%}
+
+Änderungen werden automatisch übernommen.
+Teste deine Methode, indem du in der Datei **MethodenTest** deine neue Methode Aufrufst.
+
+#### Schritt 3.2.5
+Nun analysieren wir die Bestandteile des Codes.
+Eine Methode besteht immer aus einem <span style="border: solid 1px red">Methodenkopf</span> und einem <span style="border: solid 1px blue">Methodenrumpf</span>.
+
+![](img/methoden-teile.png){.center width=60%}
+
+Der Kopf besteht aus:
+
+* **Rückgabetyp:**
+ * Bei Methoden ohne Rückgabewert: `void`{.java}
+ * Bei Methoden mit Rückgabewert: der Datentyp des zurückgebenden Wertes (z. B. `boolean`{.java} oder `String`{.java})
+* **Methodenname:** ohne Leerzeichen!
+ Der Name ist grundsätzlich immer frei wählbar, sollte aber so gewählt sein, damit klar ist, was die Methode macht.
+* **rundes Klammernpaar:** Hier werden ggf. Eingaben (sog. Parameter) eingetragen.
+ Wird keine Eingabe verlangt, bleibt die Klammer leer `()`{.java}.
+
+Anfang und Ende des Rumpfes werden durch geschweifte Klammern `{ }`{.java} gekennzeichnet.
+Im Rumpf werden **Anweisungen** geschrieben, z. B. `fahre()`{.java}.
+Jede Anweisung endet immer mit einem Semikolon `;`{.java}.
+
+:::{.merke data-class="Merke: Methoden programmieren"}
+Eine Methode besteht aus:
+
+* **Methodenkopf:** Rückgabetyp (`void`{.java} oder der entsprechende Datentyp des Rückgabewertes), Methodenname, rundes Klammernpaar `()`{.java}.
+ Allgemeine Form: `<Rückgabetyp> <Methodenname>([Parameter])`
+* **Methodenrumpf:** Anweisungen (Das Ende einer Anweisung wird durch ein Semikolon `;`{.java} gekennzeichnet).
+:::
+
+:::{.page-break}
+:::
+
+#### Schritt 3.2.6
+
+Um unseren Code noch besser zu verstehen, führen wir ein paar mehr oder weniger sinnvolle Änderungen durch.
+
+:::{.aufgabe data-class="Aufgabe 3.2.2"}
+Ändere den Rückgabetyp der Methode `fahreDreiFelder()`{.java} zu `boolean`{.java}.
+Was fällt dir auf, wenn du die Methode des Rovers in `MethodenTest` aufrufen willst?
+:::
+
+Setze den Rückgabetyp nun wieder auf `void`{.java}.
+
+:::{.aufgabe data-class="Aufgabe 3.2.3"}
+Lass in der Methode `fahreDreiFelder()`{.java} bei der ersten Anweisung `fahre()`{.java} das Semikolon `;`{.java} weg und übersetze den Code.
+Was passiert?
+:::
+
+Füge das gelöschte Semikolon wieder hinzu.
+
+#### Schritt 3.2.7
+
+Eine Programmiersprache folgt klaren und eindeutigen Regeln.
+Diese nennt man in der Informatik Syntax.
+In einer normalen Sprache ist dies vergleichbar mit der Grammatik.
+
+Unser Tool (Online-IDE), das wir zum Programmieren verwenden, kann die Syntax überprüfen.
+Es schaut also, ob alle Regeln der Programmiersprache eingehalten wurde.
+Also ob beispielsweise nach jeder Anweisung ein Semikolon folgt.
+Syntaxfehler werden in der Online-IDE dankenswerterweise immer rot markiert.
+Geht man mit dem Mauszeiger im Code über die rot markierte Stelle, werden einem nähere Informationen über den vorliegenden Syntaxfehler angezeigt.
+
+:::{.merke data-class="Merke: Syntax"}
+Beim Programmieren legt die Syntax die formalen Regeln einer Programmiersprache fest.
+:::
+
+#### Schritt 3.2.8
+
+Schreibe nun eine eigene Methode `fahreUndDreheRechts()`{.java}.
+Durch diese soll der Rover ein Feld nach vorne fahren und sich anschließend nach rechts drehen.
+Überlege dir dazu, welchen Rückgabetyp die Methode braucht.
+
+#### Schritt 3.2.9
+
+::: {.columns}
+:::: {.column width=60%}
+Übernehme die abgebildete Methode `quadrat()`{.java} in deinen Quellcode.
+Teste und analysiere sie anschließend.
+::::
+
+:::: {.column width=40%}
+![](img/quadrat.png){.center}
+::::
+:::
+
+### Aufgaben für Schnelle
+
+#### Zusatzaufgabe 3.1
+
+![](img/zusatzaufgabe1.png){.center width=80%}
+
+Beurteile die nachfolgenden Algorithmen hinsichtlich ihrer Korrektheit und Strategie.
+
+::: {.columns}
+:::: {.column width=33%}
+Algorithmus 1
+
+```{.java}
+void algo1
+{
+ fahre();
+ fahre();
+ nimmGestein();
+ fahre();
+ nimmGestein();
+ drehe("rechts");
+ fahre();
+ drehe("rechts");
+ fahre();
+ nimmGestein();
+}
+```
+::::
+
+:::: {.column width=33%}
+Algorithmus 2
+
+```{.java}
+void algo2
+{
+ fahre();
+ fahre();
+ nimmGestein();
+ fahre();
+ nimmGestein();
+ drehe("rechts");
+ drehe("rechts");
+ fahre();
+ drehe("rechts");
+ fahre();
+ nimmGestein();
+}
+```
+::::
+
+:::: {.column width=33%}
+Algorithmus 3
+
+```{.java}
+void algo3
+{
+ fahre();
+ fahre();
+ nimmGestein();
+ drehe("rechts");
+ fahre();
+ nimmGestein();
+ drehe("rechts");
+ drehe("rechts");
+ drehe("rechts");
+ fahre();
+ drehe("rechts");
+ drehe("rechts");
+ drehe("rechts");
+ fahre();
+ nimmGestein();
+}
+```
+::::
+:::
+
+#### Zusatzaufgabe 3.2
+
+![](img/zusatzaufgabe2.png){.center width=80%}
+
+1. Programmiere in der Klasse `Rover` eine Methode so, dass der Rover losfährt und nach und nach alle drei, Gesteinsproben aufnimmt.
+
+2. Angenommen, mit der Methode `fahre()`{.java} würde der Rover immer genau zwei Felder vorwärtsfahren.
+ Begründe, dass er unter dieser Annahme nicht mehr alle Gesteine aufnehmen kann.
+
+
+#### Zusatzaufgabe 3.3
+
+Gegeben sind folgende Methoden:
+
+::: {.columns}
+:::: {.column width=45%}
+```{.java}
+void methode2()
+{
+ setzeMarke();
+ fahre();
+ setzeMarke();
+ fahre();
+ setzeMarke();
+ fahre();
+ setzeMarke();
+ fahre();
+ setzeMarke();
+ fahre();
+ setzeMarke();
+ fahre();
+ drehe("rechts");
+}
+```
+::::
+
+:::: {.column width=55%}
+```{.java}
+void methode1()
+{
+ methode2();
+ methode2();
+ methode2();
+ methode2();
+}
+```
+
+1. Analysiere die Arbeitsweise der Methoden `methode2()`{.java} und `methode1()`{.java} und beschreiben Sie, wie die Planetenoberfläche nach dem Aufruf von `methode1()`{.java} aussieht.
+2. Schreibe für beide Methoden passende Methodendokumentationen.
+3. Optimiere das Programm so, dass wiederkehrende Gruppen von Anweisungen in eine eigene Methode ausgelagert werden.
+::::
+:::
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/methoden-sortieren-quiz.md b/Info/9/3/Planet/modellierung/zwischenlager/methoden-sortieren-quiz.md
new file mode 100644
index 00000000..eea9e42e
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/methoden-sortieren-quiz.md
@@ -0,0 +1,6 @@
+:::{.terminal}
+Welche Methoden verändern den Zustand der Welt und Welche prüfen etwas und geben das Ergebnis zurück?
+_
+:::
+
+<< Zurück zu TODO: Zwischenlager
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/methoden-testen-h5p-questionset.txt b/Info/9/3/Planet/modellierung/zwischenlager/methoden-testen-h5p-questionset.txt
new file mode 100644
index 00000000..1780d001
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/methoden-testen-h5p-questionset.txt
@@ -0,0 +1,26 @@
+Was passiert, wenn man beim Aufruf der Methode drehen() die Anführungszeichen beim Parameter vergisst? Also wenn man z. B. rechts anstelle von "rechts" eintippt?
+Eine Fehlermeldung erscheint, dass der Bezeichner rechts nicht definiert ist.
+Alles funktioniert wie geplant.
+
+Was passiert, der Rover an der Wand mit Richtung zur Wand steht und man die Methode fahre() aufruft?
+Eine Meldung im Display erscheint.
+Der Rover verlässt die PLaneten Oberfläche.
+Das Programm stürzt ab.
+
+Was passiert, man die Methode gesteinVorhanden() aufruft?
+Eine Meldung im Display zeigt, ob unter dem Rover Gestein liegt.
+Eine Meldung im Display zeigt, ob vor dem Rover Gestein liegt.
+Nichts.
+
+Was passiert, man die Methode huegelVorhanden("vorne") aufruft und vor dem Rover ein Hügel steht?
+Es erscheint keine Meldung im Display, aber ob in die Angegeben Richtung ein Hügel liegt wird als Antwort zurückgegeben.
+Es erscheint eine Meldung im Display.
+
+Was passiert, vor dem Rover ein Hügel steht und man die Methode fahre() aufruft?
+Es erscheint eine Meldung im Display, dass der Untergrund zu steil ist.
+Der Rover erklimmt den Hügel.
+
+Was passiert, der Rover auf einem Gestein steht und er eine Marke setzen will?
+Es erscheint eine Marke auf dem Stein.
+Das Programm stürzt ab.
+Eine Fehlermeldung wird im Display angezeigt.
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/methoden-testen-quiz.md b/Info/9/3/Planet/modellierung/zwischenlager/methoden-testen-quiz.md
new file mode 100644
index 00000000..6d1d804c
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/methoden-testen-quiz.md
@@ -0,0 +1,7 @@
+:::{.terminal}
+Hast du den Rover unter Kontrolle?
+Dann kannst du sicher folgende Fragen zu seinem Verhalten beantworten.
+_
+:::
+
+<< Zurück zu TODO: Zwischenlager
diff --git a/Info/9/3/Planet/modellierung/zwischenlager/methoden-testen.md b/Info/9/3/Planet/modellierung/zwischenlager/methoden-testen.md
new file mode 100644
index 00000000..06e6b1e5
--- /dev/null
+++ b/Info/9/3/Planet/modellierung/zwischenlager/methoden-testen.md
@@ -0,0 +1,142 @@
+#### Schritt 3.1.1
+Vergiss nicht das Methoden Testen Arbeitsblatt herunterzuladen.
+
+#### Schritt 3.1.2
+Klassen legen fest, was Objekte tut können.
+Die Logik was ein Objekt tun kann nennt man **Methode**.
+
+* Jede Methode hat einen Namen gefolgt von einem Klammernpaar `()`{.java}, z. B. besitzt ein Rover die Methode `fahre()`{.java}.
+* Methoden verändern den Zustand von Objekten, z. B. wird durch Aufruf der Methode `fahre()`{.java} die Position des Rovers verändert:
+
+::: {.columns}
+:::: {.column width=20%}
+bisheriger Zustand
+
+```{.plantuml executable=plantuml command_line_arguments=""}
+@startuml
+object rover {
+ x=4
+ y=5
+ rotation = 0
+}
+@enduml
+```
+::::
+
+:::: {.column width=20%}
+Methodenaufruf
+
+```
+ fahre()
+---------------->
+```
+::::
+
+:::: {.column width=20%}
+neuer Zustand
+
+```{.plantuml executable=plantuml command_line_arguments=""}
+@startuml
+object rover {
+ x=5
+ y=5
+ rotation = 0
+}
+@enduml
+```
+::::
+:::
+
+* Manche Methoden verlangen eine Eingabe, einen sogenannten Parameter, z. B. `drehe(String richtung)`{.java}.
+→ `richtung` ist ein Parameter vom Datentyp `String`. Ein `String` ist eine Zeichenkette, als Wert muss man also einen Text eingeben und diesen in Anführungszeichen setzen, z. B. `drehe("rechts")`{.java}.
+
+:::{.merke data-class="Merke: Methoden"}
+Durch **Methoden** kann der Zustand eines Objektes verändert oder zurückgegeben werden.
+Manche Methoden verlangen eine Eingabe, einen sogenannten **Parameter**.
+:::
+
+#### Schritt 3.1.3
+::: {.columns style="align-items:center;"}
+:::: {.column width=70%}
+Teste die folgenden Methoden des Rover-Objekts in der Datei **MethodenTest** in der [Online-IDE](online-ide.de).
+Beantworte anschließend die Fragen in deinem Kurs.
+::::
+
+:::: {.column width=30%}
+![](img/oide-methodenTest.png)
+::::
+:::
+
+::: {.columns}
+:::: {.column width=40%}
+`void fahre()`{.java}
+Der Rover bewegt sich ein Feld in Fahrtrichtung weiter, sofern sich dort kein Hügel befindet oder die Grenze der Welt erreicht ist.
+
+`void drehe(String richtung)`{.java}
+Der Rover dreht sich um 90 Grad in die Richtung, die mit richtung ("links” oder "rechts") übergeben wurde.
+
+`boolean huegelVorhanden(String richtung)`{.java}
+Der Rover überprüft, ob sich in der angegebenen Richtung ("lınks", "rechts” oder "vorne") ein Objekt der Klasse Huegel befindet.
+Das Ergebnis wird zurückgegeben.
+
+`boolean gesteinVorhanden()`{.java}
+Der Rover gibt durch einen Wahrheitswert (`true`{.java} oder `false`{.java}) zurück, ob sich auf seiner Position ein Objekt der Klasse Gestein befindet.
+::::
+
+:::: {.column width=40%}
+`void nimmGestein()`{.java}
+Sofern an der Position des Rovers ein Gestein vorhanden ist, so nimmt er es auf.
+
+`void setzeMarke()`{.java}
+Der Rover erzeugt ein Objekt der Klasse Marke und legt es auf seiner Position ab.
+
+`boolean markeVorhanden()`{.java}
+Der Rover gibt durch einen Wahrheitswert (true oder false) zurück, ob sich auf seiner Position ein Objekt der Klasse Marke befindet.
+
+`void entferneMarke()`{.java}
+Falls an der Position des Rovers eine Marke vorhanden ist, so entfernt er diese.
+::::
+:::
+
+:::{.aufgabe data-class="Aufgabe 3.1.1"}
+Was hast du herraus gefunden?
+Überprüfe deine Erekenntnisse in Planet: Methoden Testen
+![](img/h5p-methoden-testen.png)
+:::
+
+#### Schritt 3.1.4
+Man kann die verschiedenen Methoden des Rovers in zwei Kategorien unterteilen: In Methoden, die versuchen, den Zustand zu ändern (z. B. `fahre()`) und in Methoden, die eine Rückmeldung geben (z. B. `huegelVorhanden()`).
+
+:::{.aufgabe data-class="Aufgabe 3.1.2"}
+Fülle die Tabelle auf deinem Aufgabenblatt und sortiere alle Methoden aus der vorherigen Übersicht ein:
+
+:::{style="width:80%"}
+----------------------------------------------------------------------
+ Veränderne Zurückgebende
+ Methoden Methoden
+-------------------------------- -------------------------------------
+ `void fahre()`{.java} `boolean huegelVorhanden()`{.java}
+
+ [foo]{color="white"}
+
+ [bar]{color="white"}
+
+ [nase]{color="white"}
+
+-----------------------------------------------------------------------
+:::
+
+Teste deine Sortierung unter Planet: Methoden Sortieren
+![](img/h5p-methoden-sortieren.png)
+:::
+
+:::{.page-break}
+:::
+
+:::{.merke data-class="Merke: Verändernde und zurückgebende Methoden"}
+**Verändernde Methoden** verändern den Objektzustand, sie beginnen mit dem Schlüsselwort `void`{.java}.
+Beispiel: `void fahre()`{.java}
+
+**Zurückgebende Methoden** geben Attributwerte aus, sie beginnen mit dem Datentyp des zurückzugebenden Wertes.
+Beispiel: `boolean huegelVorhanden()`{.java}
+:::
diff --git a/Info/9/3/Planet/pandoc/center-img.lua b/Info/9/3/Planet/pandoc/center-img.lua
new file mode 100644
index 00000000..a6a5e1fb
--- /dev/null
+++ b/Info/9/3/Planet/pandoc/center-img.lua
@@ -0,0 +1,14 @@
+-- Based on:
+-- https://pandoc.org/lua-filters.html#center-images-in-latex-and-html-output
+-- Licensed under MIT License found at:
+-- https://github.com/TomBener/pandoc-templates/blob/05aba224519d8a2b037108948bde0d820860b786/LICENSE
+-- Filter images with this function if the target format is HTML
+if FORMAT:match 'html' then
+ function Image (elem)
+ if elem.classes[1] == 'center' then
+ -- Use CSS style to center image
+ elem.attributes.style = 'margin:auto; display: block;'
+ end
+ return elem
+ end
+end
diff --git a/Info/9/3/Planet/pandoc/color-text.lua b/Info/9/3/Planet/pandoc/color-text.lua
new file mode 100644
index 00000000..65347659
--- /dev/null
+++ b/Info/9/3/Planet/pandoc/color-text.lua
@@ -0,0 +1,15 @@
+-- transform to <span style="color: red;"></span>
+if FORMAT:match 'html' then
+ function Span(el)
+ color = el.attributes['color']
+ -- if no color attribute, return unchange
+ if color == nil then return el end
+
+ -- remove color attributes
+ el.attributes['color'] = nil
+ -- use style attribute instead
+ el.attributes['style'] = 'color: ' .. color .. ';'
+ -- return full span element
+ return el
+ end
+end
diff --git a/Info/9/3/Planet/pandoc/default-metadata.yml b/Info/9/3/Planet/pandoc/default-metadata.yml
new file mode 100644
index 00000000..dddcaaf9
--- /dev/null
+++ b/Info/9/3/Planet/pandoc/default-metadata.yml
@@ -0,0 +1,3 @@
+---
+lang: de
+---
diff --git a/Info/9/3/Planet/pandoc/wrap-merke.lua b/Info/9/3/Planet/pandoc/wrap-merke.lua
new file mode 100644
index 00000000..c2a7cfb0
--- /dev/null
+++ b/Info/9/3/Planet/pandoc/wrap-merke.lua
@@ -0,0 +1,7 @@
+Div = function(el)
+ if el.classes[1] == 'merke' then
+ local wrapper = pandoc.Div(el.content, {class='merke-content'})
+ el.content = wrapper
+ end
+ return el
+end