This commit is contained in:
RobinB27
2026-01-01 15:14:31 +01:00
27 changed files with 373 additions and 34 deletions

View File

@@ -0,0 +1,22 @@
name: Upload to ComSol
description: Upload documents to VIS ComSol
author: Janis Hutz
inputs:
file:
description: File to upload
access_token:
description: Access token for the file on ComSol
url:
description: The upload URL as shown in the access token details page on ComSol
runs:
using: composite
steps:
- name: Upload file to ComSol
shell: bash
run: |
curl ${{ inputs.url }} \
-H "Authorization: ${{ inputs.access_token }}" \
-F "file=@${{ inputs.file }}"
branding:
icon: book
color: red

17
.github/workflows/upload-ad.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Upload Algorithms and Datastructures Summary
on:
push:
paths:
- 'semester1/algorithms-and-datastructures/**'
jobs:
upload_document:
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v6
- name: Upload to ComSol
uses: ./.github/actions/upload-to-comsol
with:
access_token: ${{ secrets.TOKEN_AD }}
file: ./semester1/algorithms-and-datastructures/ad-janishutz.pdf
url: https://exams.vis.ethz.ch/api/document/jahutz/summary-hs24_1/files/591/update/

23
.github/workflows/upload-anaI-jh.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
name: Upload Analysis I (by janishutz) Cheat-Sheet
on:
push:
paths:
- 'semester2/analysis-i/cheat-sheet-jh/**'
jobs:
upload_document:
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v6
- name: Upload English version to ComSol
uses: ./.github/actions/upload-to-comsol
with:
access_token: ${{ secrets.TOKEN_ANA_I_JH }}
file: ./semester2/analysis-i/cheat-sheet-jh/cheat-sheet-en.pdf
url: https://exams.vis.ethz.ch/api/document/jahutz/analysis-i-cheatsheet-fs25/files/654/update/
- name: Upload German version to ComSol
uses: ./.github/actions/upload-to-comsol
with:
access_token: ${{ secrets.TOKEN_ANA_I_JH }}
file: ./semester2/analysis-i/cheat-sheet-jh/cheat-sheet-de.pdf
url: https://exams.vis.ethz.ch/api/document/jahutz/analysis-i-cheatsheet-fs25/files/655/update/

17
.github/workflows/upload-aw.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Upload Algorithms and Probability Summary
on:
push:
paths:
- 'semester2/algorithms-and-probability/**'
jobs:
upload_document:
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v6
- name: Upload to ComSol
uses: ./.github/actions/upload-to-comsol
with:
access_token: ${{ secrets.TOKEN_AW }}
file: ./semester2/algorithms-and-probability/aw-summary.pdf
url: https://exams.vis.ethz.ch/api/document/jahutz/summary-fs25_0/files/653/update/

17
.github/workflows/upload-eprog.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Upload Introduction to Programming Short Summary
on:
push:
paths:
- 'semester1/eprog/**'
jobs:
upload_document:
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v6
- name: Upload to ComSol
uses: ./.github/actions/upload-to-comsol
with:
access_token: ${{ secrets.TOKEN_EPROG }}
file: ./semester1/eprog/eprog-janishutz.pdf
url: https://exams.vis.ethz.ch/api/document/jahutz/short-summary-hs24/files/593/update/

17
.github/workflows/upload-la.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Upload Linear Algebra Cheat-Sheet
on:
push:
paths:
- 'semester1/linear-algebra/**'
jobs:
upload_document:
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v6
- name: Upload to ComSol
uses: ./.github/actions/upload-to-comsol
with:
access_token: ${{ secrets.TOKEN_LA }}
file: ./semester1/linear-algebra/linAlg-janishutz.pdf
url: https://exams.vis.ethz.ch/api/document/jahutz/cheatsheet-hs24_5/files/592/update/

17
.github/workflows/upload-numcs.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Upload NumCS Summary
on:
push:
paths:
- 'semester3/numcs/**'
jobs:
upload_document:
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v6
- name: Upload to ComSol
uses: ./.github/actions/upload-to-comsol
with:
file: ./semester3/numcs/numcs-summary.pdf
access_token: ${{ secrets.TOKEN_NUMCS }}
url: https://exams.vis.ethz.ch/api/document/jahutz/summary-hs25/files/657/update/

17
.github/workflows/upload-pprog-jh.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Upload Parallel Programming Compact Summary
on:
push:
paths:
- 'semester2/parallel-programming-compact/**'
jobs:
upload_document:
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v6
- name: Upload to ComSol
uses: ./.github/actions/upload-to-comsol
with:
file: ./semester2/parallel-programming-compact/pprog-compact-summary.pdf
access_token: ${{ secrets.TOKEN_PPROG }}
url: https://exams.vis.ethz.ch/api/document/jahutz/compact-summary-fs25/files/656/update/

17
.github/workflows/upload-ti-compact.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Upload Theoretical Computer Science Compact Summary
on:
push:
paths:
- 'semester3/ti/compact/**'
jobs:
upload_document:
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v6
- name: Upload to ComSol
uses: ./.github/actions/upload-to-comsol
with:
file: ./semester3/ti/compact/ti-compact.pdf
access_token: ${{ secrets.TOKEN_TI }}
url: https://exams.vis.ethz.ch/api/document/jahutz/summary-hs25_0/files/659/update/

17
.github/workflows/upload-ti-full.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Upload Theoretical Computer Science Summary
on:
push:
paths:
- 'semester3/ti/main/**'
jobs:
upload_document:
runs-on: ubuntu-latest
steps:
- name: Set up Git repository
uses: actions/checkout@v6
- name: Upload to ComSol
uses: ./.github/actions/upload-to-comsol
with:
file: ./semester3/ti/main/ti-summary.pdf
access_token: ${{ secrets.TOKEN_TI }}
url: https://exams.vis.ethz.ch/api/document/jahutz/summary-hs25_0/files/658/update/

View File

@@ -3,7 +3,7 @@ The source code for summaries and cheat-sheets for the lectures of BSc Computer
If you find mistakes, please open an issue or fix them yourself and open a PR. If you find mistakes, please open an issue or fix them yourself and open a PR.
## Credits ## Available Summaries & Credits
### Semester 1 ### Semester 1
- [Algorithms & Datastructures Summary (EN)](./semester1/algorithms-and-datastructures/ad-janishutz.pdf) Author: Janis Hutz - [Algorithms & Datastructures Summary (EN)](./semester1/algorithms-and-datastructures/ad-janishutz.pdf) Author: Janis Hutz
- [Linear Algebra Cheat-Sheet (EN)](./semester1/linear-algebra/linAlg-janishutz.pdf) Author: Janis Hutz - [Linear Algebra Cheat-Sheet (EN)](./semester1/linear-algebra/linAlg-janishutz.pdf) Author: Janis Hutz

View File

@@ -33,8 +33,9 @@
\begin{center} \begin{center}
HS2024, ETHZ\\[0.2cm] HS2024, ETHZ\\[0.2cm]
\begin{Large} \begin{Large}
\textsc{Summary of all algorithms discussed} \textsc{Summary of the full course}
\end{Large}\\[0.2cm] \end{Large}\\[0.2cm]
\hlurl{https://github.com/janishutz/eth-summaries}
\end{center} \end{center}

View File

@@ -1,6 +1,8 @@
\newsection \newsection
\section{Combinatorics} \section{Combinatorics}
\subsection{Introduction} \subsection{Introduction}
Please note: This section was not part of the book and is written in very simple terms (it is taken from a summary I wrote 4 years ago during Gymnasium)
Combinatorics was developed from the willingness of humans to gamble and the fact that everybody wanted to win as much money as possible. Combinatorics was developed from the willingness of humans to gamble and the fact that everybody wanted to win as much money as possible.
\subsection{Simple counting operations} \subsection{Simple counting operations}

View File

@@ -1,2 +1,27 @@
\newsectionNoPB \newsectionNoPB
\subsection{Higher derivatives} \subsection{Higher derivatives}
\shortdef $f$ is in class $C^1$ if $f$ is differentiable and all its partial derivatives are continuous.
$f$ is of class $C^k$ if it is differentiable and each of its partial derivatives are in $C^{k - 1}$.
If $f \in C^k(X; \R^m)$ for all $k \geq 1$, then $f \in C^\infty(X; \R^m)$\\
% ────────────────────────────────────────────────────────────────────
\setLabelNumber{all}{4}
\compactproposition{Mixed derivatives commute} $\partial_{x, y} f = \partial_{y, x}$, as well as $\partial_{x, y, z} = \partial_{x, z, y} = \ldots$, etc (all mixed derivatives commute)
Since we have symmetry, we can use the notation $\partial_{x_1^{m_1}, \ldots, x_n^{m_n}} f = \frac{\partial^k}{\partial x^m} f = D^m f = \partial^m f$,
where $m = (m_1, \ldots, m_n)$ and $m_1 + \ldots + m_n = k$.
There are ${n + k - 1 \choose k}$ possible values for $m$ and e.g. $(1, 1, 2)$ corresponds to the derivative $\frac{\partial^4 f}{\partial x \partial y \partial^2 z}$\\
% ────────────────────────────────────────────────────────────────────
\stepLabelNumber{all}
\shortremark Due to linearity of the partial derivative $\partial_x^m(a f_1 + b f_2) = a \partial_x^m f_1 + b \partial_x^m f_2$\\
% ────────────────────────────────────────────────────────────────────
\stepLabelNumber{all}
\compactex{Laplace operator} $f \in C^2(X)$, $\nabla f \in C_1(X; \R^n)$, so
$\displaystyle \text{div}(\nabla f) = \sum_{i = 1}^{n} \frac{\partial}{\partial_{x_i}} \left( \frac{\partial f}{\partial_{x_i}} \right)
= \sum_{i = 1}^{n} \frac{\partial^2 f}{\partial x^2_i}$ (called \bi{Laplacian}, $\Delta f$)\\
% ────────────────────────────────────────────────────────────────────
\compactdef{Hessian} $f : X \rightarrow \R$ in $C^2$. For $x \in X$, the \bi{Hessian matrix} of $f$ at $x$ is the symmetric square matrix
\vspace{-0.75pc}
\begin{align*}
\text{Hess}_f(x) = (\partial_{x_i, x_j} f)_{1 \leq i, j \leq n} = H_f(x) \mediumhspace (\text{$i$-th row, $j$-th column})
\end{align*}
\drmvspace

View File

@@ -1,2 +1,5 @@
\newsectionNoPB \newsectionNoPB
\subsection{Change of variable} \subsection{Change of variable}
The idea is to substitute variables for others that make the equation easier to solve.
A common example is to switch to polar coordinates from cartesian coordinates, as already demonstrated with continuity checks
% TODO: Add notes from TA notes

View File

@@ -1,2 +1,25 @@
\newsectionNoPB \newsectionNoPB
\subsection{Taylor polynomials} \subsection{Taylor polynomials}
\compactdef{Taylor polynomials}
Let $f : X \rightarrow \R$ with $f \in C^k(X, \R)$ and $y \in X$. The Taylor-Polynomial of order $k$ of $f$ at $y$ is:
\vspace{-0.75pc}
\begin{align*}
T_k f(y; x - y) = \sum_{|i| \leq k} \frac{\partial_i f(y)(x - y)^i}{i!}
\end{align*}
\drmvspace\rmvspace
% TODO: Find out what the \partial_1 notation means (likely TA notes 09)
where $i$ is a \textit{multi-index}, so:
\drmvspace
\begin{multicols}{3}
\begin{itemize}[noitemsep]
\item $i = (i_1, \ldots, i_n)$ (each $i_j \geq 0$)
\item $|i| = i_1 + \ldots + i_n$
\item $\partial_i = \partial_1^{i_1} \ldots \partial_n^{i_n}$
\item $(x - y)^i = (x_1 - y_1)^{i_1} \cdot \ldots \cdot (x_n - y_n)^{i_n}$
\item $i! = i_1! \cdot \ldots \cdot i_n!$
\end{itemize}
\end{multicols}
\drmvspace\rmvspace
The concept this formula uses is that we iterate through all possible partial derivatives of $f$ and assigns each a multi-index $i$

Binary file not shown.

View File

@@ -3,7 +3,7 @@
\input{~/projects/latex/dist/full.tex} \input{~/projects/latex/dist/full.tex}
\usepackage{lmodern} \usepackage{lmodern}
% \usepackage{pgfplots} \usepackage{pgfplots}
\setFontType{sans} \setFontType{sans}
\renewcommand{\authorTitle}{Robin Bacher, Janis Hutz\\\url{https://github.com/janishutz/eth-summaries}} \renewcommand{\authorTitle}{Robin Bacher, Janis Hutz\\\url{https://github.com/janishutz/eth-summaries}}
@@ -23,23 +23,53 @@
% │ Title page │ % │ Title page │
% ╰────────────────────────────────────────────────╯ % ╰────────────────────────────────────────────────╯
\vspace{2cm} \vspace{2cm}
\begin{Huge} \begin{center}
\begin{center} \begin{tikzpicture}
TITLE PAGE COMING SOON \begin{axis}[
\end{center} legend pos=outer north east,
\end{Huge} axis lines = box,
xlabel = size $n$,
ylabel = Time ($s$),
variable = t,
trig format plots = rad,
]
\addplot [
domain=1:10,
samples=100,
color=blue,
]
{x^2};
\addlegendentry{$t = n^2$}
\addplot [
domain=1:10,
samples=100,
color=green,
]
{5 * x};
\addlegendentry{$t = 5n$}
\addplot [
domain=1:10,
samples=100,
color=red,
]
{2^x};
\addlegendentry{$t = 2^n$}
\end{axis}
\end{tikzpicture}
\end{center}
\vspace{4cm}
\vspace{3cm}
\begin{center} \begin{center}
\begin{Large} \begin{Large}
\quote{Wenn ich keine Lust habe, das zu berechnen, dann wende ich einfach Gewalt an} \quote{Wenn ich keine Lust habe, das zu berechnen, dann wende ich einfach Gewalt an}
\end{Large} \end{Large}
\hspace{3cm} - Vasile Gradinaru, 2025 \hspace{3cm} - Prof. Dr. Vasile Gradinaru, 2025
\end{center} \end{center}
\vspace{3cm} \vspace{2cm}
\begin{center} \begin{center}
HS2025, ETHZ\\[0.2cm] HS2025, ETHZ\\[0.2cm]
\begin{Large} \begin{Large}
@@ -65,15 +95,18 @@
\newpage \newpage
\setcounter{section}{-1} \setcounter{section}{-1}
\section{Introduction} \section{Introduction}
This summary is intended to give you a broad overview of the topics relevant for the exam and is not intended to serve as a full on replacement for the script. This summary is intended to give you a broad overview of the topics relevant for the exam.
While it aims to serve as a full on replacement for the script, please do not fully rely on it, as there may be mistakes, inaccuracies and missing details as compared to the script.
Furthermore, you will only have access to the script during the exam, so getting familiar with the script is a good idea.
We have decided to write it in German, as is the new script and for some of the topics that are poorly explained in the script, we have added further explanations. We have decided to write it in German, as is the new script and for some of the topics that are poorly explained in the script, we have added further explanations.
The numbering should match the script's numbering exactly (apart from the cases where two definitions were combined due to being closely related and short), making it easier for you to look up the relevant definitions, theorems, etc in context in the script. The numbering should match the script's numbering exactly (apart from the cases where two definitions were combined due to being closely related and short),
making it easier for you to look up the relevant definitions, theorems, etc in context in the script.
Many of the figures in this summary were taken directly from the Script or Lecture notes created by Professor Vasile Gradinaru. Many of the figures in this summary were taken directly from the Script or Lecture notes created by Professor Vasile Gradinaru.
We have also taken some explanations and code examples from the slides of our TA, Nils Müller, whose slides can be found We have also taken some explanations and code examples from the slides of our TA, Nils Müller, whose slides can be found
\color{MidnightBlue}\fbox{\href{https://n.ethz.ch/~muellerni/courses/numcs25.php}{here}}\color{black} \hlhref{https://n.ethz.ch/~muellerni/courses/numcs25.php}{here}. (Link will be updated if we are to get a new website link from him, as n.ethz.ch is down now)
% TODO: Update this when n.ethz is taken offline completely % TODO: Update this when n.ethz is taken offline completely
% ──────────────────────────────────────────────────────────────────── % ────────────────────────────────────────────────────────────────────

View File

@@ -98,6 +98,7 @@ für alle Funktionen zweimal stetig differenzierbaren Funktionen $g$, für welch
||f^{(k)} - s^{(k)}||_{L^\infty} \leq \frac{5}{384} h^{4 - k} ||f^{(4)}||_{L^\infty} ||f^{(k)} - s^{(k)}||_{L^\infty} \leq \frac{5}{384} h^{4 - k} ||f^{(4)}||_{L^\infty}
\end{align*} \end{align*}
\end{theorem} \end{theorem}
Zur Erinnerung, $C^4$ ist die Klasse aller vier (oder mehr) mal ableitbaren Funktionen.
\innumpy verwendet \texttt{scipy.interpolate.CubicSpline} aktuell die ``not-a-knot''-Bedingung. \innumpy verwendet \texttt{scipy.interpolate.CubicSpline} aktuell die ``not-a-knot''-Bedingung.
Es ist möglich mithilfe von \texttt{bc\_type} beim Instanziieren der Klasse die Art des Splines zu ändern. Es ist möglich mithilfe von \texttt{bc\_type} beim Instanziieren der Klasse die Art des Splines zu ändern.

Binary file not shown.

View File

@@ -17,24 +17,59 @@
\startDocument \startDocument
\usetcolorboxes \usetcolorboxes
\vspace{2cm} \vspace{1cm}
\begin{Huge} \begin{center}
\begin{center} \begin{tikzpicture}[node distance = 1cm and 2cm, >={Stealth[round]}]
TITLE PAGE COMING SOON \node[state, initial left, accepting] (q0p0) {$q_0, p_0$};
\end{center} \node[state] (q0p1) [right=of q0p0] {$q_0, p_1$};
\end{Huge} \node[state] (q0p2) [right=of q0p1] {$q_0, p_2$};
\node[state, accepting] (q1p0) [below=of q0p0] {$q_1, p_0$};
\node[state] (q1p1) [right=of q1p0] {$q_1, p_1$};
\node[state] (q1p2) [right=of q1p1] {$q_1, p_2$};
\node[state, accepting] (q2p0) [below=of q1p0] {$q_2, p_0$};
\node[state, accepting] (q2p1) [right=of q2p0] {$q_2, p_1$};
\node[state, accepting] (q2p2) [right=of q2p1] {$q_2, p_2$};
\path[->]
% Level 0
(q0p0) edge node [above] {a} (q0p1)
(q0p1) edge node [above] {a} (q0p2)
(q0p2) edge [bend right] node [above] {a} (q0p0)
% Level 0 to level 1
(q0p0) edge node [right] {b} (q1p0)
(q0p1) edge node [right] {b} (q1p1)
(q0p2) edge node [right] {b} (q1p2)
% Level 1 to level 2
(q1p0) edge node [above] {a} (q2p1)
(q1p1) edge node [above] {a} (q2p2)
(q1p2) edge node [right, xshift=0.3cm] {a} (q2p0)
% Level 2 to level 1
(q2p0) edge node [right] {b} (q1p0)
(q2p1) edge node [above left, yshift=0.1cm] {b} (q1p1)
(q2p2) edge node [right] {b} (q1p2)
% Level 2
(q2p0) edge node [above] {a} (q2p1)
(q2p1) edge node [above] {a} (q2p2)
(q2p2) edge [bend left] node [below] {a} (q2p0)
% ────────────────────────────────────────────────────────────────────
% Loops on level 1
(q1p0) edge [loop left] node {b} ()
(q1p1) edge [loop left] node {b} ()
(q1p2) edge [loop left] node {b} ();
\end{tikzpicture}
\end{center}
\vspace{4cm} \vspace{2.5cm}
\begin{center} \begin{center}
\begin{Large} \begin{Large}
``\textit{Sie können also alle C Programme in Kanonischer Ordnung aufzählen. Sollten Sie dies tun. Wahrscheinlich nicht. Was aber zählt ist, sie \textbf{können} es tun}'' ``\textit{Sie können also alle C Programme in Kanonischer Ordnung aufzählen. Sollten Sie dies tun? Wahrscheinlich nicht. Was aber zählt ist, sie \textbf{können} es tun}''
\end{Large} \end{Large}
\hspace{3cm} - Prof. Dr. Dennis Komm, 2025 \hspace{3cm} - Prof. Dr. Dennis Komm, 2025
\end{center} \end{center}
\vspace{3cm} \vspace{2cm}
\begin{center} \begin{center}
HS2025, ETHZ\\[0.2cm] HS2025, ETHZ\\[0.2cm]
\begin{Large} \begin{Large}

View File

@@ -2,6 +2,8 @@
\section{Combinatorics} \section{Combinatorics}
\label{sec:combinatorics} \label{sec:combinatorics}
\subsection{Introduction} \subsection{Introduction}
Please note: This section was not part of the book and is written in very simple terms (it is taken from a summary I wrote 4 years ago during Gymnasium)
Combinatorics was developed from the willingness of humans to gamble and the fact that everybody wanted to win as much money as possible. Combinatorics was developed from the willingness of humans to gamble and the fact that everybody wanted to win as much money as possible.
\subsection{Simple counting operations} \subsection{Simple counting operations}

Binary file not shown.

View File

@@ -12,25 +12,58 @@
\newcommand{\lempty}{L_{\text{empty}}} \newcommand{\lempty}{L_{\text{empty}}}
\renewcommand{\tc}{\text{Time}} \renewcommand{\tc}{\text{Time}}
\newcommand{\spc}{\text{Space}} \newcommand{\spc}{\text{Space}}
\usetikzlibrary{automata, positioning, arrows.meta}
\begin{document} \begin{document}
\startDocument \startDocument
\usetcolorboxes \usetcolorboxes
\vspace{2cm} \vspace{1cm}
\begin{Huge} \begin{center}
\begin{center} \begin{tikzpicture}[node distance = 1cm and 2cm, >={Stealth[round]}]
TITLE PAGE COMING SOON \node[state, initial left, accepting] (q0p0) {$q_0, p_0$};
\end{center} \node[state] (q0p1) [right=of q0p0] {$q_0, p_1$};
\end{Huge} \node[state] (q0p2) [right=of q0p1] {$q_0, p_2$};
\node[state, accepting] (q1p0) [below=of q0p0] {$q_1, p_0$};
\node[state] (q1p1) [right=of q1p0] {$q_1, p_1$};
\node[state] (q1p2) [right=of q1p1] {$q_1, p_2$};
\node[state, accepting] (q2p0) [below=of q1p0] {$q_2, p_0$};
\node[state, accepting] (q2p1) [right=of q2p0] {$q_2, p_1$};
\node[state, accepting] (q2p2) [right=of q2p1] {$q_2, p_2$};
\path[->]
% Level 0
(q0p0) edge node [above] {a} (q0p1)
(q0p1) edge node [above] {a} (q0p2)
(q0p2) edge [bend right] node [above] {a} (q0p0)
% Level 0 to level 1
(q0p0) edge node [right] {b} (q1p0)
(q0p1) edge node [right] {b} (q1p1)
(q0p2) edge node [right] {b} (q1p2)
% Level 1 to level 2
(q1p0) edge node [above] {a} (q2p1)
(q1p1) edge node [above] {a} (q2p2)
(q1p2) edge node [right, xshift=0.3cm] {a} (q2p0)
% Level 2 to level 1
(q2p0) edge node [right] {b} (q1p0)
(q2p1) edge node [above left, yshift=0.1cm] {b} (q1p1)
(q2p2) edge node [right] {b} (q1p2)
% Level 2
(q2p0) edge node [above] {a} (q2p1)
(q2p1) edge node [above] {a} (q2p2)
(q2p2) edge [bend left] node [below] {a} (q2p0)
% ────────────────────────────────────────────────────────────────────
% Loops on level 1
(q1p0) edge [loop left] node {b} ()
(q1p1) edge [loop left] node {b} ()
(q1p2) edge [loop left] node {b} ();
\end{tikzpicture}
\end{center}
\vspace{4cm} \vspace{3cm}
\begin{center} \begin{center}
\begin{Large} \begin{Large}
``\textit{Wenn Sie die Turing-Maschine als Touring-Maschine in der Prüfung schreiben, dann macht mich das sehr traurig. Ich seh das jeweils. Teilweise sind das sehr elaborierte Trolle, manchmal Leute die nie in die Vorlesungen kommen} (2025-10-14T08:51Z+02:00``) ``\textit{Sie können also alle C Programme in Kanonischer Ordnung aufzählen. Sollten Sie dies tun? Wahrscheinlich nicht. Was aber zählt ist, sie \textbf{können} es tun}''
``\textit{Sie können also alle C Programme in Kanonischer Ordnung aufzählen. Sollten Sie dies tun. Wahrscheinlich nicht. Was aber zählt ist, sie \textbf{können} es tun}''
\end{Large} \end{Large}
\hspace{3cm} - Prof. Dr. Dennis Komm, 2025 \hspace{3cm} - Prof. Dr. Dennis Komm, 2025
@@ -52,7 +85,7 @@
\begin{scriptsize} \begin{scriptsize}
\begin{itemize} \begin{itemize}
\item \textit{Note: Definitions, Lemmas, etc are often 1:1 copies from the book or paraphrased (as I did not find an easier way of stating them)} \item \textit{Note: Definitions, Lemmas, etc are often 1:1 copies from the book or paraphrased (as I did not find an easier way of stating them)}
\item \textit{Note: In case I forgot to add the PDF page numbers, you can take the PDF page number is given by $P_{\text{PDF}} = P_{\text{Book}} + 15$} \item \textit{Note: In case I forgot to add the PDF page numbers, the PDF page number is given by $P_{\text{PDF}} = P_{\text{Book}} + 15$}
\end{itemize} \end{itemize}
\end{scriptsize} \end{scriptsize}