aboutsummaryrefslogtreecommitdiff
path: root/Info
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-12-12 14:21:25 +0100
committerFlorian Fischer <florian.fischer@muhq.space>2023-12-12 14:21:25 +0100
commitb0756ce77ecdac6551eb25f991dfbd8d490d8b03 (patch)
tree0c78d7ef986071b41be1de6c3ab0d76bc8ac07f5 /Info
parent011e76107d068959a9f31b8e0a2b6bf734bea7df (diff)
downloadunterricht-b0756ce77ecdac6551eb25f991dfbd8d490d8b03.tar.gz
unterricht-b0756ce77ecdac6551eb25f991dfbd8d490d8b03.zip
add my todays info lesson in 11B
Diffstat (limited to 'Info')
-rw-r--r--Info/11/MUG_SWG_SG/1/Pfade/img/simplesort_snap.pngbin0 -> 66228 bytes
-rw-r--r--Info/11/MUG_SWG_SG/1/Pfade/slides.md288
-rw-r--r--Info/23_24/12/12/11B/handout.tex161
-rw-r--r--Info/23_24/12/12/11B/img/snap_steps.pngbin0 -> 4991 bytes
-rw-r--r--Info/23_24/12/12/11B/schedule.md28
l---------Info/23_24/12/12/11B/topic1
6 files changed, 478 insertions, 0 deletions
diff --git a/Info/11/MUG_SWG_SG/1/Pfade/img/simplesort_snap.png b/Info/11/MUG_SWG_SG/1/Pfade/img/simplesort_snap.png
new file mode 100644
index 00000000..61ec7569
--- /dev/null
+++ b/Info/11/MUG_SWG_SG/1/Pfade/img/simplesort_snap.png
Binary files differ
diff --git a/Info/11/MUG_SWG_SG/1/Pfade/slides.md b/Info/11/MUG_SWG_SG/1/Pfade/slides.md
new file mode 100644
index 00000000..69e36876
--- /dev/null
+++ b/Info/11/MUG_SWG_SG/1/Pfade/slides.md
@@ -0,0 +1,288 @@
+---
+header-includes: |
+ \makeatletter
+ \beamer@ignorenonframefalse
+ \makeatother
+ \usepackage{booktabs}
+ \newcommand{\graph}{
+ \begin{tikzpicture}
+ \node[fill=red, circle, minimum size=0.2cm] (ts) {};
+ \node[above=0.1cm of ts] {Traunstein};
+
+ \node[fill=red, circle, minimum size=0.2cm] (ib) at (-2, -1) {};
+ \node[xshift=-0.3cm, above=0.1cm of ib] {Innsbruck};
+
+ \node[fill=red, circle, minimum size=0.2cm] (ms) at (1, -2) {};
+ \node[right=0.1cm of ms] {Millstadt};
+
+ \draw (ts) -- node[fill=yellow!30] {138} (ib);
+ \draw (ts) -- node[fill=yellow!30] {211} (ms);
+
+ \node[fill=red, circle, minimum size=0.2cm] (ic) at (-1, -2.5) {};
+ \node[left=0cm of ic, yshift=-0.2cm] {Innichen};
+
+ \draw (ib) -- node[fill=yellow!30] {139} (ic);
+ \draw (ms) -- node[fill=yellow!30] {120} (ic);
+
+ \node[fill=red, circle, minimum size=0.2cm] (vd) at (0, -4) {};
+ \node[right=0.1cm of vd] {Venedig};
+ \draw (ic) -- node[fill=yellow!30] {197} (vd);
+ \draw (ms) -- node[fill=yellow!30] {278} (vd);
+ \end{tikzpicture}
+ }
+---
+
+## Wdh - Sortieren {.standout}
+
+Sortieren
+
+## Wdh - Sortieren
+
+Beschreibe einen Algorithmus damit ich 5 Spielkarten der Größe nach sortieren kann.
+
+\pause
+### Algorithmen (Auswahl)
+
+- Insertionsort - [wikipedia.org/wiki/Insertionsort](https://de.wikipedia.org/wiki/Insertionsort)
+- Selectionsort - [wikipedia.org/wiki/Selectionsort](https://de.wikipedia.org/wiki/Selectionsort)
+- [Simplesort]{.underline} - [wikipedia.org/wiki/Simplesort](https://de.wikipedia.org/wiki/Simplesort)
+- Bubblesort - [wikipedia.org/wiki/Bubblesort](https://de.wikipedia.org/wiki/Bubblesort)
+- Mergesort - [wikipedia.org/wiki/Mergesort](https://de.wikipedia.org/wiki/Mergesort)
+- Quicksort - [wikipedia.org/wiki/Quicksort](https://de.wikipedia.org/wiki/Quicksort)
+- Bogosort - [wikipedia.org/wiki/Bogosort](https://de.wikipedia.org/wiki/Bogosort)
+- ... - [wikipedia.org/wiki/Sortierverfahren](https://de.wikipedia.org/wiki/Sortierverfahren)
+
+## Wdh - Simplesort
+
+Vereinfachung des Selectionsorts.
+
+\pause
+### **Algortihmus**
+
+```
+Wiederhole für jeden Index → zielIndex
+ // KOMMENTAR: Suche kleinere Elemente im nachfolgenden, noch unsortieren Bereich:
+ Wiederhole für jeden größeren Index → pruefIndex
+ Falls Eintrag an preufIndex < Eintrag an zielIndex
+ Vertausche Eintrag an pruefIndex mit dem Eintrag an zielIndex
+```
+
+\pause
+### \faIcon{desktop} Arbeitsauftrag - Simplesort in `Snap!`
+
+Implementiere den Simplesort Algorithmus in einer Snap! Methode
+
+## \faIcon{chalkboard-teacher} Lösung - Simplesort in `Snap!`
+
+![](img/simplesort_snap.png){.center height=85%}
+
+## Radtour nach Venedig
+
+::: columns
+:::: {.column width=50%}
+Für die kommenden Sommerferien plant ihr eine Radtour durch die Alpen nach \boldred{Venedig}.
+\vspace{1cm}
+
+\pause
+
+Als Startpunkt habt ihr euch \boldred{Traunstein} ausgesucht.
+::::
+
+:::: {.column width=50%}
+\graph
+::::
+:::
+
+## Radtour nach Venedig
+
+::: columns
+:::: {.column width=50%}
+\vspace{2cm}
+Wie finden wir den kürzesten Weg von Traunstein nach Venedig?
+::::
+
+:::: {.column width=50%}
+\graph
+::::
+:::
+
+## Dijkstra Algortihmus
+
+Eine Möglichkeit \boldred{effizient} den kürzesten Weg zwischen zwei Punkten zu finden ist der Algorithmus des niederländischen Informatikers Dijkstra.
+
+Dazu benötigen wir zu erst eine Tabelle aller Orte mit den vier Spalten:
+**Ort, kommt von, Distanz zum Start, bearbeitet**
+
+::: columns
+:::: {.column width=60%}
+\begin{tabular}{l | l | l | l}
+Ort & kommt von & Distanz zum Start & bearbeitet \\
+\toprule
+Traunstein & & 0 & \\
+\hline
+Innsbruck & & $\infty$ & \\
+\hline
+Innichen & & $\infty$ & \\
+\hline
+Millstatt & & $\infty$ & \\
+\hline
+Venedig & & $\infty$ & \\
+\end{tabular}
+::::
+
+:::: {.column width=40%}
+\hspace{0.3cm} \scalebox{0.8}{\graph}
+::::
+:::
+
+
+## Dijkstra Algortihmus Start
+
+Zuerst tragen wir alle benachbarten Orte vom Start und ihre Distanzen ein und vermerken den Start als \textbf{bearbeitet}.
+
+::: columns
+:::: {.column width=60%}
+\begin{tabularx}{\textwidth}{X | X | X | X}
+Ort & kommt von & Distanz zum Start & bearbeitet \\
+\toprule
+Traunstein & & 0 & \cellcolor{green!20} X \\
+\hline
+\rowcolor{blue!10} Innsbruck & Traunstein & 138 & \\
+\hline
+Innichen & & $\infty$ & \\
+\hline
+\rowcolor{blue!10} Millstatt & Traunstein & 211 & \\
+\hline
+Venedig & & $\infty$ & \\
+\end{tabularx}
+::::
+
+:::: {.column width=40%}
+\hspace{0.3cm} \scalebox{0.8}{\graph}
+::::
+:::
+
+## Dijkstra Algortihmus Fortsetzung
+
+Wir wählen den \boldred{nicht bearbeiteten} Ort mit der \boldred{kürzesten} Distanz zum Start.
+
+\only<1>{\phantom{Setzen in auf \textbf{bearbeitet}.}}
+\only<2->{Setzen in auf \textbf{bearbeitet}.}
+
+\only<-2>{\phantom{Von dem gewählten Ort bestimmen wir alle Distanzen zum Start und aktualisieren Einträge für die wir einen kürzeren Weg gefunden haben.}}
+\only<3->{Von dem gewählten Ort bestimmen wir alle Distanzen zum Start und aktualisieren Einträge für die wir einen kürzeren Weg gefunden haben.}
+
+::: columns
+:::: {.column width=60%}
+\only<-5>{
+\begin{tabularx}{\textwidth}{X | X | X | X}
+Ort & kommt von & Distanz zum Start & bearbeitet \\
+\toprule
+Traunstein & & 0 & X \\
+\hline
+\rowcolor{red!20} Innsbruck & Traunstein & 138 & \only<2->{\cellcolor{green!20}} \only<2->{X} \only<-2>{\\ \hline}
+\only<3->{\\ \hline \rowcolor{blue!10}} Innichen & \only<4->{Innsbruck} & \only<-3>{$\infty$}\only<4->{277} & \\
+\hline
+Millstatt & Traunstein & 211 & \\
+\hline
+Venedig & & $\infty$ & \\
+\end{tabularx}
+}
+\only<6-8>{
+\begin{tabularx}{\textwidth}{X | X | X | X}
+Ort & kommt von & Distanz zum Start & bearbeitet \\
+\toprule
+Traunstein & & 0 & X \\
+\hline
+Innsbruck & Traunstein & 138 & X \\
+\hline
+Innichen & Innsbruck & \only<-3>{$\infty$}\only<4->{277} & \\
+\hline
+\rowcolor{red!20} Millstatt & Traunstein & 211 & \only<7->{\cellcolor{green!20}} \only<7->{X} \only<-7>{\\ \hline}
+\only<8->{\\ \hline \rowcolor{blue!10}} Venedig & \only<8->{Millstadt} & \only<-7>{$\infty$}\only<8>{498} & \\
+\end{tabularx}
+}
+\only<9-10>{
+\begin{tabularx}{\textwidth}{X | X | X | X}
+Ort & kommt von & Distanz zum Start & bearbeitet \\
+\toprule
+Traunstein & & 0 & X \\
+\hline
+Innsbruck & Traunstein & 138 & X \\
+\hline
+\rowcolor{red!20} Innichen & Innsbruck & 277 & \only<7->{\cellcolor{green!20} X} \\
+\hline
+Millstatt & Traunstein & 211 & X \only<-9>{\\ \hline}
+\only<10->{\\ \hline \rowcolor{blue!10}} Venedig & \only<9->{Innichen} & \only<-9>{498}\only<10>{\textbf{474}} & \\
+\end{tabularx}
+}
+\only<11->{
+\begin{tabularx}{\textwidth}{X | X | X | X}
+Ort & kommt von & Distanz zum Start & bearbeitet \\
+\toprule
+Traunstein & & 0 & X \\
+\hline
+Innsbruck & Traunstein & 138 & X \\
+\hline
+Innichen & Innsbruck & 277 & X \\
+\hline
+Millstatt & Traunstein & 211 & X \\
+\hline
+\rowcolor{red!20} Venedig & Innichen & 474 & \only<11->{\cellcolor{green!20} X}\\
+\end{tabularx}
+}
+::::
+
+:::: {.column width=40%}
+\hspace{0.3cm} \scalebox{0.8}{\graph}
+::::
+:::
+
+## Dijkstra Algortihmus Ende
+
+Der kürzeste Weg zu einem Ort wurde gefunden sobald dieser als bearbeitet markiert ist.
+\begin{tabularx}{\textwidth}{X | X | X | X}
+Ort & kommt von & Distanz zum Start & bearbeitet \\
+\toprule
+Traunstein & & 0 & X \\
+\hline
+Innsbruck & Traunstein & 138 & X \\
+\hline
+Innichen & Innsbruck & 277 & X \\
+\hline
+Millstatt & Traunstein & 211 & X \\
+\hline
+\rowcolor{red!20} Venedig & Innichen & 474 & X\\
+\end{tabularx}
+
+Der Weg nach Venedig lässt sich aus der Tabelle ablesen:
+**Venedig < Innichen < Innsbruck < Traunstein**
+
+## \faIcon{pencil-alt} Arbeitsauftrag - Dijkstra
+
+::: columns
+:::: {.column width=70%}
+\begin{enumerate}[a)]
+\item Ermittle alle möglichen Wege von A nach D mit ihren Längen.
+\item Ermittle den kürzesten Weg von A nach D mit dem Dijkstra-Algortihmus.
+\item Vergleiche den Aufwand von \textbf{a)} und \textbf{b)}. Warum wird der Dijkstra-Algortihmus erst bei vielen Knoten überlegen sein?
+\end{enumerate}
+::::
+
+:::: {.column width=30%}
+\begin{tikzpicture}
+\node[circle, fill=blue!10] (a) {A};
+\node[circle, fill=blue!10, yshift=1cm, right=1cm of a] (b) {B};
+\node[circle, fill=blue!10, right=2cm of a] (d) {D};
+\node[circle, fill=blue!10, yshift=-1cm, right=1cm of a] (c) {C};
+
+\draw (a) -- node[fill=bg] {3} (b);
+\draw (b) -- node[fill=bg] {2} (d);
+\draw (d) -- node[fill=bg] {5} (c);
+\draw (c) -- node[fill=bg] {1} (a);
+\draw (c) -- node[fill=bg, above] {3} (b);
+\draw (a) -- node[fill=bg] {7} (d);
+\end{tikzpicture}
+::::
+:::
+
diff --git a/Info/23_24/12/12/11B/handout.tex b/Info/23_24/12/12/11B/handout.tex
new file mode 100644
index 00000000..cda56b37
--- /dev/null
+++ b/Info/23_24/12/12/11B/handout.tex
@@ -0,0 +1,161 @@
+\documentclass[]{handout}
+\usepackage{booktabs}
+\usepackage{tabularx}
+\newcommand{\boldred}[1]{\textcolor{red}{\textbf{#1}}}
+\newcommand{\vcenteredinclude}[2]{\begingroup
+\setbox0=\hbox{\includegraphics[#1]{#2}}%
+\parbox{\wd0}{\box0}\endgroup}
+
+\title{}
+
+\begin{document}
+\thispagestyle{empty}
+\makedate
+
+\subsection*{Die Liste}
+
+\begin{tabularx}{\textwidth}{X X}
+\vspace{-2cm}
+Die Verwaltung vieler (oft gleichartiger) Datenelemente wird durch eine \boldred{Liste} stark erleichtert. \vspace{0.2cm}\newline
+Die Elemente einer Liste können über den \boldred{Index} (ihre Position in der Liste) verwendet werden. & \includegraphics[width=0.3\textwidth,keepaspectratio]{img/Copyrighted/array.png} \\
+\end{tabularx} \vspace{0.2cm}
+Die Liste bietet Methoden um die Verwaltung zu erleichtern, bspw. um Elemente \textbf{zu suchen, hinzuzufügen, zu löschen, ...}
+
+\subsection*{Algorithmen verstehen}
+
+Um Algorithmen leichter zu verstehen, Ablaufe nachzuvollziehen und Fehler zu finden bieten sich folgende Möglichkeiten:
+
+\begin{itemize}
+\item Zwischenergebnisse anzeigen lassen
+\item \parbox{\linewidth}{Das Programm Schrittweise ausführen \vcenteredinclude{height=1cm, keepaspectratio}{img/snap_steps.png}}
+\item Testfälle auswählen und Erwartungen testen
+\end{itemize}
+
+\subsubsection*{Testen}
+
+Um einen Test zu schreiben benötigen wir eine \boldred{Erwartung} die wir testen können. \\[0.1cm]
+
+\underline{\textbf{Beispiel:}} \\[0.1cm]
+\phantom{a}\hspace{0.4cm} Die Methode \texttt{Addiere(a, b)} addiert die zwei Zahlen $a$ und $b$. \\
+\phantom{a}\hspace{0.4cm} Unserer Erwartung ist \texttt{Addiere(2, 1) = 2}. \\[0.1cm]
+
+Ein Testfall würde unsere Erwartung überprüfen und wenn sie nicht erfüllt wird einen Fehler anzeigen.
+
+\subsection*{Sortieren}
+\begin{tabularx}{\textwidth}{p{0.39\textwidth} X}
+\vspace{-5cm}Sortieren ist ein verbreitetes Problem in der Informatik, deshalb existieren eine Vielzahl an Sortier-Verfahren. &
+\includegraphics[width=0.6\textwidth, keepaspectratio]{img/Copyrighted/Cornelson11_S57_card_sort.png}
+\\
+\end{tabularx} \\[0.2cm]
+
+Ein einfaches Verfahren das dem menschlichen Sortierverhalten nachempfunden ist \boldred{Simplesort}.
+
+\subsubsection*{Simplesort}
+
+\begin{verbatim}
+Wiederhole für jeden Index → zielIndex
+ // KOMMENTAR: Suche kleinere Elemente im nachfolgenden, noch unsortieren Bereich:
+ Wiederhole für jeden größeren Index → pruefIndex
+ Falls Eintrag an preufIndex < Eintrag an zielIndex
+ Vertausche Eintrag an pruefIndex mit dem Eintrag an zielIndex
+\end{verbatim}
+
+\newpage
+\subsection*{Kürzesten Wege}
+\begin{tabularx}{\textwidth}{p{0.6\textwidth} X}
+\vspace{-3cm}
+Den \boldred{kürzesten Weg} von einem Punkt zu einem anderen lässt sich mit dem von \boldred{Dijkstra} bereits 1956 veröffentlichten Algorithmus effizient bestimmen. \vspace{0.2cm} \newline
+Wir planen eine Radtour von Traunstein nach Venedig. &
+\begin{tikzpicture}
+\node[fill=red, circle, minimum size=0.2cm] (ts) {};
+\node[above=0.1cm of ts] {Traunstein};
+
+\node[fill=red, circle, minimum size=0.2cm] (ib) at (-2, -1) {};
+\node[xshift=-0.3cm, above=0.1cm of ib] {Innsbruck};
+
+\node[fill=red, circle, minimum size=0.2cm] (ms) at (1, -2) {};
+\node[right=0.1cm of ms] {Millstadt};
+
+\draw (ts) -- node[fill=yellow!30] {138} (ib);
+\draw (ts) -- node[fill=yellow!30] {211} (ms);
+
+\node[fill=red, circle, minimum size=0.2cm] (ic) at (-1, -2.5) {};
+\node[left=0cm of ic, yshift=-0.2cm] {Innichen};
+
+\draw (ib) -- node[fill=yellow!30] {139} (ic);
+\draw (ms) -- node[fill=yellow!30] {120} (ic);
+
+\node[fill=red, circle, minimum size=0.2cm] (vd) at (0, -4) {};
+\node[right=0.1cm of vd] {Venedig};
+\draw (ic) -- node[fill=yellow!30] {197} (vd);
+\draw (ms) -- node[fill=yellow!30] {278} (vd);
+\end{tikzpicture} \\
+\end{tabularx}
+
+\subsubsection*{Schritt 0 Vorbereitung}
+Erstelle eine Tabelle mit \underline{allen} Orten und den Spalten: \textbf{Ort, kommt von, Distanz zum Start, bearbeitet}.
+Fülle die Spalte Distanz zum Start, bei dem Startort mit 0 und bei allen anderen Reihen mit $\infty$.
+
+\begin{center}
+\begin{tabular}{l | l | l | l}
+Ort & kommt von & Distanz zum Start & bearbeitet \\
+\toprule
+Traunstein & & 0 & \\
+\hline
+Innsbruck & & $\infty$ & \\
+\hline
+Innichen & & $\infty$ & \\
+\hline
+Millstatt & & $\infty$ & \\
+\hline
+Venedig & & $\infty$ & \\
+\end{tabular}
+\end{center}
+
+\subsubsection*{Schritt 1 Start}
+
+Ermittle vom Startort alle Distanzen zu den benachbarten Orten.
+Danach ist der Startort bearbeitet.
+
+\begin{center}
+\begin{tabular}{l | l | l | l}
+Ort & kommt von & Distanz zum Start & bearbeitet \\
+\toprule
+Traunstein & & 0 & X \\
+\hline
+Innsbruck & Traunstein & 138 & \\
+\hline
+Innichen & & $\infty$ & \\
+\hline
+Millstatt & Traunstein & 211 & \\
+\hline
+Venedig & & $\infty$ & \\
+\end{tabular}
+\end{center}
+
+\subsubsection*{Schritt 2 Wiederhole bis Zielort erreicht}
+
+Wähle den \boldred{noch nicht bearbeiteten} Ort mit der \boldred{niedrigsten} Distanz zum Start.
+Setze in auf \textbf{bearbeitet}. \\[0.1cm]
+Ermittle von ihm aus alle kürzesten Distanzen zum Startort aller \boldred{noch nicht bearbeiteter Nachbarn}. \\[0.1cm]
+Solltest du eine kürzere Distanz gefunden habe aktualisiere sie sowie den Eintrag in der Spalte \textbf{kommt von}.
+
+\begin{center}
+\begin{tabular}{l | l | l | l}
+Ort & kommt von & Distanz zum Start & bearbeitet \\
+\toprule
+Traunstein & & 0 & X \\
+\hline
+Innsbruck & Traunstein & 138 & X \\
+\hline
+Innichen & Innsbruck & 277 & X \\
+\hline
+Millstatt & Traunstein & 211 & X \\
+\hline
+Venedig & Innichen & 477 & X\\
+\end{tabular}
+\end{center}
+
+Der kürzeste Weg zum Ziel wurde gefunden wenn das Ziel \textbf{bearbeitet} wurde. \\[0.1cm]
+Den Weg können wir rückwärts aus der Tabelle ablesen: Venedig < Innichen < Innsbruck < Traunstein mit einer Länge von 474 km.
+\end{document}
diff --git a/Info/23_24/12/12/11B/img/snap_steps.png b/Info/23_24/12/12/11B/img/snap_steps.png
new file mode 100644
index 00000000..b3a8e2bf
--- /dev/null
+++ b/Info/23_24/12/12/11B/img/snap_steps.png
Binary files differ
diff --git a/Info/23_24/12/12/11B/schedule.md b/Info/23_24/12/12/11B/schedule.md
new file mode 100644
index 00000000..33e1528a
--- /dev/null
+++ b/Info/23_24/12/12/11B/schedule.md
@@ -0,0 +1,28 @@
+---
+lang: de
+geometry: margin=2cm
+---
+# Thema der Stunde
+
+* **Klasse**: 11B
+* **Datum**: 12.12
+
+## Lernziele
+
+## Verlaufplan
+
+---------------------------------------------------------------------------------------------------
+Zeit Phase Unterrichtsgeschehen Ziel Methode Medien
+----- --------------- -------------------------------------------- ----------- ---------- ---------
+20 Wdh Algorithmik
+
+10 Wdh Testen
+
+10 Wdh Sortieren
+
+10 Wdh Sortieren in Snap
+
+15 Erarbeitung Radtour Traunstein Venedig
+
+20 Uebung Dijkstra Cornelson A57 A1
+---------------------------------------------------------------------------------------------------
diff --git a/Info/23_24/12/12/11B/topic b/Info/23_24/12/12/11B/topic
new file mode 120000
index 00000000..669ecebf
--- /dev/null
+++ b/Info/23_24/12/12/11B/topic
@@ -0,0 +1 @@
+../../../../11/MUG_SWG_SG/1/Pfade/ \ No newline at end of file