2013-11-05 19:39:03 +01:00
\documentclass [usepdftitle=false,hyperref={pdfpagelabels=false}] { beamer}
% use KIT-Theme
% see http://sdqweb.ipd.kit.edu/wiki/Dokumentvorlagen
%\usetheme{Frankfurt} % see http://deic.uab.es/~iblanes/beamer_gallery/index_by_theme.html as fallback
\InputIfFileExists { ../templates/beamerthemekit.sty} { \usepackage { ../templates/beamerthemekit} } { \usetheme { Frankfurt} }
\usefonttheme { professionalfonts}
\usepackage { hyperref}
\usepackage { lmodern}
\usepackage { listings}
\usepackage { wrapfig} % see http://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions
\usepackage [utf8] { inputenc} % this is needed for german umlauts
\usepackage [ngerman] { babel} % this is needed for german umlauts
\usepackage [T1] { fontenc} % this is needed for correct output of umlauts in pdf
\usepackage { verbatim}
\usepackage { relsize}
\usepackage { subfigure}
\usepackage { algorithm,algpseudocode}
\usepackage { minted} % needed for the inclusion of source code
\usepackage { tikz}
2015-10-14 14:25:34 +02:00
\usetikzlibrary { shapes,snakes,calc,patterns}
2013-11-05 19:39:03 +01:00
\usepackage { xcolor}
\usepackage { menukeys}
\usepackage { braket}
\usepackage { ulem}
\usepackage { ../templates/myStyle}
\newcommand \tutor { Martin Thoma}
\newcommand \tutNR { 10}
\newcommand \titleText { Programmieren-Tutorium Nr. \tutNR { } }
\institute { Fakultät für Informatik}
\hypersetup { pdftitle={ \titleText } }
\beamertemplatenavigationsymbolsempty
\newcommand \InsertToC [1] [] {
\begin { frame} { Outline}
\tableofcontents [subsectionstyle=show/show/show, subsubsectionstyle=show/show/show, #1]
\end { frame}
}
\begin { document}
\title { \titleText }
\subtitle { Einführung in Java, Eclipse}
\author { \tutor }
\date { \today }
\subject { Programmieren}
\frame { \titlepage }
\frame {
\frametitle { Inhaltsverzeichnis}
\setcounter { tocdepth} { 1}
\tableofcontents
\setcounter { tocdepth} { 2}
}
%\AtBeginSection[]{
% \InsertToC[sections={\thesection}] % shows only subsubsections of one subsection
%}
\section { Allgemeines}
\subsection { Formalien}
\begin { frame} { Formalien}
\begin { itemize}
2015-10-14 14:25:34 +02:00
\item Die Folien werden online gestellt $ \Rightarrow $
2013-11-05 19:39:03 +01:00
\textbf { Mitschreiben nicht nötig}
\item $ \rightarrow $ \href { http://martin-thoma.com/programmieren-tutorium} { martin-thoma.com/programmieren-tutorium}
2015-10-14 14:25:34 +02:00
\item Fragen immer sofort stellen – und traut euch!\\
2013-11-05 19:39:03 +01:00
Wenn nicht hier, wo dann?
\end { itemize}
\end { frame}
\subsection { Vorstellung}
\begin { frame}
\frametitle { Das bin ich}
\begin { itemize}
\item Martin Thoma (\href { mailto:info@martin-thoma.de} { info@martin-thoma.de} ) $ \rightarrow $ \href { http://www.martin-thoma.de/about.htm} { CV}
\item 22 Jahre alt
\item komme aus Augsburg
\item 3. Semester, Informatik
\item Programmieren
\begin { itemize}
\item \textbf { 2005} : Angefangen mit PHP (\& HTML, CSS, JavaScript, (My)SQL)
\item \textbf { 2009} : Liebe zu Python entdeckt \\
(\href { http://martin-thoma.com/challenge-websites/} { HackIts und Challenges} auf ProjectEuler, Brightshadows)
\item \textbf { Selten} : C, C++ (z.B. für ein größeres Forschungsprojekt)
\item \textbf { 2011} : Java am KIT gelernt
\item BwInf, Online-Projekte wie z.B. \href { http://world-of-dungeons.net/} { world-of-dungeons}
\end { itemize}
\end { itemize}
\textbf { Und wer seid ihr?}
\end { frame}
\subsection { Websites}
\begin { frame}
\frametitle { Websites und Links}
\begin { itemize}
\item \href { http://martin-thoma.com/programmieren-tutorium} { martin-thoma.com/programmieren-tutorium} :\\
Alle Links, Folien, Hinweise und viele weitere Inhalte
\item \href { https://praktomat.info.uni-karlsruhe.de/} { praktomat.info.uni-karlsruhe.de} :\\
Forum; Abgabe der Übungsaufgaben; Klausur
\item \href { https://webinscribe.ira.uka.de/} { webinscribe.de} : Anmeldung für das Tutorium
\item \href { http://verialg.iti.kit.edu/english/583.php} { tinyurl.com/prog2012} : Website von Prof. Dr. Sinz
\item \href { http://docs.oracle.com/javase/7/docs/} { docs.oracle.com} : Manual $ \rightarrow $ \href { http://docs.oracle.com/javase/7/docs/api/} { API}
\item \href { http://stackoverflow.com/} { stackoverflow.com} : Weitergehende Fragen
\end { itemize}
\end { frame}
\subsection { Tutorium, Übung, Vorlesung}
\begin { frame}
\frametitle { Tutorium, Übung, Vorlesung}
\begin { tikzpicture} [%
auto,
example/.style={
rectangle,
draw=blue,
thick,
fill=blue!20,
text width=4.5em,
align=center,
rounded corners,
minimum height=2em
} ,
longName/.style={
text width=12em,
align=center,
minimum height=2em
} ,
algebraicName/.style={
text width=7em,
align=center,
minimum height=2em
} ,
explanation/.style={
text width=10em,
align=left,
minimum height=3em
}
]
\pgfdeclarepatternformonly { north east lines wide} %
{ \pgfqpoint { -1pt} { -1pt} } %
{ \pgfqpoint { 10pt} { 10pt} } %
{ \pgfqpoint { 9pt} { 9pt} } %
{
\pgfsetlinewidth { 3pt}
\pgfpathmoveto { \pgfqpoint { 0pt} { 0pt} }
\pgfpathlineto { \pgfqpoint { 9.1pt} { 9.1pt} }
\pgfusepath { stroke}
}
% Big background
\draw [fill=lime!20,lime!20, rounded corners] (-1.8, 0.60) rectangle (10,-5);
\draw [fill=purple!20,purple!20, rounded corners] (0.55, -3.1) rectangle (3.5,-3.9);
\draw [fill=purple!20,purple!20, rounded corners] (4.55, -3.1) rectangle (7.5,-3.9);
\draw [fill=blue!20,blue!20, rounded corners] (-1.45,-1.4) rectangle (1.5,-0.6);
\draw [fill=blue!20,blue!20, rounded corners] (2.55,-1.4) rectangle (5.5,-0.6);
\draw [fill=blue!20,blue!20, rounded corners] (6.55,-1.4) rectangle (9.5,-0.6);
\draw (2, 0) node[longName] (A) { Modul: Programmieren}
(6, 0) node[explanation] (X) {
\begin { minipage} { 0.9\textwidth }
2015-10-14 14:25:34 +02:00
\tiny
2013-11-05 19:39:03 +01:00
\begin { itemize}
\item 5 ECTS
\end { itemize}
\end { minipage}
}
(0,-1) node[algebraicName] (B) { Tutorium}
(4,-1) node[algebraicName] (C) { Übung}
(8,-1) node[algebraicName] (D) { Vorlesung}
(0,-2) node[algebraicName] (E) { Student}
(4,-2) node[algebraicName] (F) { Mitarbeiter}
(8,-2) node[algebraicName] (G) { Dozent}
(2,-3.5) node[algebraicName, purple] (H) { Übungsschein}
(1.8,-4.35) node[explanation] (X) {
\begin { minipage} { \textwidth }
2015-10-14 14:25:34 +02:00
\tiny
2013-11-05 19:39:03 +01:00
\begin { itemize} \itemsep -0.2em
\item Muss bestanden werden
\item Keine Note
\item keine Bonuspunkte
\end { itemize}
\end { minipage}
}
(6,-3.5) node[algebraicName, purple] (I) { Klausur}
(5.8,-4.3) node[explanation] (X) {
\begin { minipage} { \textwidth }
2015-10-14 14:25:34 +02:00
\tiny
2013-11-05 19:39:03 +01:00
\begin { itemize} \itemsep -0.2em
\item Muss bestanden werden
\item Abschlussnote ergibt Modulnote
\end { itemize}
\end { minipage}
} ;
\draw [blue, thick, rounded corners] ($ ( B.north west ) $ ) rectangle ($ ( B.south east ) $ );
\draw [blue, thick, rounded corners] ($ ( C.north west ) $ ) rectangle ($ ( C.south east ) $ );
\draw [blue, thick, rounded corners] ($ ( D.north west ) $ ) rectangle ($ ( D.south east ) $ );
\draw [purple, thick, rounded corners] ($ ( H.north west ) $ ) rectangle ($ ( H.south east ) $ );
\draw [purple, thick, rounded corners] ($ ( I.north west ) $ ) rectangle ($ ( I.south east ) $ );
\draw [lime, thick, rounded corners] ($ ( B.north west ) + ( - 0 . 1 , 0 . 1 ) $ ) rectangle ($ ( E.south east ) + ( 0 . 1 , - 0 . 1 ) $ );
\draw [lime, thick, rounded corners] ($ ( C.north west ) + ( - 0 . 1 , 0 . 1 ) $ ) rectangle ($ ( F.south east ) + ( 0 . 1 , - 0 . 1 ) $ );
\draw [lime, thick, rounded corners] ($ ( D.north west ) + ( - 0 . 1 , 0 . 1 ) $ ) rectangle ($ ( G.south east ) + ( 0 . 1 , - 0 . 1 ) $ );
\end { tikzpicture}
\end { frame}
\subsection { Was ist der Job eines Tutors?}
\begin { frame}
\frametitle { Was ist der Job eines Tutors?}
\begin { itemize}
\item Fragen zum Stoff beantworten
\begin { itemize}
\item Gerne auch \emph { etwas} darüber hinaus
\end { itemize}
\item Fragen zur Vorlesung beantworten
\begin { itemize}
\item z.B. Klausurmodalitäten
\end { itemize}
\item Übungsblätter korrigieren
\end { itemize}
\end { frame}
\subsection { Was ist nicht der Job eines Tutors?}
\begin { frame}
\frametitle { Was ist \underline { nicht} der Job eines Tutors?}
\begin { itemize}
\item Vorlesung wiederholen
\item Bespaßung im Tutorium
\item Jeden durch die Klausur bringen
\item \dots oder die Korrektur der Klausur
\end { itemize}
\end { frame}
\subsection { Für was ist der Student verantwortlich?}
\begin { frame}
\frametitle { Für was ist der Student verantwortlich?}
Der Student ist für sich selbst verantwortlich, also \dots
\begin { itemize}
\item \dots die rechtzeitige Übungsblattabgabe
\item \dots die Vor- und Nachbereitung der Vorlesung
\item \dots das Lernen der Inhalte
\item \dots die rechtzeitige Klausuranmeldung
\item \dots das Finden relevanter Informationen
\end { itemize}
\end { frame}
\subsection { Warnung!}
\subsection { Erinnerungen}
\begin { frame} { Erinnerungen}
\begin { block} { Praktomat-Anmeldung}
\url { https://praktomat.info.uni-karlsruhe.de/praktomat\_ 2012\_ WS/}
\begin { itemize}
\item Deadline: \textbf { Freitag, 02. November 2012}
\end { itemize}
\end { block}
\begin { block} { Disclaimer: \href { http://tinyurl.com/prog-disclaimer} { tinyurl.com/prog-disclaimer} }
\begin { itemize}
\item PDF im VAB
\item Abgabe in den Briefkasten der Vorlesung Programmieren\\ (Gebäude 50.34, Keller)
\item Deadline: \textbf { Freitag, 02. November 2012}
\end { itemize}
\end { block}
\begin { block} { Übungsschein \href { studium.kit.edu} { http://studium.kit.edu} }
\begin { itemize}
\item Anmeldung für den Übungsschein
\item Deadline: \textbf { Sonntag, 31. März 2013}
\end { itemize}
\end { block}
\end { frame}
\subsection { Nicht abschreiben!}
\begin { frame} { Nicht abschreiben!}
\begin { alertblock} { Warnung!}
\begin { itemize}
\item \emph { \textbf { Nicht abschreiben!} }
\item Schon bei \textbf { einmaligem} Nachweis verwirkt man die Chance auf den \textbf { Übungsschein}
\item Ohne Schein darf man die \textbf { Abschlussaufgabe} nicht schreiben
\item Nur mit beidem besteht man das \textbf { Modul Programmieren}
\item Programmieren ist Teil der \textbf { Orientierungsprüfung}
\item Ohne bestandene Orientierungsprüfung bis zum 3. Semester \textbf { fällt man aus dem Studium} und darf bundesweit das Studienfach nicht mehr belegen!
\end { itemize}
\end { alertblock}
\end { frame}
\subsection { Praktomat}
\begin { frame} { Praktomat}
\begin { itemize}
\item Ihr könnt beliebig häufig Lösungen hochladen!
\item Ladet Teillösungen hoch
\begin { itemize}
\item [$\Rightarrow$] Sicherungskopie für euch
\item [$\Rightarrow$] Eine vergessene Deadline ist nicht ganz so ärgerlich
\end { itemize}
2015-10-14 14:25:34 +02:00
\item Rechnet nicht mit der Erreichbarkeit des Praktomaten
2013-11-05 19:39:03 +01:00
kurz vor der Deadline
\item \textbf { Disclaimer nicht vergessen!}
\end { itemize}
\end { frame}
\section { Was ist Programmieren?}
\subsection { Algorithmen}
\begin { frame}
\frametitle { Algorithmen}
\begin { block} { Allgemeines}
\begin { itemize}
\item Modul des 2. Semesters
\item 6 ECTS
\end { itemize}
\end { block}
\begin { block} { Themen}
\begin { itemize}
\item Sortieralgorithmen
\item Suchalgorithmen
\item Speicherplatz- und Laufzeitkomplexität
\item Weiterführende Datenstrukturen (Stack, Heap, B-Bäume, \dots )
\end { itemize}
\end { block}
\end { frame}
\subsection { SWT - Softwaretechnik}
\begin { frame}
\frametitle { SWT - Softwaretechnik}
oder auch "`Programmieren im Großen"'
\begin { block} { Allgemeines}
\begin { itemize}
\item Modul des 2. Semesters
\item 6 ECTS
\end { itemize}
\end { block}
\begin { block} { Themen}
\begin { itemize}
\item Wie gehe ich die Entwicklung von Software an?
\item Wie strukturiere ich Programme?
\item Wie entwickle ich \emph { leicht} wartbare Software?
\item Entwurfsmuster
\item Wasserfallmodell, Scrum, V-Modell
\end { itemize}
\end { block}
\end { frame}
\subsection { Programmieren}
\begin { frame}
\frametitle { Programmieren}
oder auch "`Programmieren im Kleinen"'
\begin { block} { Allgemeines}
\begin { itemize}
\item Modul des 1. Semesters
\item 5 ECTS
\item Teil der Orientierungsprüfung
\end { itemize}
\end { block}
\begin { block} { Themen}
\begin { itemize}
\item \textbf { Allgemeines} : Was ist eine if-Abfrage, was eine for- bzw. while-Schleife?
\item Wie mache ich meinen Code wartbar?
\item \textbf { Objektorientierung} : Was ist eine Klasse, was ein Objekt?
\item Modellierung von Problemen
\item \textbf { Elementare Datenstrukturen und -typen} : int, String, Array
\end { itemize}
\end { block}
\end { frame}
\section { Java}
\subsection { Begriffe}
\begin { frame} { Begriffe}
\begin { block} { JDK}
2015-10-14 14:25:34 +02:00
Das Java Development Kit (JDK) ist eines der von
2013-11-05 19:39:03 +01:00
Java-Entwicklern meistgenutzten Java-SDKs.\\
2015-10-14 14:25:34 +02:00
$ [ \dots ] $ Nun wird eine angepasste freie Version als ihr nunmehr
2013-11-05 19:39:03 +01:00
offizieller Nachfolger unter dem Namen OpenJDK weitergeführt.
\end { block}
\begin { block} { JRE}
2015-10-14 14:25:34 +02:00
Die Java-Laufzeitumgebung (englisch: Java Runtime Environment, kurz JRE)
ist die Laufzeitumgebung der Java-Technik. Mit ihr werden
Programme (Java-Anwendungen) weitgehend unabhängig vom
2013-11-05 19:39:03 +01:00
darunter liegenden Betriebssystem ausgeführt.
\end { block}
Quelle: Wikipedia
\end { frame}
\subsection { Workflow}
\framedgraphic { Workflow} { schaubild-java-workflow.png}
\section { System einrichten}
\subsection { Linux}
\begin { frame} { Java unter Linux}
\begin { itemize}
\item Ubuntu: \href { http://wiki.ubuntuusers.de/Java/Installation} { UbuntuUsers.de} \\
\myCode { \$ sudo apt-get install openjdk-7-jre openjdk-7-jdk}
\item Arch: \href { https://wiki.archlinux.de/title/Java} { archlinux.de} \\
\myCode { \$ pacman -S jre7-openjdk}
\end { itemize}
\end { frame}
\subsection { Windows}
\begin { frame} { Windows}
\begin { itemize}
\item \href { http://java.com/de/download/index.jsp} { java.com/download}
\end { itemize}
\includegraphics [width=100mm] { java-download.png}
\end { frame}
\begin { frame} { Windows - 32 oder 64 Bit Version?}
\menu { Start > Systemsteuerung} oder \keys { Windows + Pause}
\includegraphics { windows-systemsteuerung.png}
\end { frame}
\begin { frame} { Windows - cmd}
\begin { itemize}
\item Ausführen: \myCode { cmd}
\item \myCode { > javac -version}
\item \myCode { javac 1.7.0\_ 09} $ \rightarrow $ hat geklappt
\item Sonst: javac zu PATH hinzufügen
\begin { enumerate}
\item Wo liegt "`javac.exe"'?\\ (z.B. \directory { C:/Program Files/Java/jdk1.7.0\_ 09/bin/javac.exe} )
\item Systemsteuerung (\keys { Windows + Pause} )\\
\menu { Systemsteuerung > Erweiterte Systemeinstellungen > Umgebungsvariablen}
\item Zu "`Path"' durch \myCode { ;} getrennt hinzufügen
\end { enumerate}
\end { itemize}
\end { frame}
\subsection { Java testen}
\begin { frame} { Java testen}
\inputminted [linenos, numbersep=5pt, tabsize=4, frame=lines, label=HelloWorld.java] { java} { HelloWorld.java}
\inputminted [linenos=false] { console} { Bash.sh}
\end { frame}
\subsection { Eclipse: Allgemeines}
\begin { frame} { Eclipse: Allgemeines}
\begin { itemize}
\item Sehr komfortable Java-IDE:
\begin { itemize}
\item Syntaxhighlighting und Code-Vervollständigung
\item Automatisch korrektes Einrücken mit \keys { \ctrl + \shift + F} )
\end { itemize}
\item Sehr groß (RAM \& HDD)
\item Startet Langsam
\item Müsst ihr in SWT verwenden
\item Download: \href { http://www.eclipse.org/} { eclipse.org}
\end { itemize}
\end { frame}
\subsection { Eclipse: Einrichten}
\begin { frame} { Eclipse: Einrichten}
\begin { itemize}
\item \menu { Window > Open Perspective > Java}
\item \menu { Window > Show Toolbar}
\item \menu { Window > Preferences > General > Editors > Text Editors}
\begin { itemize}
\item Show line numbers
\item Print margin column: 120
\end { itemize}
\end { itemize}
\end { frame}
\framedgraphic { Zwischenstand} { eclipse-einrichten.png}
\subsection { Eclipse: Erstes Projekt}
\begin { frame} { Eclipse: Erstes Projekt}
\begin { itemize}
\item \menu { File > New > Java} : Projektname: HelloWorld
\item \menu { File > New > Class} : Name: HelloWorld
\end { itemize}
\end { frame}
\framedgraphic { Zwischenstand} { eclipse-projekt.png}
\section { Wiederholung}
\subsection { Begriffe}
\begin { frame} { Begriffe}
Welche Begriffe habt ihr in der Vorlesung kennen gelernt?
\end { frame}
\begin { frame} { Begriffe}
\begin { itemize}
\item \textbf { Objekt} : Exemplar eines bestimmten Datentyps
\item \textbf { Klasse} : abstraktes Modell für eine Reihe von ähnlichen Objekten
\item \textbf { Variable} : Behälter für Werte
\item \textbf { Konstante} : Wert, der sich während der Laufzeit des Programms nicht ändern kann
\item \textbf { Attribut} : Eigenschaft eines konkreten Objekts
\item \textbf { Funktion} : Programmkonstrukt mit Parametern und Rückgabewert
\item \textbf { Methode} : Funktion in einem Objekt
\item \textbf { Datentyp} : Zusammenfassung von Objektmengen mit den darauf definierten Operationen
\item int, Integer
\item String
\item \dots
\end { itemize}
\end { frame}
\subsection { Beispiel für eine Klasse}
\begin { frame} { Beispiel für eine Klasse}
\begin { block} { Schal}
\begin { itemize}
\item hat eine Farbe
\item besteht aus einem Stoff
\item hat eine Länge
\item kann warm halten
\end { itemize}
\end { block}
\end { frame}
\subsection { Java: Primitive Datentypen}
\begin { frame} { Java: Primitive Datentypen}
\begin { tabular} { l|l|l}
Datentyp & Werte & Länge\\
\hline
\hline
boolean & \texttt { true} oder \texttt { false} & 1 Byte\\
char & 16-Bit Unicode Zeichen & 2 Byte\\
\hline
byte & $ - 2 ^ 7 = - 128 \dots 2 ^ 7 - 1 $ & 1 Byte\\
short & $ - 2 ^ { 15 } = - 32 \, 768 \dots 2 ^ { 15 } - 1 $ & 2 Byte\\
int & $ - 2 ^ { 31 } \approx - 2 \cdot 10 ^ 9 \dots 2 ^ { 31 } - 1 $ & 4 Byte\\
long & $ - 2 ^ { 63 } = - 9 \cdot 10 ^ { 18 } \dots 2 ^ { 63 } - 1 $ & 8 Byte\\
\hline
float & single-precision 32-bit IEEE 754 floating point & 4 Byte\\
double & double-precision 64-bit IEEE 754 floating point & 8 Byte\\
\end { tabular}
\\
Quelle: \href { http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html} { docs.oracle.com}
\end { frame}
\subsection { Java: Enum}
\begin { frame} { Java: Enum}
\inputminted [linenos, numbersep=5pt, tabsize=4, frame=lines, label=Day.java] { java} { Day.java}
Quelle: \href { http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html} { docs.oracle.com}
\inputminted [linenos, numbersep=5pt, tabsize=4, frame=lines, label=SomeClass.java] { java} { SomeClass.java}
\end { frame}
\subsection { Java: String}
\begin { frame} { Java: String}
\begin { itemize}
\item \textbf { Klasse} für Zeichenketten
\item UTF-16
\item max. $ 2 ^ { 31 } - 1 = 2 \, 147 \, 483 \, 647 $ Zeichen (siehe \href { http://stackoverflow.com/a/816152/562769} { stackoverflow.com} )
\begin { itemize}
\item King James Bible: $ 4 \, 397 \, 206 $ Zeichen\\
(\href { http://printkjv.ifbweb.com/\# downloads} { Quelle} \& \myCode { wc -w file.txt} )
\end { itemize}
\item weitere Informationen: \href { http://docs.oracle.com/javase/7/docs/api/java/lang/String.html} { docs.oracle.com}
\end { itemize}
\end { frame}
\subsection { Java: Naming Conventions}
\begin { frame} { Java: Naming Conventions}
\begin { itemize}
\item \myCode { camelCase} für Variablen und Attribute
\item \myCode { BIG\_ AND\_ FAT} für Konstanten
\item Typische Variablen- und Methodennamen:
\begin { itemize}
\item isSomething: Meist für \texttt { boolean}
\item hasSomething: Meist Methode mit Rückgabewert \texttt { boolean}
\item getValue: Getter, Wrapper für Attribut "`value"'
\item setValue: Setter, Wrapper für Attribut "`value"'
\end { itemize}
\item Genauer: \href { http://www.oracle.com/technetwork/java/codeconventions-150003.pdf} { orcacle.com} , ab S. 15
\end { itemize}
\end { frame}
\subsection { Aufgabenstellung}
\begin { frame} { Aufgabenstellung}
\begin { alertblock} { Bitte achtet auf folgendes:}
\begin { itemize}
\item Einsatz sinnvoller Datentypen
\item aussagekräftige Attributnamen
\item Einrückungen, Namenskonventionen, Dokumentation
\end { itemize}
\end { alertblock}
\end { frame}
\section { Abspann}
\subsection { Hinweise zum Übungsblatt}
\begin { frame} { Hinweise zum Übungsblatt}
\begin { itemize}
\item Aufgaben online im \textbf { Praktomaten} oder im \textbf { VAB}
\item Abgabetermin: Montag, der \textbf { 5. November 2012, 13 Uhr}
\item Abgabe online im Praktomaten\\
Uni-Netz oder VPN erforderlich!
\item min. \textbf { 50 \% der Gesamtpunktzahl} zum Bestehen des Scheins\\
(ca. 60 Punkte)
\item \textbf { keine Bibliotheken} verwenden, die im Übungsblatt nicht explizit zugelassen wurden
\item keine ungewollte Funktionalität einbauen – es gilt die Devise:\\ \textbf { Einfache Fragen erfordern einfache Antworten!}
\end { itemize}
\end { frame}
\subsection { Dropbox Space Race}
\begin { frame} { Dropbox Space Race}
\begin { itemize}
\item Hat nichts mit Programmieren zu tun
\item Bei \href { https://www.dropbox.com/spacerace} { dropbox.com} anmelden
\item KIT ist auf Platz 3, RWTH Aachen und TU München vor uns
\end { itemize}
\end { frame}
\subsection { Comic}
\framedgraphic { Vielen Dank für eure Aufmerksamkeit!} { ../images/Teach-yourself-C++-in-21-days.png}
\end { document}