Skip to content

Commit 528585b

Browse files
committed
apply new formatting script
1 parent e848c28 commit 528585b

32 files changed

Lines changed: 1262 additions & 1262 deletions

appendix/coding_style.tex

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -11,66 +11,66 @@
1111
unterstützen, gibt es mehrere Dinge, auf die man achten kann.
1212

1313
\begin{description}
14-
\item[Einrückung]
15-
Wie euch vermutlich aufgefallen ist, sind an verschiedenen Stellen im
16-
Code einzelne Zeilen ein wenig eingerückt. Dies ist vermutlich das
17-
wichtigste Werkzeug, welches zur Verfügung steht, um die Lesbarkeit von
18-
Code zu unterstützen (auch, wenn es nicht nötig ist, um formal korrekte
19-
Programme zu schreiben). Die einzelnen Einheiten des Kontrollflusss
20-
werden dadurch visuell voneinander abgegrenzt, was es einfacher macht,
21-
den Programmverlauf zu verfolgen.
14+
\item[Einrückung]
15+
Wie euch vermutlich aufgefallen ist, sind an verschiedenen Stellen im
16+
Code einzelne Zeilen ein wenig eingerückt. Dies ist vermutlich das
17+
wichtigste Werkzeug, welches zur Verfügung steht, um die Lesbarkeit von
18+
Code zu unterstützen (auch, wenn es nicht nötig ist, um formal korrekte
19+
Programme zu schreiben). Die einzelnen Einheiten des Kontrollflusss
20+
werden dadurch visuell voneinander abgegrenzt, was es einfacher macht,
21+
den Programmverlauf zu verfolgen.
2222

23-
Wie genau eingerückt werden sollte, darüber scheiden sich die Geister.
24-
Man kann mit mehreren Leerzeichen oder durch Tabulatoren einrücken.
25-
Empfehlenswert ist auf jeden Fall, mehrere gleichförmige „Ebenen“ zu
26-
haben (z.B. 4, 8, 12, \dots\ Leerzeichen zu Beginn der Zeile). Tabulatoren
27-
haben den Vorteil, dass sie, in der Theorie, über Programme hinweg “standartisiert” sind,
28-
weswegen man denselben Code in mehreren Editoren öffnen und
29-
überall problemlos mit Tabulatoren arbeiten kann. Eine
30-
Faustregel für gut lesbare Einrückung ist, immer wenn man eine
31-
geschweifte Klammer öffnet, eine Ebene tiefer einzurücken und immer,
32-
wenn man eine geschweifte Klammer schließt, wieder eine Ebene zurück zu
33-
nehmen.
34-
\item[Klammern]
35-
Aus der Schule kennt ihr das Prinzip „Punkt- vor Strichrechnung“. Dies
36-
ist eine Regel, die so genannte \emph{Präzedenz} ausdrückt, also die
37-
Reihenfolge, in der Operatoren ausgewertet werden. Punkt vor Strich ist
38-
allerdings nicht aussreichend, um vollständig zu beschreiben, wie sich
39-
Operatoren in Gruppen verhalten. Schaut euch z.B. den Ausdruck
40-
\texttt{3 * 2 / 3} an. Da der Computer Ganzzahldivision benutzt, kommen
41-
hier unterschiedliche Ergebniss raus, je nachdem, ob zunächst das
42-
\texttt{*} oder das \texttt{/} ausgewertet wird. Im ersten Fall
43-
erhalten wir \texttt{6 / 3 == 2}, wie wir erwarten würden. Im zweiten
44-
Fall wird aber abgerundet, sodass wir \texttt{3 * 0 == 0} erhalten.
23+
Wie genau eingerückt werden sollte, darüber scheiden sich die Geister.
24+
Man kann mit mehreren Leerzeichen oder durch Tabulatoren einrücken.
25+
Empfehlenswert ist auf jeden Fall, mehrere gleichförmige „Ebenen“ zu
26+
haben (z.B. 4, 8, 12, \dots\ Leerzeichen zu Beginn der Zeile). Tabulatoren
27+
haben den Vorteil, dass sie, in der Theorie, über Programme hinweg “standartisiert” sind,
28+
weswegen man denselben Code in mehreren Editoren öffnen und
29+
überall problemlos mit Tabulatoren arbeiten kann. Eine
30+
Faustregel für gut lesbare Einrückung ist, immer wenn man eine
31+
geschweifte Klammer öffnet, eine Ebene tiefer einzurücken und immer,
32+
wenn man eine geschweifte Klammer schließt, wieder eine Ebene zurück zu
33+
nehmen.
34+
\item[Klammern]
35+
Aus der Schule kennt ihr das Prinzip „Punkt- vor Strichrechnung“. Dies
36+
ist eine Regel, die so genannte \emph{Präzedenz} ausdrückt, also die
37+
Reihenfolge, in der Operatoren ausgewertet werden. Punkt vor Strich ist
38+
allerdings nicht aussreichend, um vollständig zu beschreiben, wie sich
39+
Operatoren in Gruppen verhalten. Schaut euch z.B. den Ausdruck
40+
\texttt{3 * 2 / 3} an. Da der Computer Ganzzahldivision benutzt, kommen
41+
hier unterschiedliche Ergebniss raus, je nachdem, ob zunächst das
42+
\texttt{*} oder das \texttt{/} ausgewertet wird. Im ersten Fall
43+
erhalten wir \texttt{6 / 3 == 2}, wie wir erwarten würden. Im zweiten
44+
Fall wird aber abgerundet, sodass wir \texttt{3 * 0 == 0} erhalten.
4545

46-
Um solche und ähnliche Uneindeutigkeiten zu vermeiden, bietet es sich
47-
an, Klammerung zu verwenden. Selbst wenn wir im obigen Fall
48-
\emph{wissen} in welcher Reihenfolge die Operatoren ausgewertet werden,
49-
jemand der unseren Code liest, weiß das vielleicht nicht. Einfach von
50-
vornherein die gewollte Reihenfolge der Auswertung zu klammern,
51-
verhindert Verwirrung bei uns über das Verhalten des Computers, als
52-
auch bei Menschen, die später wissen wollen, was wir meinten.
46+
Um solche und ähnliche Uneindeutigkeiten zu vermeiden, bietet es sich
47+
an, Klammerung zu verwenden. Selbst wenn wir im obigen Fall
48+
\emph{wissen} in welcher Reihenfolge die Operatoren ausgewertet werden,
49+
jemand der unseren Code liest, weiß das vielleicht nicht. Einfach von
50+
vornherein die gewollte Reihenfolge der Auswertung zu klammern,
51+
verhindert Verwirrung bei uns über das Verhalten des Computers, als
52+
auch bei Menschen, die später wissen wollen, was wir meinten.
5353

54-
Ihr könnt übrigens nicht nur einzeilige Kommentare erstellen, die mit \cppinline{//} beginnen, sondern auch mehrzeilige, und zwar so: \cppinline{/* Dies ist ein ganz langer mehrzeiliger Kommentar. */} . Alles zwischen den Slashes und Sternchen ist dann ein Kommentar und wird vom Computer ignoriert. Dies könnt ihr als kleinen Trick verwenden, um euren Code zu debuggen, ohne ständig alles neu zu schreiben. Ihr könnt stattdessen einfach den nicht benötigten Code auskommentieren und wenn ihr ihn wieder verwenden wollt, die Kommentarzeichen am Anfang und Ende wieder entfernen.
55-
\item[Kommentare]
56-
Wir haben schon in mehreren Quellcodedateien Kommentare verwendet, um
57-
einzelne Dinge zu erklären. Insgesamt bietet es sich an, dies selbst
58-
ebenfalls zu tun, um den Programmfluss der Leserin von Quellcode klar zu
59-
machen. Das heißt nicht, dass man jede Anweisung noch einmal mit einem
60-
Kommantar versehen sollte, der sie ausführlich erklärt, aber an
61-
wichtigen Punkten können einem kurze Kommentare das Leben enorm
62-
vereinfachen. Und ihr dürft nicht vergessen, dass ihr euch vielleicht
63-
selbst in ein oder zwei Jahren noch einmal euren eigenen Quellcode
64-
anschauen müsst und ihr werdet wirklich überrascht sein, wie wenig ihr
65-
von dem Zeug, welches ihr selbst geschrieben habt, verstehen werdet.
66-
\item [Benennungen]
67-
Wenn ihr eure Variablen -- und später auch eure Funktionen und Klassen -- präzise benennt, dann vereinfacht ihr das Lesen eures Codes extrem. Durch Bezeichnungen, die für sich sprechen, könnt ihr euch außerdem Kommentare etwas ersparen, weil die Variablennamen dann schon viel erklären. Es ist zum Beispiel ungeschickt, seine Variablen wie in der Mathematik üblich einfach nur mit einzelnen Buchstaben zu benennen, statt \cppinline{int a = 42;} sollte man lieber \cppinline{int alter = 42;} verwenden, da die Leserin direkt weiß, dass in dieser Variablen das Alter gespeichert wird. Zu dieser coding style Richtlinie gibt es jedoch auch eine Ausnahme: Bei Zählervariablen, die einfach nur die Anzahl der Schleifeniterationen hochzählen, verwendet man meist einzelne Buchstaben, wie \cppinline{i} oder \cppinline{n}. Das ist schön kurz und praktisch, jedoch muss man etwas aufpassen, denn man kann schnell mit diesen Indices durcheinander kommen -- genau so wie in der Mathematik.
68-
\item[Leerzeichen und -zeilen]
69-
Weniger wichtig als die ersten vier Punkte können trotzdem gezielte
70-
Leerzeichen (z.B. zwischen Operatoren und Operanden in arithmetischen
71-
Ausdrücken) die Lesbarkeit enorm erhöhen. Gerade in arithmetischen
72-
Ausdrücken ist es eine gute Angewohnheit.
73-
Ebenso sind Leerzeilen zwischen logischen Abschnitten sehr hilfreich. Zu Beginn eines Abschnittes kann man dann noch einen kurzen Kommentar hinzufügen, was in dem Abschnitt passiert und schon fällt das Lesen des Codes deutlich leichter.
54+
Ihr könnt übrigens nicht nur einzeilige Kommentare erstellen, die mit \cppinline{//} beginnen, sondern auch mehrzeilige, und zwar so: \cppinline{/* Dies ist ein ganz langer mehrzeiliger Kommentar. */} . Alles zwischen den Slashes und Sternchen ist dann ein Kommentar und wird vom Computer ignoriert. Dies könnt ihr als kleinen Trick verwenden, um euren Code zu debuggen, ohne ständig alles neu zu schreiben. Ihr könnt stattdessen einfach den nicht benötigten Code auskommentieren und wenn ihr ihn wieder verwenden wollt, die Kommentarzeichen am Anfang und Ende wieder entfernen.
55+
\item[Kommentare]
56+
Wir haben schon in mehreren Quellcodedateien Kommentare verwendet, um
57+
einzelne Dinge zu erklären. Insgesamt bietet es sich an, dies selbst
58+
ebenfalls zu tun, um den Programmfluss der Leserin von Quellcode klar zu
59+
machen. Das heißt nicht, dass man jede Anweisung noch einmal mit einem
60+
Kommantar versehen sollte, der sie ausführlich erklärt, aber an
61+
wichtigen Punkten können einem kurze Kommentare das Leben enorm
62+
vereinfachen. Und ihr dürft nicht vergessen, dass ihr euch vielleicht
63+
selbst in ein oder zwei Jahren noch einmal euren eigenen Quellcode
64+
anschauen müsst und ihr werdet wirklich überrascht sein, wie wenig ihr
65+
von dem Zeug, welches ihr selbst geschrieben habt, verstehen werdet.
66+
\item [Benennungen]
67+
Wenn ihr eure Variablen -- und später auch eure Funktionen und Klassen -- präzise benennt, dann vereinfacht ihr das Lesen eures Codes extrem. Durch Bezeichnungen, die für sich sprechen, könnt ihr euch außerdem Kommentare etwas ersparen, weil die Variablennamen dann schon viel erklären. Es ist zum Beispiel ungeschickt, seine Variablen wie in der Mathematik üblich einfach nur mit einzelnen Buchstaben zu benennen, statt \cppinline{int a = 42;} sollte man lieber \cppinline{int alter = 42;} verwenden, da die Leserin direkt weiß, dass in dieser Variablen das Alter gespeichert wird. Zu dieser coding style Richtlinie gibt es jedoch auch eine Ausnahme: Bei Zählervariablen, die einfach nur die Anzahl der Schleifeniterationen hochzählen, verwendet man meist einzelne Buchstaben, wie \cppinline{i} oder \cppinline{n}. Das ist schön kurz und praktisch, jedoch muss man etwas aufpassen, denn man kann schnell mit diesen Indices durcheinander kommen -- genau so wie in der Mathematik.
68+
\item[Leerzeichen und -zeilen]
69+
Weniger wichtig als die ersten vier Punkte können trotzdem gezielte
70+
Leerzeichen (z.B. zwischen Operatoren und Operanden in arithmetischen
71+
Ausdrücken) die Lesbarkeit enorm erhöhen. Gerade in arithmetischen
72+
Ausdrücken ist es eine gute Angewohnheit.
73+
Ebenso sind Leerzeilen zwischen logischen Abschnitten sehr hilfreich. Zu Beginn eines Abschnittes kann man dann noch einen kurzen Kommentar hinzufügen, was in dem Abschnitt passiert und schon fällt das Lesen des Codes deutlich leichter.
7474
\end{description}
7575

7676
Es gibt sicher noch viele Regeln, über die ihr im Laufe eures Lebens stolpern
@@ -82,34 +82,34 @@
8282
aufzuspüren. Auch wenn es coding style Richtlinien für verschiedene Programmiersprachen gibt, die größtenteils relativ ähnlich sind, gewöhnt man sich meist einen eigenen Stil mit der Zeit an. Es ist allerdings wichtig, früh auf guten Stil zu achten, denn wenn man erst einmal damit anfängt, unübersichtlichen Code zu schreiben, gewöhnt man sich diese Unart an und das will schließlich niemand.
8383

8484
\begin{praxis}
85-
\begin{enumerate}
86-
\item Eine weit verbreitete einfache Aufgabe, die in Bewerbungsgesprächen
87-
auf Stellen als Programmiererin häufig gestellt wird, ist
88-
\emph{FizzBuzz}. In \texttt{fizzbuzz.cpp} ist eine möglich Lösung für
89-
diese Aufgabe gegeben. Könnt ihr (nur mittels des Quellcodes) sagen,
90-
was das Programm tut?
91-
\item Nutzt die oben gegebenen Faustregeln, um den Quellcode lesbarer zu
92-
machen. Ihr müsst nicht alles bis aufs Wort befolgen, macht einfach so
93-
lange weiter, bis ihr findet, man kann hinreichend schnell verstehen,
94-
was hier passieren soll.
95-
\end{enumerate}
85+
\begin{enumerate}
86+
\item Eine weit verbreitete einfache Aufgabe, die in Bewerbungsgesprächen
87+
auf Stellen als Programmiererin häufig gestellt wird, ist
88+
\emph{FizzBuzz}. In \texttt{fizzbuzz.cpp} ist eine möglich Lösung für
89+
diese Aufgabe gegeben. Könnt ihr (nur mittels des Quellcodes) sagen,
90+
was das Programm tut?
91+
\item Nutzt die oben gegebenen Faustregeln, um den Quellcode lesbarer zu
92+
machen. Ihr müsst nicht alles bis aufs Wort befolgen, macht einfach so
93+
lange weiter, bis ihr findet, man kann hinreichend schnell verstehen,
94+
was hier passieren soll.
95+
\end{enumerate}
9696

97-
\inputcpp{fizzbuzz.cpp}
97+
\inputcpp{fizzbuzz.cpp}
9898
\end{praxis}
9999

100100
\begin{spiel}
101-
\begin{enumerate}
102-
\item Entfernt in eurem veränderten Quellcode eine geschweifte Klammer
103-
eurer Wahl. Lasst eure Sitznachbarin über den Quellcode schauen und die
104-
fehlende Klammer finden.
105-
\end{enumerate}
101+
\begin{enumerate}
102+
\item Entfernt in eurem veränderten Quellcode eine geschweifte Klammer
103+
eurer Wahl. Lasst eure Sitznachbarin über den Quellcode schauen und die
104+
fehlende Klammer finden.
105+
\end{enumerate}
106106
\end{spiel}
107107

108108
\textbf{Quiz 12}\\
109109
\textit{Was gehört zu gutem Coding style?}
110110
\begin{enumerate}[label=\alph*)]
111-
\item Sinnvolle Kommentare
112-
\item Möglichst keine Leerzeilen lassen
113-
\item Variablennamen möglichst kurz wählen
114-
\item Einrückungen vornehmen
111+
\item Sinnvolle Kommentare
112+
\item Möglichst keine Leerzeilen lassen
113+
\item Variablennamen möglichst kurz wählen
114+
\item Einrückungen vornehmen
115115
\end{enumerate}

appendix/vscode_tutorial.tex

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,61 @@
11
\chapter{Visual Studio Code: Einstieg und Tipps}
22
\label{sec:vscode}
33

4-
Visual Studio Code (VS Code) ist ein moderner, kostenloser Editor, der besonders für Programmieranfänger:innen viele Vorteile bietet.
4+
Visual Studio Code (VS Code) ist ein moderner, kostenloser Editor, der besonders für Programmieranfänger:innen viele Vorteile bietet.
55
In diesem Abschnitt zeigen wir, wie ihr VS Code installiert, sinnvoll einrichtet und für den Vorkurs nutzt.
66

77
\section{Installation}
88
\begin{enumerate}
9-
\item Ladet VS Code von \url{https://code.visualstudio.com/Download} herunter und installiert es.
10-
\item Öffnet VS Code nach der Installation.
9+
\item Ladet VS Code von \url{https://code.visualstudio.com/Download} herunter und installiert es.
10+
\item Öffnet VS Code nach der Installation.
1111
\end{enumerate}
1212

1313
\section{Empfohlene Erweiterungen}
1414
\begin{itemize}
15-
\item \textbf{C/C++} (Microsoft): Syntax-Highlighting, Autovervollständigung und Debugging für C++.
16-
\item \textbf{CodeLLDB} oder \textbf{C/C++ Extension Pack}: Für erweitertes Debugging.
17-
\item \textbf{Remote - WSL} (nur Windows): Für die Verbindung zu WSL (Windows Subsystem for Linux).
18-
\item \textbf{Better Comments}, \textbf{Bracket Pair Colorizer}, \textbf{GitLens}: Für mehr Übersicht und Komfort.
15+
\item \textbf{C/C++} (Microsoft): Syntax-Highlighting, Autovervollständigung und Debugging für C++.
16+
\item \textbf{CodeLLDB} oder \textbf{C/C++ Extension Pack}: Für erweitertes Debugging.
17+
\item \textbf{Remote - WSL} (nur Windows): Für die Verbindung zu WSL (Windows Subsystem for Linux).
18+
\item \textbf{Better Comments}, \textbf{Bracket Pair Colorizer}, \textbf{GitLens}: Für mehr Übersicht und Komfort.
1919
\end{itemize}
2020

2121
\section{VS Code mit WSL verbinden (nur Windows)}
2222
\begin{enumerate}
23-
\item Installiert das Windows-Subsystem für Linux (siehe Kapitel \ref{sec:windows}).
24-
\item Installiert die Erweiterung \textbf{Remote - WSL} in VS Code.
25-
\item Öffnet die WSL-Konsole und gebt \texttt{code .} ein, um das aktuelle Verzeichnis in VS Code zu öffnen.
26-
\item VS Code erkennt automatisch, dass ihr im WSL arbeitet.
23+
\item Installiert das Windows-Subsystem für Linux (siehe Kapitel \ref{sec:windows}).
24+
\item Installiert die Erweiterung \textbf{Remote - WSL} in VS Code.
25+
\item Öffnet die WSL-Konsole und gebt \texttt{code .} ein, um das aktuelle Verzeichnis in VS Code zu öffnen.
26+
\item VS Code erkennt automatisch, dass ihr im WSL arbeitet.
2727
\end{enumerate}
2828

2929
\section{Debugger einrichten}
3030
\begin{enumerate}
31-
\item Öffnet die Datei, die ihr debuggen wollt.
32-
\item Klickt links auf das Symbol für „Run and Debug“ (\texttt{Play}-Button mit Käfer).
33-
\item Wählt „C++ (GDB/LLDB)“ oder „C++ (Windows)“ aus.
34-
\item Erstellt ggf. eine \texttt{launch.json} (VS Code bietet eine automatische Konfiguration an).
35-
\item Setzt Breakpoints durch Klick auf die Zeilennummer.
36-
\item Startet das Debugging mit F5.
31+
\item Öffnet die Datei, die ihr debuggen wollt.
32+
\item Klickt links auf das Symbol für „Run and Debug“ (\texttt{Play}-Button mit Käfer).
33+
\item Wählt „C++ (GDB/LLDB)“ oder „C++ (Windows)“ aus.
34+
\item Erstellt ggf. eine \texttt{launch.json} (VS Code bietet eine automatische Konfiguration an).
35+
\item Setzt Breakpoints durch Klick auf die Zeilennummer.
36+
\item Startet das Debugging mit F5.
3737
\end{enumerate}
3838

3939
\section{Nützliche Shortcuts}
4040
Eine vollständige Übersicht findet ihr im Anhang \ref{sec:cheatsheet-shortcuts}. Hier die wichtigsten:
4141
\begin{itemize}
42-
\item \texttt{Strg + P}: Datei schnell öffnen
43-
\item \texttt{Strg + Shift + P}: Befehlspalette öffnen
44-
\item \texttt{Strg + \textasciigrave}: Terminal öffnen/schließen
45-
\item \texttt{F5}: Debugging starten
46-
\item \texttt{F9}: Breakpoint setzen/entfernen
42+
\item \texttt{Strg + P}: Datei schnell öffnen
43+
\item \texttt{Strg + Shift + P}: Befehlspalette öffnen
44+
\item \texttt{Strg + \textasciigrave}: Terminal öffnen/schließen
45+
\item \texttt{F5}: Debugging starten
46+
\item \texttt{F9}: Breakpoint setzen/entfernen
4747
\end{itemize}
4848

4949
\section{Weitere Tipps}
5050
\begin{itemize}
51-
\item Ihr könnt mehrere Terminals gleichzeitig öffnen (z.B. Bash und PowerShell).
52-
\item Die integrierte Git-Unterstützung hilft beim Versionsmanagement.
53-
\item Mit \texttt{settings.json} könnt ihr VS Code individuell anpassen.
51+
\item Ihr könnt mehrere Terminals gleichzeitig öffnen (z.B. Bash und PowerShell).
52+
\item Die integrierte Git-Unterstützung hilft beim Versionsmanagement.
53+
\item Mit \texttt{settings.json} könnt ihr VS Code individuell anpassen.
5454
\end{itemize}
5555

5656
\section{Fehlerbehebung}
5757
\begin{itemize}
58-
\item Prüft, ob alle benötigten Erweiterungen installiert sind.
59-
\item Bei Problemen mit WSL: VS Code und WSL neu starten.
60-
\item Compiler-Fehler erscheinen im „Problems“-Tab unten.
58+
\item Prüft, ob alle benötigten Erweiterungen installiert sind.
59+
\item Bei Problemen mit WSL: VS Code und WSL neu starten.
60+
\item Compiler-Fehler erscheinen im „Problems“-Tab unten.
6161
\end{itemize}

eigener_computer/intro.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
\chapter{Vorbereitung eigener Computer}
33
\label{chap:eigener_computer}
44
\pagestyle{empty}
5-
Dieses Kapitel dient der Vorbereitung privater Computer, um daran den Kurs zu bearbeiten.
5+
Dieses Kapitel dient der Vorbereitung privater Computer, um daran den Kurs zu bearbeiten.
66
Wir werden in diesem Fall den proprietären Editor „Visual Studio Code“ verwenden, welcher \href{https://code.visualstudio.com/Download}{hier} heruntergeladen werden kann.\\
77

88
\pagestyle{fancy}

0 commit comments

Comments
 (0)