123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613 |
- \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}
- \usetikzlibrary{shapes,snakes,calc,patterns}
- \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}
- \item Die Folien werden online gestellt $ \Rightarrow $
- \textbf{Mitschreiben nicht nötig}
- \item $\rightarrow$ \href{http://martin-thoma.com/programmieren-tutorium}{martin-thoma.com/programmieren-tutorium}
- \item Fragen immer sofort stellen – und traut euch!\\
- 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}
- \tiny
- \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}
- \tiny
- \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}
- \tiny
- \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}
- \item Rechnet nicht mit der Erreichbarkeit des Praktomaten
- 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}
- Das Java Development Kit (JDK) ist eines der von
- Java-Entwicklern meistgenutzten Java-SDKs.\\
- $[\dots]$ Nun wird eine angepasste freie Version als ihr nunmehr
- offizieller Nachfolger unter dem Namen OpenJDK weitergeführt.
- \end{block}
- \begin{block}{JRE}
- 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
- 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}
|