Skip to content

Commit

Permalink
Merge pull request #396 from pep-dortmund/2024_intro_0
Browse files Browse the repository at this point in the history
intro: split intro slides up into multiple files
  • Loading branch information
chrbeckm authored Sep 18, 2024
2 parents f924969 + f006b29 commit 7d4c77d
Show file tree
Hide file tree
Showing 18 changed files with 622 additions and 9 deletions.
2 changes: 1 addition & 1 deletion common/header.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
\input{commands.tex}

\author{PeP et al.\ Toolbox Workshop}
\date{2023}
\date{2024}
\institute[Pep et al.\ e.V.]{\includegraphics[width=0.4\textwidth]{logos/pep.pdf}}
14 changes: 7 additions & 7 deletions intro/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@ include ../common/common.mk
include ../common/document.mk

FIGURES := $(addprefix build/figures/, $(addsuffix .pdf, os programming interest))
EXAMPLE_PLOT := build/example_plot.pdf

build/intro.pdf: $(FIGURES) $(addprefix build/figures/, \
build/intro.pdf: $(FIGURES) $(EXAMPLE_PLOT) $(addprefix build/figures/, \
vim.png nano.png real_programmers.png code.png windows.png macos.png tux.jpg\
fedora.png archlinux.png ubuntu.png debian.pdf \
fedora.png archlinux.png ubuntu.png debian-openlogo.png \
)

build/figures/os.pdf: script/answers.py data/toolbox2023.json ../common/matplotlibrc ../common/header-matplotlib.tex
Expand All @@ -28,18 +29,14 @@ build/figures/real_programmers.png: | build/figures
build/figures/windows.png: | build/figures
wget https://upload.wikimedia.org/wikipedia/commons/thumb/e/e2/Windows_logo_and_wordmark_-_2021.svg/1024px-Windows_logo_and_wordmark_-_2021.svg.png -O $@ --no-use-server-timestamps


build/figures/macos.png: | build/figures
wget https://upload.wikimedia.org/wikipedia/commons/thumb/3/30/MacOS_logo.svg/768px-MacOS_logo.svg.png -O $@ --no-use-server-timestamps

build/figures/macos.png: | build/figures
wget https://upload.wikimedia.org/wikipedia/commons/thumb/3/30/MacOS_logo.svg/768px-MacOS_logo.svg.png -O $@ --no-use-server-timestamps

build/figures/tux.jpg: | build/figures
wget https://upload.wikimedia.org/wikipedia/commons/d/dd/Linux_logo.jpg -O build/figures/tux-original.jpg --no-use-server-timestamps
convert build/figures/tux-original.jpg -trim $@

build/figures/debian.pdf: | build/figures
build/figures/debian-openlogo.png: | build/figures
wget https://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Debian-OpenLogo.svg/581px-Debian-OpenLogo.svg.png -O build/figures/debian-openlogo.png

build/figures/ubuntu.png: build/figures
Expand All @@ -50,3 +47,6 @@ build/figures/fedora.png: build/figures

build/figures/archlinux.png: build/figures
wget -O $@ --no-use-server-timestamps https://upload.wikimedia.org/wikipedia/commons/thumb/e/e8/Archlinux-logo-standard-version.png/1024px-Archlinux-logo-standard-version.png

build/example_plot.pdf: script/example_plot.py | build/figures
MATPLOTLIBRC=../common/matplotlibrc TEXINPUTS=$$(pwd)/../common: python3 $<
111 changes: 111 additions & 0 deletions intro/content/ablauf.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
\section{Ablauf}

\begin{frame}{Roadmap}
\begin{center}
\begin{tikzpicture}[
>=latex,
arrow/.style={line width=2pt, ->}
]
%% Data table
\node at (0, 2.5) {Daten};
\node (data) at (0, 0) {
\sffamily
\sisetup{table-format=1.0, detect-family}
\begin{tblr}{
colspec = {S S[table-format=1.3]},
row{1} = {guard, mode=math},
row{7} = {guard, mode=math}
}
\toprule
x \mathbin{/} \unit{\milli\metre} & I \mathbin{/} \unit{\micro\ampere} \\
\midrule
0 & 0.000 \\
1 & 0.060 \\
2 & 0.530 \\
3 & 1.520 \\
4 & 5.100 \\
\vdots & \vdots \\
\bottomrule
\end{tblr}
};
%% Plot
\uncover<2->{
\node at (6, 2.5) {Plots und Ergebnisse};
\node [anchor=west, align=center] (plot) at (3, 0) {
\includegraphics[width=5cm]{build/example_plot.pdf}\\
\(I_0 = \qty{26.9 \pm 0.5}{\micro\ampere}\)
};
\draw [arrow] (data)
-- node[above, midway] {\includegraphics[width=1.5cm]{../common/logos/python.pdf}}
(plot);
}
%% Protocol
\uncover<3->{
\node [anchor=west] (protocol) at (10, 0) {
\begin{tikzpicture}[
scale=2,
protocol text/.style={line width=2pt, line cap=round, color=gray}
]
\draw (0,0) -- ++(1.41, 0) -- ++(0, 2)
-- ++(-1.21, 0) -- (0, 1.8) -- cycle;
\draw (0, 1.8) -- ++(0.2,0) -- ++(0, 0.2);
\draw [protocol text] (0.1, 1.7) -- +(1, 0);
\draw [protocol text] (1.2, 1.7) -- +(0.1, 0);
\draw [protocol text] (0.1, 1.6) -- +(0.3, 0);
\draw [protocol text] (0.5, 1.6) -- +(0.5, 0);
\draw [protocol text] (1.1, 1.6) -- +(0.2, 0);
\draw [protocol text] (0.1, 1.5) -- +(0.2, 0);
\draw [protocol text] (0.4, 1.5) -- +(0.9, 0);
\draw [protocol text] (0.1, 1.4) -- +(0.9, 0);
\draw [protocol text] (1.1, 1.4) -- +(0.2, 0);
\draw [protocol text] (0.1, 1.3) -- +(0.5, 0);
\draw [protocol text] (0.7, 1.3) -- +(0.6, 0);
\node [anchor=north west] at (0.19, 1.2) {
\includegraphics[width=1.7cm]{build/example_plot.pdf}
};
\draw [protocol text] (0.1, 0.4) -- +(0.6, 0);
\draw [protocol text] (0.8, 0.4) -- +(0.2, 0);
\draw [protocol text] (1.1, 0.4) -- +(0.2, 0);
\draw [protocol text] (0.1, 0.3) -- +(0.3, 0);
\draw [protocol text] (0.5, 0.3) -- +(0.5, 0);
\draw [protocol text] (1.1, 0.3) -- +(0.2, 0);
\draw [protocol text] (0.1, 0.2) -- +(0.7, 0);
\draw [protocol text] (0.9, 0.2) -- +(0.4, 0);
\end{tikzpicture}
};
\draw [arrow] (plot) -- node[above, midway] {\LaTeX} (protocol);
\node at (11.5, 2.5) {Protokoll (PDF)};
}
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}{Ablauf}
\begin{description}[Nächste Woche]
\item[Montag] Programmieren mit Python
\item[Dienstag] Datenhandhabung / Erstellen von Plots
\begin{itemize}
\item NumPy
\item matplotlib
\end{itemize}
\item[Mittwoch] Datenauswertung / Fehlerrechnung
\begin{itemize}
\item scipy
\item uncertainties
\end{itemize}
\item[Donnerstag] Kommandozeile und Versionskontrolle
\begin{itemize}
\item Unix
\item git
\end{itemize}
\item[Freitag] Einstieg in \LaTeX
\item[Nächste Woche] Verfassen wissenschaftlicher Texte mit \LaTeX{}
\begin{itemize}
\item Fließtext \& Mathematik
\item Referenzen \& Literaturverzeichnis
\end{itemize}
\item Automatisierung mit make
\item Kombination aller gezeigten Tools
\item Protokollvorlage und abschließende Übungen
\end{description}
\end{frame}
1 change: 1 addition & 0 deletions intro/content/cheat-sheet.tex
145 changes: 145 additions & 0 deletions intro/content/editoren.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
\section{Texteditoren}

\headlineframe{Texteditoren}

\headlineframe{Was haben die mit diesem Kurs zu tun?}

\begin{frame}{Texteditoren}
\begin{itemize}
\item Viele Dateien, denen man in der Wissenschaft begegnet, enthalten (plain) text
\begin{itemize}
\item Paper/Arbeiten mit \LaTeX
\item Programm-Code
\item Daten (csv, json, yaml, …)
\item Emails
\end{itemize}
\item Es lohnt sich also, einen guten Texteditor zu wählen und den Umgang damit zu erlernen!
\item Das spart auf lange Sicht Zeit und macht die Arbeit angenehmer
\item Zwei Varianten: Terminal / GUI
\end{itemize}
\end{frame}

\begin{frame}[c]{Textdateien und Unicode}
% \textcolor{red}{Findet im SS24 schon die Data Literacy Veranstaltung statt?}
% Dann können die nächsten beiden Folien raus.

Was ist eigentlich eine Textdatei?

\begin{itemize}
\item In einer Datei stehen immer Binärdaten in Bytes, 1 Byte = 8 Bit, 0-255
\item Es gibt (gab) viele Varianten, Text in Binärdaten umzuwandeln (Encoding)
\item Heute sollte immer Unicode enkodiert als \texttt{utf-8} verwendet werden
\item Es gibt viele standardisierte Dateiformate, die auf Textdateien basieren\\
json, yaml, toml, ecsv, ...
\item Und weniger standardisierte aber trotzdem verbreitete Formate: \\
csv, fixed width table, ...
\end{itemize}

\begin{description}
\item[Unicode]
\begin{itemize}
\item Sammlung von Schriftzeichen, Buchstaben, Akzente, Emojis, ...
\item Aus allen Sprachen.
\item Ordnet Zeichen \enquote{Codepoints} zu
\item Beispiele: \texttt{LATIN SMALL LETTER A}: 97, \texttt{PILE OF POO}: 128169
\end{itemize}
\item[UTF-8] Encoding um Unicode-Text in Bytes zu speichern
\end{description}
\end{frame}

\begin{frame}[c]{Zeilenende}

Windows und Unix-Systeme verwenden unterschiedliche Konventionen für ein Zeilenende.

\begin{description}
\item[Unix] \mintinline{text}+\n+ \hspace{3.15em} \texttt{LF} (Linefeed)
\item[Windows] \mintinline{text}+\r\n+ \hspace{2em} \texttt{CR LF} (Carriage Return + Linefeed).
\end{description}

VS Code/VS Codium erkennt auf allen Betriebssystemen, welche Konvention in der aktuellen Datei
genutzt wird und behält sie bei.

Empfehlung: immer Unix-Konvention nutzen

\end{frame}

\begin{frame}{Was muss ein Editor können?}
\begin{minipage}{0.38\textwidth}
In absteigender Wichtigkeit

\begin{itemize}
\item Zeilennummern
\item Syntax-Highlighting
\item Simple Autovervollständigung
\item Plugins / Anpassbarkeit
\item Linting (Warnhinweise für falschen Code)
\item Komplexe Autovervollständigung (Snippets, Library-Funktionen)
\end{itemize}

\vspace{.4\textheight}
\end{minipage}
\pause
\begin{minipage}{0.22\textwidth}
Windows Notepad:

\includegraphics[height=0.52\textheight]{figures/notepad_example_screenshot.png}

\vspace{.5\textheight}
\end{minipage}
\pause
\begin{minipage}{0.3\textwidth}
~
\vspace{.32\textheight}
\flushright VS Codium: \flushleft \vspace{-1.5em}
\includegraphics[height=0.52\textheight]{figures/vscodium_example_screenshot.png}
\end{minipage}
\end{frame}

\begin{frame}{Nano, Vim, GUIs}
\begin{tblr}{
colspec = {X[c] X[c] X[c]},
measure=vbox,
}
\textbf{\large Nano} & \textbf{\Large (Neo)Vim} & \textbf{\Large Visual Studio Code} \\
\includegraphics[height=3cm]{figures/nano.png} &
\includegraphics[height=3cm]{figures/vim.png} &
\includegraphics[height=3cm]{figures/code.png} \\
\begin{itemize}
\item Einfacher Texteditor fürs Terminal
\item Auf fast jedem Unix-System vorhanden
\item Wenige Features, nicht erweiterbar
\end{itemize}
&
\begin{itemize}
\item Modi-basiert
\item Erweiterbar
\item Auf fast jedem Unix-System default
\item Harter Einstieg
\end{itemize}
&
\begin{itemize}
\item GUI Editor von Microsoft
\item Leichter zu bedienen
\item Batteries included
\item Viele nützliche Plugins
\end{itemize}
\\
\end{tblr}
\end{frame}

\begin{frame}{vi, Vim, NVim schließen}
\begin{minipage}{.4\textwidth}
Auf einigen Systemen werden Textdateien standardmäßig in vi oder Vim geöffnet.
Das Schließen funktioniert hier über
\begin{itemize}
\item \texttt{<Escape>}
\item \texttt{:q!}
\item \texttt{<Enter>}
\end{itemize}
\vfill
\end{minipage}
\hfill
\begin{minipage}{.5\textwidth}
\includegraphics[width=.9\textwidth]{figures/nvim_example_screenshot.png}
\end{minipage}
\end{frame}
56 changes: 56 additions & 0 deletions intro/content/motivation.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
\section{Einführung}

\begin{frame}{Motivation}
\begin{center}
\textcolor{vertexDarkRed}{\Huge Auf das Praktikum vorbereiten} \\[\baselineskip]
\Large \textbf{Daten:} \hspace{2em} Abspeichern \hspace{2em} Auswerten \hspace{2em} Visualisieren \\ [\baselineskip]
Zusammenarbeiten \hspace{2em} Protokoll verfassen \hspace{2em} Automatisieren \\
\end{center}
\end{frame}

\begin{frame}{Motivation}
\begin{center}
\textcolor{vertexDarkRed}{\Huge Technische Fähigkeiten, die man \\ im Praktikum/in der Wissenschaft \\ braucht} \\[\baselineskip]
\Large%
Konkrete Probleme durch Programmieren lösen\\[\baselineskip]
Wiederholte Abläufe automatisieren\\[\baselineskip]
Versionskontrolle: Wieso? und Wie?\\[\baselineskip]
Kooperation mit Anderen an gemeinsamen Projekten
\end{center}
\end{frame}

\begin{frame}{Motivation}
\begin{center}
\textcolor{vertexDarkRed}{\Huge Von Anfang an: Ein Werkzeugkasten} \\[\baselineskip]
\Large%
Spart Zeit und Nerven\\[\baselineskip]
Verwenden von Dokumentation\\[\baselineskip]
Erleichtert Zusammenarbeit mit Anderen\\[\baselineskip]
Was sind die Standardwerkzeuge?
\end{center}
\end{frame}

\begin{frame}{Toolbox Workshop}
\begin{center}
\textcolor{vertexDarkRed}{\Huge Der Toolbox Workshop}\\[\baselineskip]
\begin{itemize}
\item Einführung in einen zusammenpassenden Satz von Werkzeugen,
um gute Wissenschaft zu ermöglichen (offen, reproduzierbar)
\item Das Praktikum soll im Kleinen die Grundlagen des wissenschaftlichen Arbeitens vermitteln \\
$\Rightarrow$ Als Chance sehen, die hier vorgestellten Konzepte zu üben
\item Spätestens essentiell bei Bachelor- und Masterarbeit
\item Nützlich weit darüber hinaus
\end{itemize}
\end{center}
\end{frame}

\begin{frame}{Toolbox Workshop}
\begin{center}
\textcolor{vertexDarkRed}{\Huge Der Toolbox Workshop}\\[\baselineskip]
\begin{itemize}
\item Wir zeigen \emph{eine mögliche} Kombination von Tools
\item Für alle Bereiche gibt es andere Möglichkeiten mit Vor- und Nachteilen
\item Die hier gezeigten Tools sind aber sehr weit verbreitet, auch außerhalb der Wissenschaft
\end{itemize}
\end{center}
\end{frame}
Loading

0 comments on commit 7d4c77d

Please sign in to comment.