Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

📚 The CoCalc Library - books, templates and other resources

132939 views
License: OTHER
1
\documentclass[usepdftitle=false,hyperref={pdfpagelabels=false}]{beamer}
2
3
% use KIT-Theme
4
% see http://sdqweb.ipd.kit.edu/wiki/Dokumentvorlagen
5
%\usetheme{Frankfurt} % see http://deic.uab.es/~iblanes/beamer_gallery/index_by_theme.html as fallback
6
\InputIfFileExists{../templates/beamerthemekit.sty}{\usepackage{../templates/beamerthemekit}}{\usetheme{Frankfurt}}
7
\usefonttheme{professionalfonts}
8
9
\usepackage{hyperref}
10
\usepackage{lmodern}
11
\usepackage{listings}
12
\usepackage{wrapfig} % see http://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions
13
\usepackage[utf8]{inputenc} % this is needed for german umlauts
14
\usepackage[ngerman]{babel} % this is needed for german umlauts
15
\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf
16
\usepackage{verbatim}
17
\usepackage{relsize}
18
\usepackage{subfigure}
19
\usepackage{algorithm,algpseudocode}
20
\usepackage{minted} % needed for the inclusion of source code
21
\usepackage{tikz}
22
\usetikzlibrary{shapes,snakes,calc,patterns}
23
\usepackage{xcolor}
24
\usepackage{menukeys}
25
\usepackage{braket}
26
\usepackage{ulem}
27
\usepackage{../templates/myStyle}
28
29
\newcommand\tutor{Martin Thoma}
30
\newcommand\tutNR{10}
31
\newcommand\titleText{Programmieren-Tutorium Nr. \tutNR{}}
32
\institute{Fakultät für Informatik}
33
34
\hypersetup{pdftitle={\titleText}}
35
\beamertemplatenavigationsymbolsempty
36
37
\newcommand\InsertToC[1][]{
38
\begin{frame}{Outline}
39
\tableofcontents[subsectionstyle=show/show/show, subsubsectionstyle=show/show/show, #1]
40
\end{frame}
41
}
42
43
\begin{document}
44
\title{\titleText}
45
\subtitle{Einführung in Java, Eclipse}
46
\author{\tutor}
47
\date{\today}
48
\subject{Programmieren}
49
50
\frame{\titlepage}
51
52
\frame{
53
\frametitle{Inhaltsverzeichnis}
54
\setcounter{tocdepth}{1}
55
\tableofcontents
56
\setcounter{tocdepth}{2}
57
}
58
59
%\AtBeginSection[]{
60
% \InsertToC[sections={\thesection}] % shows only subsubsections of one subsection
61
%}
62
63
\section{Allgemeines}
64
\subsection{Formalien}
65
\begin{frame}{Formalien}
66
\begin{itemize}
67
\item Die Folien werden online gestellt $ \Rightarrow $
68
\textbf{Mitschreiben nicht nötig}
69
\item $\rightarrow$ \href{http://martin-thoma.com/programmieren-tutorium}{martin-thoma.com/programmieren-tutorium}
70
\item Fragen immer sofort stellen und traut euch!\\
71
Wenn nicht hier, wo dann?
72
\end{itemize}
73
\end{frame}
74
75
\subsection{Vorstellung}
76
\begin{frame}
77
\frametitle{Das bin ich}
78
\begin{itemize}
79
\item Martin Thoma (\href{mailto:info@martin-thoma.de}{info@martin-thoma.de}) $\rightarrow$ \href{http://www.martin-thoma.de/about.htm}{CV}
80
\item 22 Jahre alt
81
\item komme aus Augsburg
82
\item 3. Semester, Informatik
83
\item Programmieren
84
\begin{itemize}
85
\item \textbf{2005}: Angefangen mit PHP (\& HTML, CSS, JavaScript, (My)SQL)
86
\item \textbf{2009}: Liebe zu Python entdeckt \\
87
(\href{http://martin-thoma.com/challenge-websites/}{HackIts und Challenges} auf ProjectEuler, Brightshadows)
88
\item \textbf{Selten}: C, C++ (z.B. für ein größeres Forschungsprojekt)
89
\item \textbf{2011}: Java am KIT gelernt
90
\item BwInf, Online-Projekte wie z.B. \href{http://world-of-dungeons.net/}{world-of-dungeons}
91
\end{itemize}
92
\end{itemize}
93
\textbf{Und wer seid ihr?}
94
\end{frame}
95
96
\subsection{Websites}
97
\begin{frame}
98
\frametitle{Websites und Links}
99
\begin{itemize}
100
\item \href{http://martin-thoma.com/programmieren-tutorium}{martin-thoma.com/programmieren-tutorium}:\\
101
Alle Links, Folien, Hinweise und viele weitere Inhalte
102
\item \href{https://praktomat.info.uni-karlsruhe.de/}{praktomat.info.uni-karlsruhe.de}:\\
103
Forum; Abgabe der Übungsaufgaben; Klausur
104
\item \href{https://webinscribe.ira.uka.de/}{webinscribe.de}: Anmeldung für das Tutorium
105
\item \href{http://verialg.iti.kit.edu/english/583.php}{tinyurl.com/prog2012}: Website von Prof. Dr. Sinz
106
\item \href{http://docs.oracle.com/javase/7/docs/}{docs.oracle.com}: Manual $\rightarrow$ \href{http://docs.oracle.com/javase/7/docs/api/}{API}
107
\item \href{http://stackoverflow.com/}{stackoverflow.com}: Weitergehende Fragen
108
\end{itemize}
109
\end{frame}
110
111
\subsection{Tutorium, Übung, Vorlesung}
112
\begin{frame}
113
\frametitle{Tutorium, Übung, Vorlesung}
114
\begin{tikzpicture}[%
115
auto,
116
example/.style={
117
rectangle,
118
draw=blue,
119
thick,
120
fill=blue!20,
121
text width=4.5em,
122
align=center,
123
rounded corners,
124
minimum height=2em
125
},
126
longName/.style={
127
text width=12em,
128
align=center,
129
minimum height=2em
130
},
131
algebraicName/.style={
132
text width=7em,
133
align=center,
134
minimum height=2em
135
},
136
explanation/.style={
137
text width=10em,
138
align=left,
139
minimum height=3em
140
}
141
]
142
\pgfdeclarepatternformonly{north east lines wide}%
143
{\pgfqpoint{-1pt}{-1pt}}%
144
{\pgfqpoint{10pt}{10pt}}%
145
{\pgfqpoint{9pt}{9pt}}%
146
{
147
\pgfsetlinewidth{3pt}
148
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
149
\pgfpathlineto{\pgfqpoint{9.1pt}{9.1pt}}
150
\pgfusepath{stroke}
151
}
152
153
154
% Big background
155
\draw[fill=lime!20,lime!20, rounded corners] (-1.8, 0.60) rectangle (10,-5);
156
157
\draw[fill=purple!20,purple!20, rounded corners] (0.55, -3.1) rectangle (3.5,-3.9);
158
\draw[fill=purple!20,purple!20, rounded corners] (4.55, -3.1) rectangle (7.5,-3.9);
159
160
\draw[fill=blue!20,blue!20, rounded corners] (-1.45,-1.4) rectangle (1.5,-0.6);
161
\draw[fill=blue!20,blue!20, rounded corners] (2.55,-1.4) rectangle (5.5,-0.6);
162
\draw[fill=blue!20,blue!20, rounded corners] (6.55,-1.4) rectangle (9.5,-0.6);
163
164
\draw (2, 0) node[longName] (A) {Modul: Programmieren}
165
(6, 0) node[explanation] (X) {
166
\begin{minipage}{0.9\textwidth}
167
\tiny
168
\begin{itemize}
169
\item 5 ECTS
170
\end{itemize}
171
\end{minipage}
172
}
173
(0,-1) node[algebraicName] (B) {Tutorium}
174
(4,-1) node[algebraicName] (C) {Übung}
175
(8,-1) node[algebraicName] (D) {Vorlesung}
176
(0,-2) node[algebraicName] (E) {Student}
177
(4,-2) node[algebraicName] (F) {Mitarbeiter}
178
(8,-2) node[algebraicName] (G) {Dozent}
179
(2,-3.5) node[algebraicName, purple] (H) {Übungsschein}
180
(1.8,-4.35) node[explanation] (X) {
181
\begin{minipage}{\textwidth}
182
\tiny
183
\begin{itemize} \itemsep-0.2em
184
\item Muss bestanden werden
185
\item Keine Note
186
\item keine Bonuspunkte
187
\end{itemize}
188
\end{minipage}
189
}
190
(6,-3.5) node[algebraicName, purple] (I) {Klausur}
191
(5.8,-4.3) node[explanation] (X) {
192
\begin{minipage}{\textwidth}
193
\tiny
194
\begin{itemize} \itemsep-0.2em
195
\item Muss bestanden werden
196
\item Abschlussnote ergibt Modulnote
197
\end{itemize}
198
\end{minipage}
199
};
200
201
\draw[blue, thick, rounded corners] ($(B.north west)$) rectangle ($(B.south east)$);
202
\draw[blue, thick, rounded corners] ($(C.north west)$) rectangle ($(C.south east)$);
203
\draw[blue, thick, rounded corners] ($(D.north west)$) rectangle ($(D.south east)$);
204
205
\draw[purple, thick, rounded corners] ($(H.north west)$) rectangle ($(H.south east)$);
206
\draw[purple, thick, rounded corners] ($(I.north west)$) rectangle ($(I.south east)$);
207
208
\draw[lime, thick, rounded corners] ($(B.north west)+(-0.1,0.1)$) rectangle ($(E.south east)+(0.1,-0.1)$);
209
\draw[lime, thick, rounded corners] ($(C.north west)+(-0.1,0.1)$) rectangle ($(F.south east)+(0.1,-0.1)$);
210
\draw[lime, thick, rounded corners] ($(D.north west)+(-0.1,0.1)$) rectangle ($(G.south east)+(0.1,-0.1)$);
211
\end{tikzpicture}
212
\end{frame}
213
214
\subsection{Was ist der Job eines Tutors?}
215
\begin{frame}
216
\frametitle{Was ist der Job eines Tutors?}
217
\begin{itemize}
218
\item Fragen zum Stoff beantworten
219
\begin{itemize}
220
\item Gerne auch \emph{etwas} darüber hinaus
221
\end{itemize}
222
\item Fragen zur Vorlesung beantworten
223
\begin{itemize}
224
\item z.B. Klausurmodalitäten
225
\end{itemize}
226
\item Übungsblätter korrigieren
227
\end{itemize}
228
\end{frame}
229
230
\subsection{Was ist nicht der Job eines Tutors?}
231
\begin{frame}
232
\frametitle{Was ist \underline{nicht} der Job eines Tutors?}
233
\begin{itemize}
234
\item Vorlesung wiederholen
235
\item Bespaßung im Tutorium
236
\item Jeden durch die Klausur bringen
237
\item \dots oder die Korrektur der Klausur
238
\end{itemize}
239
\end{frame}
240
241
\subsection{Für was ist der Student verantwortlich?}
242
\begin{frame}
243
\frametitle{Für was ist der Student verantwortlich?}
244
Der Student ist für sich selbst verantwortlich, also \dots
245
\begin{itemize}
246
\item \dots die rechtzeitige Übungsblattabgabe
247
\item \dots die Vor- und Nachbereitung der Vorlesung
248
\item \dots das Lernen der Inhalte
249
\item \dots die rechtzeitige Klausuranmeldung
250
\item \dots das Finden relevanter Informationen
251
\end{itemize}
252
\end{frame}
253
254
\subsection{Warnung!}
255
256
\subsection{Erinnerungen}
257
\begin{frame}{Erinnerungen}
258
259
\begin{block}{Praktomat-Anmeldung}
260
\url{https://praktomat.info.uni-karlsruhe.de/praktomat\_2012\_WS/}
261
\begin{itemize}
262
\item Deadline: \textbf{Freitag, 02. November 2012}
263
\end{itemize}
264
\end{block}
265
266
\begin{block}{Disclaimer: \href{http://tinyurl.com/prog-disclaimer}{tinyurl.com/prog-disclaimer}}
267
\begin{itemize}
268
\item PDF im VAB
269
\item Abgabe in den Briefkasten der Vorlesung Programmieren\\(Gebäude 50.34, Keller)
270
\item Deadline: \textbf{Freitag, 02. November 2012}
271
\end{itemize}
272
\end{block}
273
274
\begin{block}{Übungsschein \href{studium.kit.edu}{http://studium.kit.edu}}
275
\begin{itemize}
276
\item Anmeldung für den Übungsschein
277
\item Deadline: \textbf{Sonntag, 31. März 2013}
278
\end{itemize}
279
\end{block}
280
\end{frame}
281
282
\subsection{Nicht abschreiben!}
283
\begin{frame}{Nicht abschreiben!}
284
\begin{alertblock}{Warnung!}
285
\begin{itemize}
286
\item \emph{\textbf{Nicht abschreiben!}}
287
\item Schon bei \textbf{einmaligem} Nachweis verwirkt man die Chance auf den \textbf{Übungsschein}
288
\item Ohne Schein darf man die \textbf{Abschlussaufgabe} nicht schreiben
289
\item Nur mit beidem besteht man das \textbf{Modul Programmieren}
290
\item Programmieren ist Teil der \textbf{Orientierungsprüfung}
291
\item Ohne bestandene Orientierungsprüfung bis zum 3. Semester \textbf{fällt man aus dem Studium} und darf bundesweit das Studienfach nicht mehr belegen!
292
\end{itemize}
293
\end{alertblock}
294
\end{frame}
295
296
\subsection{Praktomat}
297
\begin{frame}{Praktomat}
298
\begin{itemize}
299
\item Ihr könnt beliebig häufig Lösungen hochladen!
300
\item Ladet Teillösungen hoch
301
\begin{itemize}
302
\item[$\Rightarrow$] Sicherungskopie für euch
303
\item[$\Rightarrow$] Eine vergessene Deadline ist nicht ganz so ärgerlich
304
\end{itemize}
305
\item Rechnet nicht mit der Erreichbarkeit des Praktomaten
306
kurz vor der Deadline
307
\item \textbf{Disclaimer nicht vergessen!}
308
\end{itemize}
309
\end{frame}
310
311
\section{Was ist Programmieren?}
312
\subsection{Algorithmen}
313
\begin{frame}
314
\frametitle{Algorithmen}
315
\begin{block}{Allgemeines}
316
\begin{itemize}
317
\item Modul des 2. Semesters
318
\item 6 ECTS
319
\end{itemize}
320
\end{block}
321
\begin{block}{Themen}
322
\begin{itemize}
323
\item Sortieralgorithmen
324
\item Suchalgorithmen
325
\item Speicherplatz- und Laufzeitkomplexität
326
\item Weiterführende Datenstrukturen (Stack, Heap, B-Bäume, \dots)
327
\end{itemize}
328
\end{block}
329
\end{frame}
330
331
\subsection{SWT - Softwaretechnik}
332
\begin{frame}
333
\frametitle{SWT - Softwaretechnik}
334
oder auch "`Programmieren im Großen"'
335
\begin{block}{Allgemeines}
336
\begin{itemize}
337
\item Modul des 2. Semesters
338
\item 6 ECTS
339
\end{itemize}
340
\end{block}
341
\begin{block}{Themen}
342
\begin{itemize}
343
\item Wie gehe ich die Entwicklung von Software an?
344
\item Wie strukturiere ich Programme?
345
\item Wie entwickle ich \emph{leicht} wartbare Software?
346
\item Entwurfsmuster
347
\item Wasserfallmodell, Scrum, V-Modell
348
\end{itemize}
349
\end{block}
350
\end{frame}
351
352
\subsection{Programmieren}
353
\begin{frame}
354
\frametitle{Programmieren}
355
oder auch "`Programmieren im Kleinen"'
356
\begin{block}{Allgemeines}
357
\begin{itemize}
358
\item Modul des 1. Semesters
359
\item 5 ECTS
360
\item Teil der Orientierungsprüfung
361
\end{itemize}
362
\end{block}
363
\begin{block}{Themen}
364
\begin{itemize}
365
\item \textbf{Allgemeines}: Was ist eine if-Abfrage, was eine for- bzw. while-Schleife?
366
\item Wie mache ich meinen Code wartbar?
367
\item \textbf{Objektorientierung}: Was ist eine Klasse, was ein Objekt?
368
\item Modellierung von Problemen
369
\item \textbf{Elementare Datenstrukturen und -typen}: int, String, Array
370
\end{itemize}
371
\end{block}
372
\end{frame}
373
374
\section{Java}
375
\subsection{Begriffe}
376
\begin{frame}{Begriffe}
377
\begin{block}{JDK}
378
Das Java Development Kit (JDK) ist eines der von
379
Java-Entwicklern meistgenutzten Java-SDKs.\\
380
$[\dots]$ Nun wird eine angepasste freie Version als ihr nunmehr
381
offizieller Nachfolger unter dem Namen OpenJDK weitergeführt.
382
\end{block}
383
384
\begin{block}{JRE}
385
Die Java-Laufzeitumgebung (englisch: Java Runtime Environment, kurz JRE)
386
ist die Laufzeitumgebung der Java-Technik. Mit ihr werden
387
Programme (Java-Anwendungen) weitgehend unabhängig vom
388
darunter liegenden Betriebssystem ausgeführt.
389
\end{block}
390
391
Quelle: Wikipedia
392
\end{frame}
393
394
\subsection{Workflow}
395
\framedgraphic{Workflow}{schaubild-java-workflow.png}
396
397
\section{System einrichten}
398
\subsection{Linux}
399
\begin{frame}{Java unter Linux}
400
\begin{itemize}
401
\item Ubuntu: \href{http://wiki.ubuntuusers.de/Java/Installation}{UbuntuUsers.de}\\
402
\myCode{\$ sudo apt-get install openjdk-7-jre openjdk-7-jdk}
403
\item Arch: \href{https://wiki.archlinux.de/title/Java}{archlinux.de}\\
404
\myCode{\$ pacman -S jre7-openjdk}
405
\end{itemize}
406
\end{frame}
407
408
\subsection{Windows}
409
\begin{frame}{Windows}
410
\begin{itemize}
411
\item \href{http://java.com/de/download/index.jsp}{java.com/download}
412
\end{itemize}
413
\includegraphics[width=100mm]{java-download.png}
414
\end{frame}
415
416
\begin{frame}{Windows - 32 oder 64 Bit Version?}
417
\menu{Start > Systemsteuerung} oder \keys{Windows + Pause}
418
\includegraphics{windows-systemsteuerung.png}
419
\end{frame}
420
421
\begin{frame}{Windows - cmd}
422
\begin{itemize}
423
\item Ausführen: \myCode{cmd}
424
\item \myCode{> javac -version}
425
\item \myCode{javac 1.7.0\_09} $\rightarrow$ hat geklappt
426
\item Sonst: javac zu PATH hinzufügen
427
\begin{enumerate}
428
\item Wo liegt "`javac.exe"'?\\(z.B. \directory{C:/Program Files/Java/jdk1.7.0\_09/bin/javac.exe})
429
\item Systemsteuerung (\keys{Windows + Pause})\\
430
\menu{Systemsteuerung > Erweiterte Systemeinstellungen > Umgebungsvariablen}
431
\item Zu "`Path"' durch \myCode{;} getrennt hinzufügen
432
\end{enumerate}
433
\end{itemize}
434
\end{frame}
435
436
\subsection{Java testen}
437
\begin{frame}{Java testen}
438
\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=HelloWorld.java]{java}{HelloWorld.java}
439
\inputminted[linenos=false]{console}{Bash.sh}
440
\end{frame}
441
442
\subsection{Eclipse: Allgemeines}
443
\begin{frame}{Eclipse: Allgemeines}
444
\begin{itemize}
445
\item Sehr komfortable Java-IDE:
446
\begin{itemize}
447
\item Syntaxhighlighting und Code-Vervollständigung
448
\item Automatisch korrektes Einrücken mit \keys{\ctrl + \shift + F})
449
\end{itemize}
450
\item Sehr groß (RAM \& HDD)
451
\item Startet Langsam
452
\item Müsst ihr in SWT verwenden
453
\item Download: \href{http://www.eclipse.org/}{eclipse.org}
454
\end{itemize}
455
\end{frame}
456
457
\subsection{Eclipse: Einrichten}
458
\begin{frame}{Eclipse: Einrichten}
459
\begin{itemize}
460
\item \menu{Window > Open Perspective > Java}
461
\item \menu{Window > Show Toolbar}
462
\item \menu{Window > Preferences > General > Editors > Text Editors}
463
\begin{itemize}
464
\item Show line numbers
465
\item Print margin column: 120
466
\end{itemize}
467
\end{itemize}
468
\end{frame}
469
470
\framedgraphic{Zwischenstand}{eclipse-einrichten.png}
471
472
\subsection{Eclipse: Erstes Projekt}
473
\begin{frame}{Eclipse: Erstes Projekt}
474
\begin{itemize}
475
\item \menu{File > New > Java}: Projektname: HelloWorld
476
\item \menu{File > New > Class}: Name: HelloWorld
477
\end{itemize}
478
\end{frame}
479
480
\framedgraphic{Zwischenstand}{eclipse-projekt.png}
481
482
\section{Wiederholung}
483
\subsection{Begriffe}
484
\begin{frame}{Begriffe}
485
Welche Begriffe habt ihr in der Vorlesung kennen gelernt?
486
\end{frame}
487
488
\begin{frame}{Begriffe}
489
\begin{itemize}
490
\item \textbf{Objekt}: Exemplar eines bestimmten Datentyps
491
\item \textbf{Klasse}: abstraktes Modell für eine Reihe von ähnlichen Objekten
492
\item \textbf{Variable}: Behälter für Werte
493
\item \textbf{Konstante}: Wert, der sich während der Laufzeit des Programms nicht ändern kann
494
\item \textbf{Attribut}: Eigenschaft eines konkreten Objekts
495
\item \textbf{Funktion}: Programmkonstrukt mit Parametern und Rückgabewert
496
\item \textbf{Methode}: Funktion in einem Objekt
497
\item \textbf{Datentyp}: Zusammenfassung von Objektmengen mit den darauf definierten Operationen
498
\item int, Integer
499
\item String
500
\item \dots
501
\end{itemize}
502
\end{frame}
503
504
\subsection{Beispiel für eine Klasse}
505
\begin{frame}{Beispiel für eine Klasse}
506
\begin{block}{Schal}
507
\begin{itemize}
508
\item hat eine Farbe
509
\item besteht aus einem Stoff
510
\item hat eine Länge
511
\item kann warm halten
512
\end{itemize}
513
\end{block}
514
\end{frame}
515
516
\subsection{Java: Primitive Datentypen}
517
\begin{frame}{Java: Primitive Datentypen}
518
\begin{tabular}{l|l|l}
519
Datentyp & Werte & Länge\\
520
\hline
521
\hline
522
boolean & \texttt{true} oder \texttt{false} & 1 Byte\\
523
char & 16-Bit Unicode Zeichen & 2 Byte\\
524
\hline
525
byte & $-2^7 =-128 \dots 2^7-1$ & 1 Byte\\
526
short & $-2^{15}=-32\,768 \dots 2^{15}-1$ & 2 Byte\\
527
int & $-2^{31}\approx-2 \cdot 10^9 \dots 2^{31}-1$ & 4 Byte\\
528
long & $-2^{63}=-9\cdot 10^{18} \dots 2^{63}-1$ & 8 Byte\\
529
\hline
530
float & single-precision 32-bit IEEE 754 floating point & 4 Byte\\
531
double & double-precision 64-bit IEEE 754 floating point & 8 Byte\\
532
\end{tabular}
533
\\
534
Quelle: \href{http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html}{docs.oracle.com}
535
\end{frame}
536
537
\subsection{Java: Enum}
538
\begin{frame}{Java: Enum}
539
\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=Day.java]{java}{Day.java}
540
Quelle: \href{http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html}{docs.oracle.com}
541
\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=SomeClass.java]{java}{SomeClass.java}
542
\end{frame}
543
544
\subsection{Java: String}
545
\begin{frame}{Java: String}
546
\begin{itemize}
547
\item \textbf{Klasse} für Zeichenketten
548
\item UTF-16
549
\item max. $2^{31}-1 = 2\,147\,483\,647$ Zeichen (siehe \href{http://stackoverflow.com/a/816152/562769}{stackoverflow.com})
550
\begin{itemize}
551
\item King James Bible: $4\,397\,206$ Zeichen\\
552
(\href{http://printkjv.ifbweb.com/\#downloads}{Quelle} \& \myCode{wc -w file.txt})
553
\end{itemize}
554
\item weitere Informationen: \href{http://docs.oracle.com/javase/7/docs/api/java/lang/String.html}{docs.oracle.com}
555
\end{itemize}
556
\end{frame}
557
558
\subsection{Java: Naming Conventions}
559
\begin{frame}{Java: Naming Conventions}
560
\begin{itemize}
561
\item \myCode{camelCase} für Variablen und Attribute
562
\item \myCode{BIG\_AND\_FAT} für Konstanten
563
\item Typische Variablen- und Methodennamen:
564
\begin{itemize}
565
\item isSomething: Meist für \texttt{boolean}
566
\item hasSomething: Meist Methode mit Rückgabewert \texttt{boolean}
567
\item getValue: Getter, Wrapper für Attribut "`value"'
568
\item setValue: Setter, Wrapper für Attribut "`value"'
569
\end{itemize}
570
\item Genauer: \href{http://www.oracle.com/technetwork/java/codeconventions-150003.pdf}{orcacle.com}, ab S. 15
571
\end{itemize}
572
\end{frame}
573
574
\subsection{Aufgabenstellung}
575
\begin{frame}{Aufgabenstellung}
576
\begin{alertblock}{Bitte achtet auf folgendes:}
577
\begin{itemize}
578
\item Einsatz sinnvoller Datentypen
579
\item aussagekräftige Attributnamen
580
\item Einrückungen, Namenskonventionen, Dokumentation
581
\end{itemize}
582
\end{alertblock}
583
\end{frame}
584
585
\section{Abspann}
586
\subsection{Hinweise zum Übungsblatt}
587
\begin{frame}{Hinweise zum Übungsblatt}
588
\begin{itemize}
589
\item Aufgaben online im \textbf{Praktomaten} oder im \textbf{VAB}
590
\item Abgabetermin: Montag, der \textbf{5. November 2012, 13 Uhr}
591
\item Abgabe online im Praktomaten\\
592
Uni-Netz oder VPN erforderlich!
593
\item min. \textbf{50 \% der Gesamtpunktzahl} zum Bestehen des Scheins\\
594
(ca. 60 Punkte)
595
\item \textbf{keine Bibliotheken} verwenden, die im Übungsblatt nicht explizit zugelassen wurden
596
\item keine ungewollte Funktionalität einbauen es gilt die Devise:\\ \textbf{Einfache Fragen erfordern einfache Antworten!}
597
\end{itemize}
598
\end{frame}
599
600
\subsection{Dropbox Space Race}
601
\begin{frame}{Dropbox Space Race}
602
\begin{itemize}
603
\item Hat nichts mit Programmieren zu tun
604
\item Bei \href{https://www.dropbox.com/spacerace}{dropbox.com} anmelden
605
\item KIT ist auf Platz 3, RWTH Aachen und TU München vor uns
606
\end{itemize}
607
\end{frame}
608
609
\subsection{Comic}
610
\framedgraphic{Vielen Dank für eure Aufmerksamkeit!}{../images/Teach-yourself-C++-in-21-days.png}
611
612
\end{document}
613
614