diff --git a/programming/code/facultyLoop.m b/programming/code/facultyLoop.m
index ba14622..be0ed55 100644
--- a/programming/code/facultyLoop.m
+++ b/programming/code/facultyLoop.m
@@ -1,6 +1,6 @@
 n = 5;
 x = 1;
 for i = 1:n
-	  x = x * i;
+    x = x * i;
 end 
-fprintf('Faculty of %i is: %i\n', n, x)
\ No newline at end of file
+fprintf('Faculty of %i is: %i\n', n, x)
diff --git a/programming/code/plotMultipleSinewaves.m b/programming/code/plotMultipleSinewaves.m
index b0063f0..be9ca9f 100644
--- a/programming/code/plotMultipleSinewaves.m
+++ b/programming/code/plotMultipleSinewaves.m
@@ -7,7 +7,7 @@ figure()
 hold on
  
 for i = 1:length(amplitudes)
-   for j = i:length(frequencies)
+   for j = 1:length(frequencies)
       [x_data, y_data] = calculate_sinewave(frequencies(j), ...
                                             amplitudes(i), t_max, t_step);
       plot_sinewave(x_data, y_data, sprintf('freq: %5.2f, ampl: %5.2f',...
diff --git a/programming/lecture/programming.tex b/programming/lecture/programming.tex
index 43b8bf9..4441e59 100644
--- a/programming/lecture/programming.tex
+++ b/programming/lecture/programming.tex
@@ -600,7 +600,7 @@ Eine elementweise Multiplikation (\code{.*} Operator, Listing
 
 Boolesche Ausdr\"ucke sind Anweisungen, die zu \codeterm{wahr} oder
 \codeterm{falsch} ausgewertet werden. Man kennt sie z.B. aus der
-Mengenlehre. In der Programmierung werdens sie eingesetzt, um z.B. die
+Mengenlehre. In der Programmierung werden sie eingesetzt, um z.B. die
 Beziehung zwischen Entit\"aten zu testen. Hierzu werden die
 \codeterm{relationalen Operatoren} (\code{>}, \code{<}, \code{==},
 \code{!}, gr\"o{\ss}er als, kleiner als, gleich und nicht)
@@ -609,9 +609,9 @@ eingesetzt. Mehrere Ausdr\"ucke werden mittels der \codeterm{logischen
 uns nicht nur wichtig um Codeabschnitte bedingt auszuf\"uhren
 (Verzweigungen, \ref{controlstructsec}) sondern auch um aus Vektoren
 und Matrizen bequem Elemente auszuw\"ahlen (logisches Indizieren,
-\ref{logicalindexingsec}). Die folgenden Tabellen zeigen die
-Wahrheitstabellen f\"ur das logische UND (\ref{logicalandor}, links)
-aund das logische ODER (\ref{logicalandor}, rechts). Es werden die
+\ref{logicalindexingsec}). Die Tabellen \ref{logicalandor} zeigen die
+Wahrheitstabellen f\"ur das logische UND (Tabelle \ref{logicalandor}, links)
+und das logische ODER (Tabelle \ref{logicalandor}, rechts). Es werden die
 Aussagen A und B mit dem Operator verkn\"upft. Beim logischen UND ist
 der gesamte Ausdruck nur dann wahr, wenn beide Ausdr\"ucke sich zu
 wahr auswerten lassen.
@@ -636,19 +636,18 @@ wahr auswerten lassen.
   \end{minipage}
 \end{table}
 
-Anders ist das beim logischen ODER. Hier ist der gesamte
-Ausdruck wahr, wenn sich der eine \emph{oder} der andere Ausdruck zu
-wahr auswerten l\"a{\ss}t. Tabelle \ref{logicaloperators} zeigt die
+Anders ist das beim logischen ODER. Hier ist der gesamte Ausdruck
+wahr, wenn sich der eine \emph{oder} der andere Ausdruck zu wahr
+auswerten l\"a{\ss}t. Tabelle \ref{logicaloperators} zeigt die
 logischen Operatoren, die in \matlab{} definiert sind. Zu bemerken
 sind hier noch die \code{\&\&} und \code{||} Operatoren. Man kann
 beliebige Ausdr\"ucke verkn\"upfen und h\"aufig kann schon anhand des
 ersten Ausdrucks entschieden werden, ob der gesamte Boolesche Ausdruck
 zu wahr oder falsch ausgewertet werden wird. Wenn zwei Aussagen mit
-einem UND verkn\"upft werden und der erste zu falsch ausgewerte wird,
-dann muss der zweite gar nicht mehr gepr\"uft werden. Die Verwendung
-der ``short-circuit'' Versionen spart Rechenzeit. Das auschliessende
-ODER (XOR) ist in \matlab{} nur als Funktion \code{xor(A, B)}
-verf\"ugbar.
+einem UND verkn\"upft werden und der erste zu falsch ausgewertet wird,
+muss der zweite gar nicht mehr gepr\"uft werden. Die Verwendung der
+``short-circuit'' Versionen spart Rechenzeit. Das auschlie{\ss}ende ODER
+(XOR) ist in \matlab{} nur als Funktion \code{xor(A, B)} verf\"ugbar.
 
 \begin{table}[th]
   \titlecaption{\label{logicaloperators}
@@ -660,8 +659,8 @@ verf\"ugbar.
       $\sim$ & logisches NOT\\
       $\&$ &  logisches UND\\
       $|$ & logisches ODER\\
-      $\&\&$ & short-circuit logical UND\\
-      $\|$ & short-circuit logical ODER\\
+      $\&\&$ & short-circuit logisches UND\\
+      $\|$ & short-circuit logisches ODER\\
       \hline
     \end{tabular}
   \end{center}
@@ -669,7 +668,7 @@ verf\"ugbar.
 
 Um Werte miteinander zu vergleichen gibt es die \codeterm{relationalen
   Operatoren} (Tabelle \ref{relationaloperators}). Mit ihnen kann man
-auf Dinge wie Gleicheit (\code{==}) gr\"o{\ss}er oder kleiner als
+auf Dinge wie Gleichheit (\code{==}) gr\"o{\ss}er oder kleiner als
 (\code{>}, \code{<}) testen. 
 
 \begin{table}[th]
@@ -680,9 +679,9 @@ auf Dinge wie Gleicheit (\code{==}) gr\"o{\ss}er oder kleiner als
       \hline
       \textbf{Operator} & \textbf{Beschreibung} \\ \hline
       $<$ & kleiner als\\
-      $>$ &  gr\"osser als \\
+      $>$ &  gr\"o{\ss}er als \\
       $==$ & gleich \\
-      $>=$ & gr\"osser oder gleich \\
+      $>=$ & gr\"o{\ss}er oder gleich \\
       $<=$ & kleiner oder gleich \\
       $\sim=$ & ungleich\\
       \hline
@@ -697,10 +696,13 @@ werden von \matlab{} alle Werte, die nicht 0 sind als wahr
 eingesch\"atzt. Listing \ref{booleanexpressions} zeigt einige
 Beispiele. \matlab{} kennt die Schl\"usselworte \code{true} und
 \code{false}. Diese sind jedoch nur Synonyme f\"ur die
-\code{logical} Werte 1 und 0. Man beachte, dass der
-Zuweisungsoperator \code{=} und der logische Operator \code{==} zwei
-grundverschiedene Dinge sind. Da sie umgangsprachlich gleich sind kann
-man sie leider leicht verwechseln.
+\code{logical} Werte 1 und 0. 
+
+\begin{important}
+  Man beachte, dass der Zuweisungsoperator \code{=} und der logische
+  Operator \code{==} zwei grundverschiedene Dinge sind. Da sie
+  umgangsprachlich gleich sind kann man sie leider leicht verwechseln.
+\end{important}
 
 \begin{lstlisting}[caption={Boolesche Ausdr\"ucke.}, label=booleanexpressions]
   >> true
@@ -744,7 +746,7 @@ man sie leider leicht verwechseln.
 
 \section{Logisches Indizieren}\label{logicalindexingsec}
 
-Einer der wichtigsten Einsatzorte f\"ur Bollesche Ausdr\"ucke ist das
+Einer der wichtigsten Einsatzorte f\"ur Boolesche Ausdr\"ucke ist das
 logische Indizieren. Das logische Indizieren ist eines der
 Schl\"usselkonzepte in \matlab{}. Nur mit diesem k\"onnen
 Filteroperationen auf Vektoren und Matrizen effizient durchgef\"uhrt
@@ -753,9 +755,9 @@ sehr intuitiv zu benuzten.
 
 Das Grundkonzept hinter der logischen Indizierung ist, dass man durch
 die Verwendung eines Booleschen Ausdrucks auf z.B. einen Vektor einen
-logischen Vektor gleicher Gr\"o{\ss}e erh\"alt. Dieser wird nun
+logischen Vektor gleicher Gr\"o{\ss}e erh\"alt. Dieser wird 
 benutzt um auf den urspr\"unglichen Vektor zuzugreifen. \matlab{} gibt
-nun die Werte an den Stellen zur\"uck, an denen der logische Vektor
+nur die Werte an den Stellen zur\"uck, an denen der logische Vektor
 \codeterm{wahr} ist (Listing \ref{logicalindexing1}).
 
 
@@ -777,7 +779,7 @@ nun die Werte an den Stellen zur\"uck, an denen der logische Vektor
   \item  Gibt alle Elemente aus x zur\"uck, die kleiner als 5 sind.
   \end{enumerate}
   
-  Die letzte Zeile kann wie folgt gelesen werden: Gib mir die Elemente
+  Zeile 12 in der L\"osung kann wie folgt gelesen werden: Gib mir die Elemente
   von (\code{x}) an den Stellen, an denen \code{x < 5} wahr ist.
 \end{exercise}
 
@@ -800,12 +802,12 @@ bestimmten Zeitraums ausw\"ahlen m\"ochte (Abbildung
 
 \begin{exercise}{logicalIndexingTime.m}{}
   Angenommen es werden \"uber einen bestimmten Zeitraum Messwerte
-  genommen. Bei solchen Messungen er\"alt man einen Vektor, der die
+  genommen. Bei solchen Messungen erh\"alt man einen Vektor, der die
   Zeitpunkte der Messung speichert und einen zweiten mit den
   jeweiligen Messwerten.
   
   \begin{itemize}
-  \item Erstelle einen Vektor \code{t= 0:0.001:10;}, der z.B. die Zeit
+  \item Erstelle einen Vektor \code{t = 0:0.001:10;}, der z.B. die Zeit
     repr\"asentiert.
   \item Erstelle einen zweiten Vektor \code{x} mit Zufallszahlen der
     die gleiche L\"ange hat wie \code{t}. Die Werte darin stellen
@@ -820,8 +822,8 @@ bestimmten Zeitraums ausw\"ahlen m\"ochte (Abbildung
 
 In der Regel wird ein Programm Zeile f\"ur Zeile von oben nach unten
 ausgef\"uhrt. Manchmal muss der Kontrollfluss aber so gesteuert
-werden, dass bestimmte Teile des Programmcodes wiederholt oder nur
-unter bestimmten Bedingungen ausgef\"uhrt werden. Von gro{\ss}er
+werden, dass bestimmte Teile wiederholt oder nur
+unter bestimmten Bedingungen ausgef\"uhrt werden sollen. Von gro{\ss}er
 Bedeutung sind hier zwei Strukturen:
 
 \begin{enumerate}
@@ -851,7 +853,7 @@ Im Prinzip ist das obige Programm v\"ollig in Ordnung. Es f\"allt
 jedoch auf, dass die Zeilen 2 bis 5 sehr \"ahnlich sind; bis auf die
 Multiplikation mit einer ansteigenden Zahl \"andert sich nichts. Die
 Verwendung von mehr oder weniger exakten Klonen einzelner Zeilen oder
-Abschnitte ist schlechter Prgrammierstil. Dabei geht es nicht nur um
+ganzer Abschnitte ist schlechter Prgrammierstil. Dabei geht es nicht nur um
 einen \"asthetischen Aspekt sondern vielmehr darum, dass es schwerwiegende Nachteile gibt.
 \begin{enumerate}
 \item Fehleranf\"alligkeit: Beim ``Copy-and-paste'' kann leicht
@@ -861,12 +863,13 @@ einen \"asthetischen Aspekt sondern vielmehr darum, dass es schwerwiegende Nacht
   Berechnung der Fakult\"at von f\"unf, gemacht und kann nichts
   anderes.
 \item Wartung: Wenn ich einen Fehler gemacht habe, dann muss ich den
-  Fehler in allen Klonen korrigieren (sehr wird dabei der ein oder
+  Fehler in allen Klonen korrigieren (sehr leicht wird dabei der ein oder
   andere Klon \"ubersehen).
 \item Verst\"andlichkeit: Solche Abschnitte sind schwerer zu lesen/zu
   verstehen. Das liegt zum Teil daran, dass man dazu neigt \"uber sich
   wiederholende Zeilen zu springen (ist ja eh das gleiche...) und dann
-  den entscheidenden Teil verpasst.
+  den entscheidenden Teil verpasst. Zum Anderen f\"uhrt
+  Codeduplication zu langen, un\"ubersichtlichen Programmen.
 \end{enumerate}
 Alle Programmiersprachen bieten zur L\"osung dieses Problems die
 Schleifen. Eine Schleife wird immer dann eingesetzt, wenn man
@@ -896,8 +899,8 @@ end
 
 \begin{exercise}{facultyLoop.m}{facultyLoop.out}
   Wie k\"onnte Fakult\"at mit einer Schleife implementiert werden?
-  Implementiere eine for Schleife, die die Fakul\"at von einer Zahl
-  \code{n} berechnet.
+  Implementiere eine \code{for} Schleife, die die Fakul\"at von einer
+  Zahl \code{n} berechnet.
 \end{exercise}
 
 
@@ -908,10 +911,10 @@ die \code{while}-Schleife. Auch sie hat ihre Entsprechungen in fast
 allen Programmiersprachen.  \"Ahnlich zur \code{for} Schleife wird
 auch hier der in der Schleife definierte Programmcode iterativ
 ausgef\"uhrt. Der Schleifenkopf beginnt mit dem Schl\"usselwort
-\code{while} gefolgt von einem \underline{Booleschen
-  Ausdruck}. Solange dieser zu \code{true} ausgewertet werden kann,
-wird der Code im Schleifenk\"orper ausgef\"uhrt.  Die Schleife wird
-mit dem Schl\"usselwort \code{end} beendet.
+\code{while} gefolgt von einem Booleschen Ausdruck. Solange dieser zu
+\code{true} ausgewertet werden kann, wird der Code im
+Schleifenk\"orper ausgef\"uhrt.  Die Schleife wird mit dem
+Schl\"usselwort \code{end} beendet.
 
 
 \begin{lstlisting}[caption={Grundstruktur einer \code{while} Schleife.}, label=whileloop]
@@ -937,7 +940,7 @@ end
 \begin{itemize}
 \item Beide f\"uhren den Code im Schleifenk\"orper iterativ aus.
 \item Der K\"orper einer \code{for} Schleife wird mindestens 1 mal
-  betreten.  % XXX Nur wenn die Liste im Kopf nicht leer ist, oder ?
+  betreten (au{\ss}er wenn der Vektor im Schleifenkopf leer ist). 
 \item Der K\"orper einer \code{while} Schleife wird nur dann betreten,
   wenn die Bedingung im Kopf \code{true} ist. \\$\rightarrow$ auch
   ``Oben-abweisende'' Schleife genannt.
@@ -959,19 +962,19 @@ bestimmten Bedingungen ausgef\"uhrt wird.
 \subsubsection{Die \code{if} -- Anweisung}
 
 Am h\"aufigsten genutzter Vertreter ist die \code{if} -
-Anweisung. Sie Wird genutzt um Programmcode nur unter bestimmten
+Anweisung. Sie wird genutzt um Programmcode nur unter bestimmten
 Bedingungen auszuf\"uhren. 
 
-Der Kopf der if - Anweisung beginnt mit dem Schl\"usselwort \code{if}
-welches von einem \underline{Booleschen Ausdruck} gefolgt wird. Wenn
+Der Kopf der \code{if} - Anweisung beginnt mit dem Schl\"usselwort \code{if}
+welches von einem Booleschen Ausdruck gefolgt wird. Wenn
 dieser zu \code{true} ausgewertet werden kann, wird der Code im
 K\"orper der Anweisung ausgef\"uhrt.  Optional k\"onnen weitere
 Bedingungen mit dem Schl\"usselwort \code{elseif} folgen.  Ebenfalls
-optional ist die Verwendung eines finalen \code{else} Falls. Dieser
+optional ist die Verwendung eines finalen \code{else} - Falls. Dieser
 wird immer dann ausgef\"uhrt wenn alle vorherigen Bedingungen nicht
-erf\"ullt werden.  Die \code{if} Anweisung wird mit \code{end}
+erf\"ullt wurden.  Die \code{if} - Anweisung wird mit \code{end}
 beendet. Listing \ref{ifelselisting} zeigt den Aufbau einer
-if-Anweisung.
+\code{if} - Anweisung.
   
 
 \begin{lstlisting}[label=ifelselisting, caption={Grundger\"ust einer \code{if} Anweisung.}]
@@ -980,32 +983,32 @@ if-Anweisung.
 elseif x > y
    % etwas anderes soll getan werden
 else
-   % wenn x == y wieder etwas anderes
+   % wenn x == y, wieder etwas anderes
 end  
   \end{lstlisting}
 
 \begin{exercise}{ifelse.m}{}
-  Ziehe eine Zufallszahl und \"uberpr\"ufe mit einer geegnet \code{if} Anweisung, ob sie:
+  Ziehe eine Zufallszahl und \"uberpr\"ufe mit einer geeigneten \code{if} Anweisung, ob sie:
   \begin{enumerate}
   \item ... kleiner als 0.5 ist.
   \item ... kleiner oder gr\"o{\ss}er-gleich 0.5 ist.
-  \item ... kleiner als 0.5, gr\"o{\ss}er oder gleich 0.5 aber kleiner
-    als 0.75 ist oder gr\"o{\ss}er oder gleich 0.75 ist.
+  \item ... 1. kleiner als 0.5, 2. gr\"o{\ss}er oder gleich 0.5 aber kleiner
+    als 0.75 oder 3. gr\"o{\ss}er oder gleich 0.75 ist.
   \end{enumerate}
 \end{exercise}
 
 \subsubsection{Die \code{switch} -- Verzweigung} 
 
-Die \code{switch} Verzweigung Wird eingesetzt wenn mehrere F\"alle
+Die \code{switch} Verzweigung wird eingesetzt wenn mehrere F\"alle
 auftreten k\"onnen, die einer unterschiedlichen Behandlung bed\"urfen.
 
-Wird mit dem Schl\"usselwort \code{switch} begonnen, gefolgt von der
-\codeterm{switch Anweisung} (Zahl oder String). Jeder Fall auf den die
-Anweisung \"uberpr\"ft werden soll wird mit dem Schl\"usselwort
-\code{case} eingeleitet. Diese wird gefolgt von der \codeterm{case
-  Anweisung} welche definiert gegen welchen Fall auf
-\underline{Gleichheit} getestet wird. F\"ur jeden Fall wird der
-Programmcode angegeben, der ausgef\"uhrt werden soll Optional k\"onnen
+Sie wird mit dem Schl\"usselwort \code{switch} begonnen, gefolgt von der
+\codeterm{switch Anweisung} (Zahl oder String). Jeder Fall, auf den diese
+Anweisung \"uberpr\"uft werden soll, wird mit dem Schl\"usselwort
+\code{case} eingeleitet. Dieses wird gefolgt von der \codeterm{case
+  Anweisung}, die definiert gegen welchen Fall auf
+Gleichheit getestet wird. F\"ur jeden Fall wird der
+Programmcode angegeben, der ausgef\"uhrt werden soll. Optional k\"onnen
 mit dem Schl\"usselwort \code{otherwise} alle nicht explizit genannten
 F\"alle behandelt werden.  Die \code{switch} Anweisung wird mit
 \code{end} beendet (z.B. in Listing \ref{switchlisting}).
@@ -1023,14 +1026,14 @@ switch mynumber
  end
 \end{lstlisting}
 
-Wichtig ist hier, dass in jedem \code{case} auf \underline{Gleichheit} der
+Wichtig ist hier, dass in jedem \code{case} auf Gleichheit der
 switch-Anweisung und der case-Anweisung getestet wird.
 
 
 \subsubsection{Vergleich \code{if} -- Anweisung  und \code{switch} -- Verzweigung}
 \begin{itemize}
 \item Mit der \code{if} Anweisung k\"onnen beliebige F\"alle
-  unterschieden und entsprechender code ausgef\"uhrt werden.
+  unterschieden und entsprechender Code ausgef\"uhrt werden.
 \item Die \code{switch} Anweisung leistet \"ahnliches allerdings wird in
   jedem Fall auf Gleichheit getestet.
 \item Die \code{switch} Anweisung ist etwas kompakter, wenn viele F\"alle
@@ -1047,7 +1050,7 @@ werden, werden die Schl\"usselworte \code{break} und
 \code{continue} eingesetzt (Listing \ref{breakcontinuelisting}
 zeigt, wie sie eingesetzt werden k\"onnen).
 
-\begin{lstlisting}[caption={Ensatz der \code{continue} und \code{break} Schl\"usselworte um die Ausf\"uhrung von Code-Abschnitten in Schleifen zu \"uberspringen oder abzubrechen.}, label=breakcontinuelisting]
+\begin{lstlisting}[caption={Einsatz der \code{continue} und \code{break} Schl\"usselworte um die Ausf\"uhrung von Code-Abschnitten in Schleifen zu \"uberspringen oder abzubrechen.}, label=breakcontinuelisting]
 for x = 1:10 
   if(x > 2 & x < 5)
     continue;
@@ -1101,7 +1104,7 @@ end
 
 Ein Programm ist eine Sammlung von Anweisungen, die in einer Datei auf
 dem Rechner abgelegt sind. Wenn es durch den Aufruf zum Leben erweckt
-wird, dann wird es Zeile f\"Ur Zeile von oben nach unten ausgef\"uhrt.
+wird, dann wird es Zeile f\"ur Zeile von oben nach unten ausgef\"uhrt.
 
 \matlab{} kennt drei Arten von Programmen:
 \begin{enumerate}
@@ -1110,11 +1113,11 @@ wird, dann wird es Zeile f\"Ur Zeile von oben nach unten ausgef\"uhrt.
 \item Objekte (werden wir ignorieren)
 \end{enumerate}
 Alle Programme werden in den sogenannten \codeterm{m-files} gespeichert
-(z.B. \filename{meinProgramm.m}). Um sie zu benutzen werden sie von der
+(z.B. \emph{meinProgramm.m}). Um sie zu benutzen werden sie von der
 Kommandozeile aufgerufen oder in anderen Programmen
 verwendet. Programme erh\"ohen die Wiederverwertbarkeit von
 Programmcode. Bislang haben wir ausschlie{\ss}lich Skripte
-verwendet. Dabei wurde jede Variable, die erzuegt wurde im
+verwendet. Dabei wurde jede Variable, die erzeugt wurde im
 \codeterm{Workspace} abgelegt und konnte wiederverwendet werden. Hierin
 liegt allerdings auch eine Gefahr. In der Regel sind Datenanalysen auf
 mehrere Skripte verteilt und alle teilen sich den gemeinsamen
@@ -1166,7 +1169,7 @@ Das Folgende Beispiel (Listing \ref{badsinewavelisting}) zeigt eine
 Funktion, die eine Reihe von Sinusschwingungen unterschiedlicher
 Frequenzen berechnet und graphisch darstellt.
 
-\begin{lstlisting}[caption={Eine Beispielfunktion, die eine Reihe Sinus plottet.},label=badsinewavelisting]
+\begin{lstlisting}[caption={Eine Beispielfunktion, die eine Reihe Sinusse plottet.},label=badsinewavelisting]
 function meine_erste_funktion() % Funktionskopf
    t = (0:0.01:2); % hier faengt der Funktionskoerper an
    frequenz = 1.0;
@@ -1185,12 +1188,11 @@ Funktion. Sie hat folgende Probleme:
 \item Die Funktion ist f\"ur genau einen Zweck geeignet.
 \item Was sie tut, ist festgelegt und kann von au{\ss}en nicht
   beeinflusst oder bestimmt werden.
-\item Sie tut drei Dinge aus einmal: Sinus berechnen \emph{und}
+\item Sie tut drei Dinge auf einmal: Sinus berechnen \emph{und}
   Amplituden \"andern \emph{und} graphisch darstellen.
 \item Es ist nicht (einfach) m\"oglich an die berechneten Daten zu
   kommen.
-\item Keinerlei Dokumentation. Man muss den code lesen um zu
-  rekonstruieren, was sie tut.
+\item Keinerlei Dokumentation. Man muss den Code lesen und rekonstruieren, was sie tut.
 \end{itemize}
 
 Bevor wir anfangen die Funktion zu verbessern mu{\ss} definiert werden
@@ -1217,9 +1219,9 @@ hei{\ss}en soll, (ii) welche Information sie ben\"otigt und (iii)
 welche Daten sie zur\"uckliefern soll. 
 
 \begin{enumerate}
-\item \codeterm{Name:} der Name sollte schon beschreiben, was die Funktion
+\item \codeterm{Name:} der Name sollte beschreiben, was die Funktion
   tut. In diesem Fall berechnet sie einen Sinus. Ein geeigneter Name
-  w\"are also \code{calculate\_sinwave}.
+  w\"are also \code{calculate\_sinewave}.
 \item \codeterm{Argumente:} die zu brechnende Sinusschwingung sei durch
   ihre Frequenz und die Amplitude bestimmt. Des Weiteren soll noch
   festgelegt werden, wie lang der Sinus sein soll und mit welcher
@@ -1249,7 +1251,7 @@ function [time, sine] = calculate_sinewave(frequency, amplitude, t_max, t_step)
   
 
 \paragraph{II. Plotten einer einzelnen Schwingung}
-Diese Aufage kann auch von einer Funktion \"ubernommen werden. Diese
+Diese Aufgabe kann auch von einer Funktion \"ubernommen werden. Diese
 Funktion hat keine andere Aufgabe, als die Daten zu plotten. Ihr Name
 sollte sich an dieser Aufgabe orientieren
 (z.B. \code{plot\_sinewave}). Um einen einzelnen Sinus zu plotten
@@ -1270,15 +1272,15 @@ function plot_sinewave(x_data, y_data, name)
 
 
 \paragraph{III. Erstellen eines Skriptes zur Koordinierung}
-Die letzt Aufgabe ist die Koordinierung der Berechung und des Plottens
-f\"ur mehrere Amplituden. Das ist die klassische Aufgabe f\"ur ein
-Skript. Auch hier gilt es einen ausdrucksvollen Name zu finden. Da es
-keine Argumente und R\"uckgabewerte gibt bleibt und nur, die
-ben\"otigten Information direkt in dem Skript zu defninieren. Dies
-sind: ein Vektor, f\"ur die Amplituden, je eine Variable f\"ur die
-gew\"unschte Frequenz, die maximale Zeit auf der x-Achse und die
-zeitliche Aufl\"osung. Das Skript \"offnet schlie{\ss}lich noch eine
-neue Abbildung und setzt das \code{hold on} da nur das Skript
+Die letzte Aufgabe ist die Koordinierung der Berechung und des
+Plottens f\"ur mehrere Amplituden. Das ist die klassische Aufgabe
+f\"ur ein Skript. Auch hier gilt es einen ausdrucksvollen Name zu
+finden. Da es keine Argumente und R\"uckgabewerte gibt, m\"ussen die
+ben\"otigten Informationen direkt in dem Skript defniniert werden. Es
+werden ben\"otigt: ein Vektor f\"ur die Amplituden, je eine Variable
+f\"ur die gew\"unschte Frequenz, die maximale Zeit auf der x-Achse und
+die zeitliche Aufl\"osung. Das Skript \"offnet schlie{\ss}lich noch
+eine neue Abbildung und setzt das \code{hold on} da nur das Skript
 wei{\ss}, das mehr als ein Plot erzeugt werden soll. Das Skript ist in
 Listing \ref{sinesskriptlisting} dargestellt.
 
@@ -1307,7 +1309,7 @@ legend('show')
 
 \subsection{Fazit}
 
-Funktionen sind kleine Code Fragmente, die
+Funktionen sind kleine Codefragmente, die
 \begin{enumerate}
 \item ... genau eine Aufgabe erledigen.
 \item ... Argumente entgegennehmen k\"onnen.
@@ -1318,7 +1320,7 @@ Funktionen sind kleine Code Fragmente, die
 Die vorangegangene Aussagen klingen, als ob Skripte zu
 verteufeln w\"aren und und vermieden werden sollten. Dem ist nicht
 so. In Wahrheit sind sie daf\"ur gemacht, Hand in Hand mit den
-Funktionen ein Probelm zu l\"osen. W\"ahrend die Funktionen relativ
+Funktionen ein Problem zu l\"osen. W\"ahrend die Funktionen relativ
 kleine ``verdauliche'' Teilprobleme l\"osen. Sind die Skripte daf\"ur
 gemacht den Rahmen zu bilden und den Ablauf zu koordinieren (Abbildung
 \ref{programlayoutfig}).