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

result of workday 17.09.21 #133

Merged
merged 1 commit into from
Sep 20, 2021
Merged
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
32 changes: 16 additions & 16 deletions sheets/1/exercise-1.tex
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
% !TeX root = ./jvk-blatt1.tex

\newcommand{\jvkpackage}{JavaVorkurs2020\_EclipseProjekt.zip}
\newcommand{\jvkpackageurl}{https://fius.informatik.uni-stuttgart.de/wp-content/uploads/2020/10/JavaVorkurs2020\_EclipseProjekt.zip}
\newcommand{\jvkpackageurl}{https://fius.informatik.uni-stuttgart.de/wp-content/uploads/2020/10/JavaVorkurs2020\_EclipseProjekt.zip}

\excercise{Programmstart}

Expand All @@ -14,7 +14,7 @@
\end{center}

\item Nachdem das Zip-File heruntergeladen wurde, muss man es in einem geeigneten Ordner entpacken.\\
\textbf{Windows:} Entpacken funktioniert durch einen Rechtsklick auf die Datei und dann durch klick auf \fbox{Alle extrahieren...}$\to$\fbox{Extrahieren}.\\
\textbf{Windows:} Entpacken funktioniert durch einen Rechtsklick auf die Datei und dann durch klicken auf \fbox{Alle extrahieren...}$\to$\fbox{Extrahieren}.\\
\textbf{Linux:} Am schnellsten entpackt man ein Zip-File über das Terminal mit dem Befehl:
\newline\hspace*{\fill}\texttt{\textgreater\ unzip \jvkpackage}\hspace*{\fill}\newline
\textbf{Apple:} Nachdem man das Zip-File im Finder offen hat, entpackt man es durch einen einfachen Doppelklick.
Expand Down Expand Up @@ -42,12 +42,12 @@
\begin{enumerate}
\item Finde und öffne die \texttt{Main} Klasse in dem Package Explorer von Eclipse.
Die Klasse ist in dem Ordner \texttt{src/main/java} und dann in dem Package \texttt{de.unistuttgart.informatik.fius.jvk} in der Datei \texttt{Main.java}.
Führe das Projekt aus indem du den grünen Play-Button (links oben in der Werkzeugleiste, rechts neben dem Button mit dem Käfersymbol) von Eclipse drückst.
Es sollten keine Fehler auftauchen aber auch nichts passieren.
Führe das Projekt aus, indem du den grünen Play-Button (links oben in der Werkzeugleiste, rechts neben dem Button mit dem Käfersymbol) von Eclipse drückst.
Es sollten keine Fehler auftauchen, aber auch nichts passieren. %TODO: bild von den buttons
Wir haben ja auch noch nichts programmiert.
\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.
Aktuell musst du den Code noch nicht verstehen, es geht darum den Code Editor in Eclipse kennen zu lernen.
Achte also daruf was passiert während du die fehlenden Zeilen eingibst.
Achte also darauf was passiert während du die fehlenden Zeilen eingibst.

\includegraphics[width=\linewidth]{./figures/code.1.png}

Expand All @@ -61,7 +61,7 @@
\begin{Infobox}[HowTo: Auskommentieren]
Manchmal möchten wir, dass bestimmter Code nicht ausgeführt wird. Vielleicht möchten wir ihn später ausführen, oder einfach nicht verlieren.
In diesen Fällen Kommentieren wir die Code-Zeilen einfach aus.
Dies geht, indem wir der Code-Zeile zwei Schrägstriche (\lstinline{//}) voranstellen.
Dies geht, indem wir der Code-Zeile zwei Schrägstriche (\emph{eng.} slashes)(\lstinline{//}) voranstellen.
Als Beispiel betrachten wir folgenden Code.\\

\hfill
Expand Down Expand Up @@ -93,37 +93,37 @@


\begin{Infobox}[Fehler]
Einige Aufgaben in Blatt 1 (und auch den anderen Blättern) verlangen von euch den Code absichtlich kaputt zu machen.
Einige Aufgaben in Blatt 1 (und auch den anderen Blättern) verlangen von euch, den Code absichtlich kaputt zu machen.
Das Ziel von diesen Aufgaben ist es, dass ihr die Fehler die dabei auftreten schonmal in einem kleinen übersichtlichen Beispiel seht.
Achtet also bei solchen Aufgaben darauf welche Änderung zu welchem Fehler geführt hat.
Achtet also bei solchen Aufgaben darauf, welche Änderung zu welchem Fehler geführt hat.
Später kann euch dieses Wissen helfen, wenn ihr nur den Fehler seht und besser versteht, nach was ihr im Code suchen müsst, um den Fehler zu beheben.

Ihr braucht auch keine Angst haben, dass ihr etwas nachhaltig kaputt machen könntet.
Eclipse hat eine \q{Undo} Funktion die ihr im Menu oben unter \fbox{edit} (deutsch \fbox{Bearbeiten}) oder über \fbox{Strg + z} aufrufen könnt.
Eclipse hat eine \q{Undo}-Funktion die ihr im Menu oben unter \fbox{edit} (deutsch \fbox{Bearbeiten}) oder über \fbox{Strg + z} aufrufen könnt.
Falls ihr trotzdem Hilfe braucht, könnt (\emph{und sollt!}) ihr euch gerne bei den Tutoren melden.
\end{Infobox}


\begin{enumerate} \setcounter{enumi}{3}
\item Finde heraus was passiert, wenn man die erste oder die zweite Zeile in der Main-Funktion auskommentiert.

Hinweis: Nicht alle Varianten funktionieren zwangsläufig, überlege warum dies der Fall sein könnte.
Hinweis: Nicht alle Varianten funktionieren zwangsläufig, Überlege warum dies der Fall sein könnte.
\item Vielleicht sind dir beim Ausprobieren in a) schon einige Dinge aufgefallen die der Eclipse Editor anders macht als zum Beispiel Word.
Wenn du \lstinline{demoGame.} eingibst erscheint ein Overlay mit möglichen Autocompletions.
Wenn du dann mit dem Cursor an eine andere Stelle gehst verschwindet das Overlay wieder.
Öffne das overlay manuell indem du den Cursor direkt nach \lstinline{demoGame.} platzierst und \fbox{Strg + Space} (Space ist die Leertaste) drückst.
Öffne das Overlay manuell, indem du den Cursor direkt nach \lstinline{demoGame.} platzierst und \fbox{Strg + Space} (Space ist die Leertaste) drückst.
\item
Wenn du die Maus über \lstinline{Game} bewegst, siehst du ein Overlay mit der Dokumentation.
Das funktioniert auch an anderen Stellen.
Was steht im Overlay von \lstinline{DemoTask()}?
Was steht im Overlay von \lstinline{DemoTask()}? Sollte sich das Overlay nicht öffnen, dann kannst du \fbox{F2}
\item
Wenn du \fbox{Strg + Shift + f} (Shift ist die Taste über Strg mit der man Großbuchstaben schreibt) drückst, formatiert Eclipse den Code für dich.
Wenn du \fbox{Strg + Shift + f} (Shift ist die Taste über \fbox{Strg}, mit der man Großbuchstaben schreibt) drückst, formatiert Eclipse den Code für dich.
Füge an verschiedenen Stellen neue Zeilen und Leerzeichen ein und beobachte was passiert, wenn du \fbox{Strg + Shift + f} drückst
\end{enumerate}


\begin{Infobox}[Optionale Aufgaben]
Aufgaben die mit \optional markiert sind müssen nicht bearbeitet werden.
Aufgaben die mit \optional markiert, sind müssen nicht bearbeitet werden.
Sie setzen schon Vorkenntnisse in Java oder Programmieren vorraus und sind deshalb auch oft deutlich schwerer als die normalen Aufgaben.
Wenn du also an einer optionalen Aufgabe festhängst, dann solltest du mit der nächsten normalen Aufgabe weitermachen.
Später, wenn du genug Zeit oder Wissen hast um die optionale Aufgabe zu lösen, kannst du nochmal zu ihr zurückkehren.
Expand All @@ -136,9 +136,9 @@
\item \optional Benenne \lstinline{demoGame} in \lstinline{myDemoGame} um.
Wenn du nur die Stelle \lstinline{Game demoGame} anpasst, wirst du eine Fehlermeldung bekommen.
Mache deine Änderung nochmal rückgängig und platziere den Cursor in dem Wort \lstinline{demoGame}.
Mit der Tastenkombination \fbox{Shift + Alt + r} kommst du in den \q{refactor} Modus, in dem du alle Vorkommen des Namens gleichzeitig umbenennen kannst.
Mit der Tastenkombination \fbox{Shift + Alt + r} kommst du in den \q{Refactor}-Modus, in dem du alle Vorkommen des Namens gleichzeitig umbenennen kannst.
Das gleiche geht auch über Rechtsklick > \fbox{Refactor} > \fbox{Rename}.

Mit \fbox{Strg + Shift + l} kannst du eine Liste alle Tastenkombinationen ansehen.
\item \optional Versuche drei Fenster gleichzeitig zu starten.
\item \optional Versuche, drei Fenster gleichzeitig zu starten.
\end{enumerate}
14 changes: 7 additions & 7 deletions sheets/1/exercise-2.tex
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

\begin{enumerate}
\item \teamsaufgabe{Blatt 1: Aufgabe 2 a)}
\item Wir haben hier ein paar Klassen. Bitte erweitere sie um je 3 weitere Eigenschaften. Der Stuhl ist ein Beispiel:
\item Wir haben hier ein paar Klassen. Bitte erweitere sie um je drei weitere Eigenschaften. Der Stuhl ist ein Beispiel:

\begin{tikzpicture}
\node[draw, rectangle, minimum height=0.75cm,minimum width=3cm, anchor=south] (A) {\textbf{Stuhl}};
Expand Down Expand Up @@ -52,14 +52,14 @@

\begin{Infobox}[HowTo: Operationen von Objekten]
Klassen verfügen über Operationen, die von bzw. auf ihren Objekten ausgeführt werden können.
Als Beispiel betrachten wir ein Auto. Es kann fahren, bremsen, abbiegen oder den Motor an-/abschalten.\\
Als Beispiel betrachten wir ein Auto. Es kann fahren, bremsen, abbiegen und den Motor an-/abschalten.\\

Dabei können Operationen auch sogenannte Parameter besitzen wie z.B. abbiegen(links) oder fahren(50) (für 50 km/h).
Wie man genau bestimmt was diese Parameter bedeuten erklären wir noch.
\end{Infobox}

\begin{enumerate} \setcounter{enumi}{3}
\item Überlege dir für die folgenden 3 Klassen, Operationen.
\item Überlege dir für die folgenden drei Klassen Operationen.
Es ist nicht notwendig Parameter zu verwenden.
Der Stuhl ist wieder ein Beispiel:

Expand All @@ -82,20 +82,20 @@


\begin{Infobox}[Info: Objekte vs. reale Objekte]
Wichtig zu verstehen ist, dass Klassen und Objekte keine physischen Objekte repräsentieren müssen. Man kann auch z.B. eine Klasse für Useraccounts oder eine Klasse für Personengruppen haben. Auch werden Klassen verwendet um technische Teile des Programms zu repräsentieren, wie z.B. das Fenster, welches angezeigt wird, oder ein Paket das durchs Internet geschickt wird.
Wichtig zu verstehen ist, dass Klassen und Objekte keine physischen Objekte repräsentieren müssen. Man kann auch z.B. eine Klasse für Useraccounts oder eine Klasse für Personengruppen haben. Auch werden Klassen verwendet, um technische Teile des Programms zu repräsentieren, wie z.B. das Fenster, welches angezeigt wird, oder ein Paket, das durchs Internet geschickt wird.
\end{Infobox}


\begin{enumerate} \setcounter{enumi}{5}
\item \optional Versuche erneut 3 Klassen mit je 3 Eigenschaften zu identifizieren. Diese Aufgabe soll etwas schwieriger sein als die c)
\item \optional Versuche erneut drei Klassen mit je drei Eigenschaften zu identifizieren. Diese Aufgabe soll etwas schwieriger sein als die c)
\begin{quotation}
Du betrittst die Gebäude und schaust dich um. Es gibt sehr viele Menschen hier. Doch niemanden den du kennst, also bewegst du dich direkt auf den Aufzug zu. Doch bevor du in dein Stockwerk fahren kannst, musst du deine Personalkarte vor den Leser halten. Nachdem deine Sicherheitsstufe ausgelesen wurde kannst du den Knopf für das 5. Stockwerk drücken. Langsam fährt der Aufzug los. Langsamer als sonst. Larry wird ihn wohl wieder neu eingestellt haben.

Im 5. Stockwerk angekommen erwartet dich ein Sicherheitsposten. Er ist nur mit einer statt mit zwei Personen besetzt, doch das macht dir keine Sorgen. Immerhin ist es Sonntag. Der Mann fragt nach deiner Personalkarte und scannt sie. Auf seinem Bildschirm taucht ein Foto auf, welches er mit deinem Gesicht vergleicht. Doch ihm fällt nichts auf. Also grüßt er dich und lässt dich vorbei. Für einen Moment fragst du dich, woher er deinen Namen kennt, doch der wurde vermutlich einfach mit dem Foto angezeigt. Heute ist einfach alles auf diesen Karten gespeichert.

Du schlenderst durch das Labyrinth aus Gängen, bis du zu deinem Ziel kommst. Die Tür ist unscheinbar und das Büro dahinter ist es auch. Kaum 10 Quadratmeter groß. Und die Fenster zeigen auf nichts beachtenswertes. Aber das ist dir egal. Dich interessiert der Tresor in der obersten Schublade des Schreibtischs. Ein Model 4452 von SuperSecure.
Du schlenderst durch das Labyrinth aus Gängen, bis du zu deinem Ziel kommst. Die Tür ist unscheinbar und das Büro dahinter ist es auch. Kaum 10 Quadratmeter groß. Und die Fenster zeigen auf nichts Beachtenswertes. Aber das ist dir egal. Dich interessiert der Tresor in der obersten Schublade des Schreibtischs. Ein Model 4452 von SuperSecure.

Du versicherst dich kurz, dass die Tür zu ist und dann machst du dich an das Knacken des digitalen Schlosses. Es dauert kaum 2 Minuten, dann schwingt die 3cm dicke Stahltür auf und ermöglicht die Sicht auf ein dutzend USB-Sticks. Schnell suchst du den blauen mit 16 GB Kapazität und lässt ihn in deiner Hosentasche verschwinden.
Du versicherst dich kurz, dass die Tür zu ist und dann machst du dich an das Knacken des digitalen Schlosses. Es dauert kaum 2 Minuten, dann schwingt die 3cm dicke Stahltür auf und ermöglicht die Sicht auf einige USB-Sticks. Schnell suchst du den blauen mit 16 GB Kapazität und lässt ihn in deiner Hosentasche verschwinden.

Jetzt nur noch den gleichen Weg zurück.
\end{quotation}
Expand Down
Loading