Skip to content

Commit 2f56c71

Browse files
Sven FeyerabendSven Feyerabend
authored andcommitted
feat(vorkurs.cls): chapter based sheet content
This changes the way sheets are assembled from the individual folders and files. See `0/` for an example.
1 parent a67662e commit 2f56c71

6 files changed

Lines changed: 226 additions & 7 deletions

File tree

sheets/0/0/chapter.tex

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
% !TeX root = ../jvk-blatt0.tex
2+
3+
\vkchapter{Einführung}
4+
5+
lorem ipsum
6+
7+
\addexcercise

sheets/0/0/exercise-1.tex

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
% !TeX root = ../jvk-blatt0.tex
2+
3+
\excercise{Programmstart}
4+
\label{ex1}
5+
6+
\begin{Infobox}[How-To: Wie bekomme ich des Projekt]
7+
\begin{enumerate}[label=\arabic*.]
8+
9+
\item Nachdem das Zip-File "\jvkpackage"\ heruntergeladen wurde, muss man es in einem geeigneten Ordner entpacken.\\
10+
\textbf{Windows:} Entpacken funktioniert durch einen Rechtsklick auf die Datei und dann durch Klicken auf \fbox{Alle extrahieren...}$\to$\fbox{Extrahieren}.\\
11+
\textbf{Linux:} Am schnellsten entpackt man ein Zip-File über das Terminal mit dem Befehl:
12+
\newline\hspace*{\fill}\texttt{\textgreater\ unzip jvk-<versionsnummer>.zip}\hspace*{\fill}\newline
13+
\textit{Hinweis: <> symbolisiert Platzhalter. Bitte mit aktueller Versionsnummer ersetzen.}\newline
14+
\textbf{Apple:} Nachdem man das Zip-File im Finder offen hat, entpackt man es durch einen einfachen Doppelklick.
15+
\end{enumerate}
16+
\end{Infobox}
17+
18+
19+
\begin{Infobox}[How-To: Projekt Import in Eclipse]
20+
\begin{enumerate}[label=\arabic*.]
21+
\item Um ein Projekt zu importieren, klicke zuerst auf \fbox{File} $\to$ \fbox{Import...}.
22+
\item Wähle in der Auswahl \fbox{Maven} $\to$ \fbox{Existing Maven Projects} oder nutze das Suchfeld oben um \fbox{Existing Maven Projects} zu finden. Klicke dann auf \fbox{Next \textgreater}.
23+
\item Drücke oben rechts auf \fbox{Browse...} und suche das Verzeichnis, in welchem die Datei \jvkpackage { }entpackt wurde.
24+
\item Stelle sicher, dass der Projektname im \textit{Projects} Bereich des Fensters auftaucht.
25+
\item Zu guter Letzt noch auf \fbox{Finish} drücken.
26+
\item Nachdem sich das Fenster geschlossen hat, siehst du das Projekt im \textit{Package Explorer} links an der Seite.
27+
\item Damit das Projekt richtig funktioniert, solltet du im \textit{Package Explorer} das Projekt mit einem Rechtsklick auswählen und dann im Kontextmenü \fbox{Maven} $\to$ \fbox{Update Project...} $\to$ \fbox{OK} ausführen.
28+
\end{enumerate}
29+
\end{Infobox}
30+
31+
32+
\newpage
33+
34+
\begin{enumerate}
35+
\item
36+
\begin{itemize}
37+
\item Öffne die \texttt{Main}-Datei in dem Dateiexplorer auf der linken Seite.
38+
Navigiere dazu in den \texttt{src/main/java} Ordner und wähle dann das Paket \texttt{de.unistuttgart.informatik.fius.jvk} aus.
39+
\item Starte als nächstes das Projekt, um zu schauen ob alles klappt.
40+
Drücke dazu den grünen Play Button $\vartriangleright$ oben.
41+
\item Wenn du bei der Installation alles richtig gemacht hast, sollten jetzt keine Fehler (roter Text) auftreten.
42+
Da wir noch nichts programmiert haben, sollte aber auch sonst nichts passieren.
43+
\begin{center}
44+
%\includegraphics[width=\linewidth]{./figures/ide.jpg}
45+
\end{center}
46+
\end{itemize}
47+
48+
\item Finde in der \lstinline{Main} Klasse die Zeile mit \lstinline{// implement task 1 (from sheet 1) here} und füge an seiner Stelle den fehlenden Code aus dem Bild ein.
49+
Aktuell musst du den Code noch nicht verstehen, es geht darum den Code Editor in Eclipse kennenzulernen.
50+
Achte also darauf was passiert während du die fehlenden Zeilen eingibst.
51+
52+
\begin{lstlisting}
53+
public class Main {
54+
/**
55+
* The main entry point of the project
56+
*
57+
* @param args
58+
* the command line args; not used
59+
*/
60+
public static void main(String[] args) {
61+
// implement task 1 (from sheet 1) here
62+
Game demoGame = new Game("Hello World", new DemoTask(), new DemoTaskVerifier());
63+
demoGame.run();
64+
}
65+
}
66+
\end{lstlisting}
67+
68+
Wenn das Programm jetzt durch drücken des Play Buttons ausgeführt wird, geht ein Fenster mit der Simulator Ansicht auf.
69+
Suche als nächstes die (rote) Stop Taste in Eclipse um das Programm abzubrechen.
70+
Die Taste befindet sich in Eclipse unten in der Titelleiste der Console.
71+
\item Versuche nun den Code so zu verändern, dass dein Name im Fenstertitel steht.
72+
\end{enumerate}
73+
74+
75+
\begin{Infobox}[Optionale Aufgaben]
76+
Aufgaben die mit \optional markiert, sind müssen nicht bearbeitet werden.
77+
Sie setzen schon Vorkenntnisse in Java oder Programmieren voraus und sind deshalb auch oft deutlich schwerer als die normalen Aufgaben.
78+
Wenn du also an einer optionalen Aufgabe festhängst, dann solltest du mit der nächsten normalen Aufgabe weitermachen.
79+
Später, wenn du genug Zeit oder Wissen hast um die optionale Aufgabe zu lösen, kannst du nochmal zu ihr zurückkehren.
80+
\end{Infobox}
81+
82+
83+
\begin{enumerate} \setcounter{enumi}{3}
84+
\item \optional Finde eine Möglichkeit, den Fenstertitel nach der \lstinline{demoGame.run();} Zeile zu ändern.
85+
Dafür benötigst du den folgenden Code, den du aber noch auf deinen Namen anpassen musst: \lstinline{demoGame.getGameWindow().setWindowTitle("");}
86+
\item \optional Versuche, drei Fenster gleichzeitig zu starten.
87+
\end{enumerate}

sheets/0/1/chapter.tex

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
% !TeX root = ../jvk-blatt0.tex
2+
3+
\vkchapter{Einführung}
4+
5+
lorem ipsum
6+
7+
\addexcercise

sheets/0/1/exercise-1.tex

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
% !TeX root = ../jvk-blatt0.tex
2+
3+
\excercise{Programmstart}
4+
\label{ex1}
5+
6+
\begin{Infobox}[How-To: Wie bekomme ich des Projekt]
7+
\begin{enumerate}[label=\arabic*.]
8+
9+
\item Nachdem das Zip-File "\jvkpackage"\ heruntergeladen wurde, muss man es in einem geeigneten Ordner entpacken.\\
10+
\textbf{Windows:} Entpacken funktioniert durch einen Rechtsklick auf die Datei und dann durch Klicken auf \fbox{Alle extrahieren...}$\to$\fbox{Extrahieren}.\\
11+
\textbf{Linux:} Am schnellsten entpackt man ein Zip-File über das Terminal mit dem Befehl:
12+
\newline\hspace*{\fill}\texttt{\textgreater\ unzip jvk-<versionsnummer>.zip}\hspace*{\fill}\newline
13+
\textit{Hinweis: <> symbolisiert Platzhalter. Bitte mit aktueller Versionsnummer ersetzen.}\newline
14+
\textbf{Apple:} Nachdem man das Zip-File im Finder offen hat, entpackt man es durch einen einfachen Doppelklick.
15+
\end{enumerate}
16+
\end{Infobox}
17+
18+
19+
\begin{Infobox}[How-To: Projekt Import in Eclipse]
20+
\begin{enumerate}[label=\arabic*.]
21+
\item Um ein Projekt zu importieren, klicke zuerst auf \fbox{File} $\to$ \fbox{Import...}.
22+
\item Wähle in der Auswahl \fbox{Maven} $\to$ \fbox{Existing Maven Projects} oder nutze das Suchfeld oben um \fbox{Existing Maven Projects} zu finden. Klicke dann auf \fbox{Next \textgreater}.
23+
\item Drücke oben rechts auf \fbox{Browse...} und suche das Verzeichnis, in welchem die Datei \jvkpackage { }entpackt wurde.
24+
\item Stelle sicher, dass der Projektname im \textit{Projects} Bereich des Fensters auftaucht.
25+
\item Zu guter Letzt noch auf \fbox{Finish} drücken.
26+
\item Nachdem sich das Fenster geschlossen hat, siehst du das Projekt im \textit{Package Explorer} links an der Seite.
27+
\item Damit das Projekt richtig funktioniert, solltet du im \textit{Package Explorer} das Projekt mit einem Rechtsklick auswählen und dann im Kontextmenü \fbox{Maven} $\to$ \fbox{Update Project...} $\to$ \fbox{OK} ausführen.
28+
\end{enumerate}
29+
\end{Infobox}
30+
31+
32+
\newpage
33+
34+
\begin{enumerate}
35+
\item
36+
\begin{itemize}
37+
\item Öffne die \texttt{Main}-Datei in dem Dateiexplorer auf der linken Seite.
38+
Navigiere dazu in den \texttt{src/main/java} Ordner und wähle dann das Paket \texttt{de.unistuttgart.informatik.fius.jvk} aus.
39+
\item Starte als nächstes das Projekt, um zu schauen ob alles klappt.
40+
Drücke dazu den grünen Play Button $\vartriangleright$ oben.
41+
\item Wenn du bei der Installation alles richtig gemacht hast, sollten jetzt keine Fehler (roter Text) auftreten.
42+
Da wir noch nichts programmiert haben, sollte aber auch sonst nichts passieren.
43+
\begin{center}
44+
%\includegraphics[width=\linewidth]{./figures/ide.jpg}
45+
\end{center}
46+
\end{itemize}
47+
48+
\item Finde in der \lstinline{Main} Klasse die Zeile mit \lstinline{// implement task 1 (from sheet 1) here} und füge an seiner Stelle den fehlenden Code aus dem Bild ein.
49+
Aktuell musst du den Code noch nicht verstehen, es geht darum den Code Editor in Eclipse kennenzulernen.
50+
Achte also darauf was passiert während du die fehlenden Zeilen eingibst.
51+
52+
\begin{lstlisting}
53+
public class Main {
54+
/**
55+
* The main entry point of the project
56+
*
57+
* @param args
58+
* the command line args; not used
59+
*/
60+
public static void main(String[] args) {
61+
// implement task 1 (from sheet 1) here
62+
Game demoGame = new Game("Hello World", new DemoTask(), new DemoTaskVerifier());
63+
demoGame.run();
64+
}
65+
}
66+
\end{lstlisting}
67+
68+
Wenn das Programm jetzt durch drücken des Play Buttons ausgeführt wird, geht ein Fenster mit der Simulator Ansicht auf.
69+
Suche als nächstes die (rote) Stop Taste in Eclipse um das Programm abzubrechen.
70+
Die Taste befindet sich in Eclipse unten in der Titelleiste der Console.
71+
\item Versuche nun den Code so zu verändern, dass dein Name im Fenstertitel steht.
72+
\end{enumerate}
73+
74+
75+
\begin{Infobox}[Optionale Aufgaben]
76+
Aufgaben die mit \optional markiert, sind müssen nicht bearbeitet werden.
77+
Sie setzen schon Vorkenntnisse in Java oder Programmieren voraus und sind deshalb auch oft deutlich schwerer als die normalen Aufgaben.
78+
Wenn du also an einer optionalen Aufgabe festhängst, dann solltest du mit der nächsten normalen Aufgabe weitermachen.
79+
Später, wenn du genug Zeit oder Wissen hast um die optionale Aufgabe zu lösen, kannst du nochmal zu ihr zurückkehren.
80+
\end{Infobox}
81+
82+
83+
\begin{enumerate} \setcounter{enumi}{3}
84+
\item \optional Finde eine Möglichkeit, den Fenstertitel nach der \lstinline{demoGame.run();} Zeile zu ändern.
85+
Dafür benötigst du den folgenden Code, den du aber noch auf deinen Namen anpassen musst: \lstinline{demoGame.getGameWindow().setWindowTitle("");}
86+
\item \optional Versuche, drei Fenster gleichzeitig zu starten.
87+
\end{enumerate}

sheets/0/jvk-blatt0.tex

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
%!TEX root = ./jvk-blatt0.tex
2+
\def\firstChapter{0}
3+
\def\sheetNumber{0}
4+
5+
\documentclass{../vorkurs}
6+
7+
\makedocument

sheets/vorkurs.cls

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -158,31 +158,55 @@
158158
\ifthenelse{\value{excerciseCounter}=1}{}{
159159
\vspace{2em}
160160
}
161-
\section{-\quad#1}
161+
\subsection{-\quad#1}
162162
%\large\textbf{Aufgabe \arabic{excerciseCounter}:} #1\normalsize\\
163163
\medskip
164164
}
165+
165166
\makeatletter
166-
\renewcommand\thesection{Aufgabe \@arabic\c@section}
167+
\renewcommand\thesubsection{Aufgabe \@arabic\c@subsection}
167168
\makeatother
168169
\setenumerate{label=\alph*)}
169170

171+
\newcounter{vkchapterCounter}\setcounter{vkchapterCounter}{\firstChapter}
172+
\newcommand{\vkchapter}[1]{
173+
\ifthenelse{\value{vkchapterCounter}=\firstChapter}{}{
174+
\vspace{2em}
175+
}
176+
\section{-\quad#1}
177+
\medskip
178+
}
179+
180+
\makeatletter
181+
\renewcommand\thesection{Kapitel \@arabic\c@vkchapterCounter}
182+
\makeatother
183+
\setenumerate{label=\alph*}
170184

171185
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
172186
% Automatic Document inclusion %
173187
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
174188

175189
\newcommand{\addexcercise}{
176-
\IfFileExists{exercise-\arabic{excerciseCounter}.tex}{
190+
\IfFileExists{\arabic{vkchapterCounter}/exercise-\arabic{excerciseCounter}.tex}{
177191
\begin{samepage}
178-
\input{exercise-\arabic{excerciseCounter}.tex}
192+
\input{\arabic{vkchapterCounter}/exercise-\arabic{excerciseCounter}.tex}
179193
\pagebreak[4]
180194
\end{samepage}
181195
\stepcounter{excerciseCounter}
182-
\addexcercise
183196
}{}
184197
}
185198

199+
\newcommand{\addchapter}{
200+
\IfFileExists{\arabic{vkchapterCounter}/chapter.tex}{
201+
\begin{samepage}
202+
\input{\arabic{vkchapterCounter}/chapter.tex}
203+
\pagebreak[4]
204+
\end{samepage}
205+
\stepcounter{vkchapterCounter}
206+
\setcounter{excerciseCounter}{1}
207+
\addchapter
208+
}{}
209+
}
186210

187211
%%%%%%%%%%%
188212
% Infobox %
@@ -284,6 +308,6 @@
284308
\input{intro.tex}
285309
\end{samepage}
286310
}{}
287-
\addexcercise
311+
\addchapter
288312
\end{document}
289-
}
313+
}

0 commit comments

Comments
 (0)