Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eigene computer part in main script #124

Closed
wants to merge 8 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
apk add g++
apk add zip
make script zip
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
with:
name: PDF
path: vorkurs.pdf
Expand All @@ -25,4 +25,4 @@ jobs:
files: |
vorkurs.pdf
vorkurs.zip


18 changes: 6 additions & 12 deletions basics/hello_world.tex
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,7 @@
\textbf{Wie gehe ich dabei vor?}

Um den Programmcode in eine Textdatei zu schreiben verwenden wir einen Texteditor.
Dies kann mit fast jedem einfachen Texteditor bewerkstelligt werden. Wir verwenden beispielsweise im Vokurs gedit unter Ubuntu.
Unter Windows kannst du den Editor oder notepad++ verwenden, unter MacOS Textedit.
In der fortgeschrittenen Programmierung werden intelligente Programmierumgebungen verwendet, die jedoch in diesem Kurs vernachlässigt werden.

Dies kann mit fast jedem einfachen Texteditor bewerkstelligt werden. Populäre Konsolenbasierte Editoren sind \texttt{vim} und \texttt{nano}. Es existieren auch intelligente Editoren, die speziell für das Schreiben von Programmcode entwickelt wurden, wie \texttt{Visual Studio Code} oder \texttt{CLion}.
Um dem Compiler zusagen, welche Textdatei er in ein Programm übersetzen soll, verwenden wir die sogenannte Shell. Vorerst reicht uns zu wissen, dass die Shell
ein Werkzeug ist, um dem Computer spezifisch zu sagen, was er machen soll (mehr dazu im folgenden Kapitel). In Ubuntu verwenden wir hierzu das Terminal, ebenso in MacOS,
unter Windows CMD oder Powershell. Ein Befehl für \texttt{g++} (dem Compiler für \Cpp) sieht beispielsweise wie folgt aus:
Expand All @@ -65,7 +62,7 @@
\textbf{Erstes Programm in \Cpp schreiben}

\begin{enumerate}
\item Öffne einen Texteditor (In Ubuntu unter „Zubehör“ den Editor gedit).
\item Erstelle eine neue, leere Datei in einem Editor deiner Wahl.

\item Kopiere folgenden Programmcode in den Texteditor und speichere ihn in einer Datei mit dem Namen „helloworld.cpp“ ab.
Das nähere Verständnis des Programmcodes ist an dieser Stelle nicht notwendig.
Expand All @@ -81,7 +78,7 @@
Was dieser Befehl genau tut und wie er funktioniert, erfahrt ihr in Lektion 2.
\item In diesem Verzeichnis liegt nun eine Datei mit dem Namen \texttt{helloworld.cpp}.
Benutzt \texttt{g++}, um diese zu einer Datei (in diesem Fall dem Programm) \texttt{hello} zu
kompilieren. Orientiert euch dazu an den folgenden Befehlen.
kompilieren. Orientiert euch dazu an den folgenden Befehlen. (siehe Diagramm)
\item Führt die Datei \texttt{hello} aus.
\end{enumerate}
\end{praxis}
Expand All @@ -90,7 +87,7 @@
Zur besseren Übersichtlichkeit hier der ganze Vorgang noch mal in einem
Diagramm:

% TODO: Buttugly, but well...
% TODO: Buttugly, but well... - its gonna stay this way
\begin{center}
\resizebox{\textwidth}{!}{
\begin{tikzpicture}
Expand All @@ -108,11 +105,8 @@
\begin{spiel}

Ihr könnt nun versuchen, den Quellcode selbst zu verändern und damit ein wenig
herumzuspielen. Öffnet dazu einen Editor (in den Anwendungen findet ihr z.B.
unter „Zubehör“ den Editor gedit) und öffnet die Datei
\texttt{vorkurs/lektion01/helloworld.cpp}\footnote{entweder mittels
\glqq{}Datei/Öffnen\grqq{} in gedit oder über das Terminal mittels \texttt{gedit
helloworld.cpp}}. Denkt daran, nach jeder Änderung die Datei zu speichern und
herumzuspielen. Öffnet dazu einen Editor und öffnet die Datei
\texttt{vorkurs/lektion01/helloworld.cpp}\footnote{am besten öffnet ihr in VSCode den gesamten Vorkurs-Ordner}. Denkt daran, nach jeder Änderung die Datei zu speichern und
im Terminal neu zu kompilieren und auszuführen.

Dinge, die ihr ausprobieren könntet sind zum Beispiel:
Expand Down
10 changes: 10 additions & 0 deletions eigene_computer/intro.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
\setcounter{chapter}{-1}
\chapter{Vorbereitung eigener Computer}
\pagestyle{empty}
Dieses Kapitel dient der Vorbereitung privater Computer, um daran den Kurs zu bearbeiten.
Wir werden in diesem Fall den proprietären Editor „Visual Studio Code“ verwenden, welcher \href{https://code.visualstudio.com/Download}{hier} heruntergeladen werden kann.\\

\pagestyle{fancy}
\input{eigene_computer/windows.tex}
\input{eigene_computer/macos.tex}
\input{eigene_computer/linux.tex}
13 changes: 13 additions & 0 deletions eigene_computer/linux.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
\textbf{Linux}

\pagestyle{empty}

Falls ihr privat bereits ein Linux-System nutzt.
\begin{enumerate}
\item Optional: Alternativ zu Visual Studio Code, könnt ihr auch eine Quelloffene Version des Editors verwenden.
Da die Installation dieser Version je nach Distribution variiert, verweisen wir euch an dieser Stelle an eine kurze Internetrecherche.
\item Installiert mit eurem Packagemanager \texttt{g++} und ggf. \texttt{unzip}, sowie \texttt{wget}.
\item Das Archiv mit den Vorkursdateien könnt ihr mit \\
\texttt{wget https://mathphys.info/vorkurs/pvk/vorkurs.zip} herunterladen.
\item Mit \texttt{unzip vorkurs.zip} könnt ihr dieses entpacken.
\end{enumerate}
14 changes: 14 additions & 0 deletions eigene_computer/macos.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
\textbf{MacOS}

\pagestyle{empty}

Der Setup unter MacOS ist im Vergleich zu Windows recht einfach.

\begin{enumerate}
\item Öffnet ein Terminal.
\item Tippt \texttt{g++} ein.
\item Bestätigt in dem erscheinenden Fenster die Installation.
\item Die Dateien des Vorkurses können \href{https://mathphys.info/vorkurs/pvk/vorkurs.zip}{hier} heruntergeladen werden.
\item Entpackt die Dateien in ein Verzeichnis eurer Wahl.
\item In Visual Studio Code könnt ihr dann über den Explorer auf die Dateien des Kurses zugreifen.
\end{enumerate}
27 changes: 27 additions & 0 deletions eigene_computer/windows.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
\textbf{Windows}

\pagestyle{empty}
Um dem Kurs unter Windows folgen zu können sollte zunächst eine Linux-Umgebung erzeugt werden, in der die entsprechenden Tools zur Verfügung stehen. Dafür muss zunächst das so genannte Windows-Subsystem für Linux (kurz WSL) aktiviert werden.
Wie der Name bereits vermuten lässt, erlaubt es das WSL, eine Linux-Umgebung unter Windows zu nutzen.
In dieser werden wir dann die nötigen Tools installieren.
\begin{enumerate}
\item Zunächst muss mittels PowerShell das WSL aktiviert werden. Dafür kann man im Suchfeld des Windows-Desktops einfach nach „PowerShell“ suchen.
Durch einen Rechtsklick kann diese als Administrator gestartet werden, was für die Aktivierung notwendig ist.
\item Hat man die PowerShell als Administrator geöffnet, kann das WSL durch den Befehl \texttt{wsl -{}-install} aktivieren.
\item Das System startet danach einen Download, diesen durchlaufen lassen, und anschließend den PC neu starten.
\item Nach dem Neustart kann in den Programmen „Ubuntu“ gestartet werden.
Wenn ihr an dieser Stelle „Ubuntu“ nicht auswählen könnt, dann ist die Installation unter Umständen noch nicht fertig.
Startet in diesem Fall die PowerShell erneut als Administrator und führt erneut \texttt{wsl -{}-install} aus.
\item In dem erscheinenden Terminal wird zunächst um die Erstellung eines neuen Nutzers für die Linux-Umgebung gebeten.
Hierbei könnt ihr Nutzername und Passwort frei wählen. Bitte notiert euch diese, da ihr sie noch braucht.\\
\textbf{Hinweis zum setzen des Passworts:} Anders als bei Windows werden hier bei der Eingabe keine Sternchen, oder ähnliche Symbole erscheinen, die als Platzhalter für bereits eingegebene Symbole erscheinen.
Das Passwort muss also „blind“ eingegeben werden. Um hier ein eventuelles Vertippen auszuschließen, muss das Passwort nach der ersten Eingabe erneut bestätigt werden.
\item Bevor ihr neue Tools installiert, solltet ihr euer System updaten. Gebt dazu ins Terminal folgende Befehle ein: \texttt{sudo apt update} und danach \texttt{sudo apt upgrade}. Im Allgemeinen empfiehlt es sich, diese Befehle im regelmäßigen Abstand auszuführen um euer System aktuell zu halten. Ihr werdet hier eventuell nach einem Passwort gefragt, ihr müsst hier das eben von euch gesetzte verwenden.
\item Im Anschluss müssen im Terminal mittels \texttt{sudo apt install gdb g++ unzip -y} die nötigen Tools installiert werden.
Der Start des Vorgangs muss dabei wieder mit dem vorhin gesetzten Passwort bestätigt werden.
(Auch hier werden keine Sternchen oder Ähnliches für bereits eingegeben Symbole angezeigt)
\item Jetzt könnt ihr die Dateien des Kurses mittels \\
\texttt{wget https://mathphys.info/vorkurs/pvk/vorkurs.zip} herunterladen.
\item Abschließend könnt ihr das Archiv mit \texttt{unzip vorkurs.zip} entpacken.
\item Die Dateien des Vorkurses können nun mittels \texttt{code vorkurs} über das Terminal geöffnet werden.
\end{enumerate}
106 changes: 106 additions & 0 deletions folien/folien-eigene-computer.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode

\input{header}

\begin{document}
\begin{frame}[plain]
\bookmark[level=0, page=1]{Titel}
\titlepage
\tikz[,overlay]
\node at
(current page.south)
{\includegraphics[width=5cm]{media/MathPhysLogo.pdf}};
\end{frame}

\begin{frame}
\begin{center}
\Huge Eine kurze Einführung
\end{center}
\begin{center}
\pause\Huge Weil das doch ein bisschen anders laufen wird, als ihr es
gewohnt seid\dots
\end{center}
\end{frame}

\begin{frame}
\frametitle{Worum es geht}
\begin{itemize}
\item Ihr habt (fast) noch nie programmiert
\pause\item Ihr müsst alle programmieren
\pause\item Eine Woche Vorbereitung
\pause\item Programmieren kann man nicht „beibringen“, man muss es „lernen“
\item[]
\pause\item[$\Ra$] Wir bringen euch bei, Programmieren zu lernen
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Was wir von euch erwarten}
\begin{itemize}
\item Ihr seid nicht hier, um ein Zertifikat zu bekommen
\pause\item Ihr wollt euch den Programmiervorkurs nicht in den Lebenslauf schreiben
\pause\item Ihr wollt keine Zeit totschlagen
\pause\item Ihr erwartet keinen „Trichter“ von uns
\item[]
\pause\item[$\Ra$] Ihr seid hier, um zu lernen (aktiv)
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Was ihr von uns erwarten könnt}
\begin{itemize}
\item Wir geben euch Hilfsmittel um zu lernen
\pause\item Wir helfen euch, diese Hilfsmittel zu interpretieren
\pause\item Wir helfen euch, weitere Informationen zu finden
\pause\item Wir erklären euch Dinge, die nicht im Skript stehen
\pause\item Wir helfen euch, wenn etwas nicht funktioniert
\pause\item Wir loben euch, wenn ihr mit eurem Können angeben wollt ;)
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Wie das Skript funktioniert}
\begin{itemize}
\item Ihr bekommt von uns ein Skript
\pause\item Das Skript ist aufgeteilt in \emph{Lektionen}
\pause\item Ihr arbeitet die in eurem eigenen Tempo durch
\pause\item Jede Lektion hat einen \emph{Theorie-}, einen
\emph{Praxis-} und einen \emph{Spiel}teil
\pause\item \emph{Theorie}: Wall of Text. Aufmerksam lesen, ggf. später
als Referenz nutzen
\pause\item \emph{Praxis}: (Relativ) einfache Aufgaben, lassen sich
ohne großes Verständnis machen
\pause\item \emph{Spiel}: Herausforderndere, freiere Aufgaben. Hier
sollt ihr selbst erkunden
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Das sollt ihr „lernen“}
\begin{itemize}
\item Ein Computer ist keine schwarze Magie
\pause\item Eine Konsole ist keine schwarze Magie
\pause\item Programmieren ist keine schwarze Magie
\pause\item Ihr wisst, wo ihr anfangt, wenn die Aufgabe ist „schreibt
ein Programm, das\dots“
\pause\item Ihr entwickelt Spaß daran, Programmieraufgaben zu lösen
\pause\item Ihr wisst, was ihr tun könnt, wenn etwas nicht funktioniert
\end{itemize}
\end{frame}

\begin{frame}
\begin{center}
\Huge Einführung Ende
\end{center}
\begin{center}
\begin{itemize}
\huge\pause\item Fragen?
\huge\pause\item Öffentliches WLAN:\\
heidelberg4you
\end{itemize}

\end{center}
\end{frame}

\end{document}
2 changes: 1 addition & 1 deletion orgakram/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Damit bei diesem alles Rund läuft muss man diesen _im Vorraus_ zum Stattfinden
- `group_vars/all.yml`:
- Pfad zu den Source Files und SSH-Keys der Tutoren in `./group_vars/all.yml`
- Die Configdateien in `./roles/pool-setup/files/` bei Bedarf!
- Die Hostsdatei in `inventory/hosts.ini`, s.d. dort das vergebene Präfix und die Anzahl der Nutzer stimmt
- Die Hostsdatei `hosts.ini`, s.d. dort das vergebene Präfix und die Anzahl der Nutzer stimmt

### Häufige Fehler

Expand Down
4 changes: 2 additions & 2 deletions orgakram/ansible.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

# some basic default values...

inventory = inventory/hosts.ini
inventory = hosts.ini
interpreter_python = /usr/bin/python3
#library = /usr/share/my_modules/
#remote_tmp = $HOME/.ansible/tmp
Expand Down Expand Up @@ -47,7 +47,7 @@ forks = 20
#gather_subset = all

# additional paths to search for roles in, colon separated
#roles_path = /etc/ansible/roles
roles_path = roles

# uncomment this to disable SSH key host checking
#host_key_checking = False
Expand Down
File renamed without changes.
1 change: 1 addition & 0 deletions vorkurs.tex
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ \chapter*{Vorwort}

\tableofcontents

\input{eigene_computer/intro.tex}
\input{basics/intro.tex}
\input{classes/intro.tex}

Expand Down
Loading
Loading