Skip to content
This repository was archived by the owner on Apr 21, 2018. It is now read-only.

Commit 152c238

Browse files
author
YouniS Bensalah
committed
omg
1 parent 0e877ef commit 152c238

4 files changed

Lines changed: 267 additions & 0 deletions

File tree

img/collatz_conjecture.png

37.9 KB
Loading

img/java.jpg

474 KB
Loading

img/question_to_idea.jpg

105 KB
Loading

slides-07.tex

Lines changed: 267 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,267 @@
1+
%% LaTeX-Beamer template for KIT design
2+
%% by Erik Burger, Christian Hammer
3+
%% title picture by Klaus Krogmann
4+
%%
5+
%% version 2.1
6+
%%
7+
%% mostly compatible to KIT corporate design v2.0
8+
%% http://intranet.kit.edu/gestaltungsrichtlinien.php
9+
%%
10+
%% Problems, bugs and comments to
11+
12+
13+
\documentclass[18pt]{beamer}
14+
15+
%% SLIDE FORMAT
16+
17+
% use 'beamerthemekit' for standard 4:3 ratio
18+
% for widescreen slides (16:9), use 'beamerthemekitwide'
19+
20+
\usepackage{templates/beamerthemekit}
21+
% \usepackage{templates/beamerthemekitwide}
22+
23+
\usepackage[utf8]{inputenc}
24+
\usepackage{hyperref}
25+
\usepackage{listings}
26+
%\usepackage{xcolor}
27+
%\usepackage{colortbl}
28+
%\usepackage{array}
29+
%\usepackage{tikz}
30+
%\usetikzlibrary{calc,shapes.multipart,chains,arrows}
31+
32+
%\definecolor{lime}{HTML}{8FFF53}
33+
34+
\newcommand{\quotes}[1]{``#1''}
35+
36+
%% TITLE PICTURE
37+
38+
% if a custom picture is to be used on the title page, copy it into the 'logos'
39+
% directory, in the line below, replace 'mypicture' with the
40+
% filename (without extension) and uncomment the following line
41+
% (picture proportions: 63 : 20 for standard, 169 : 40 for wide
42+
% *.eps format if you use latex+dvips+ps2pdf,
43+
% *.jpg/*.png/*.pdf if you use pdflatex)
44+
45+
\titleimage{greendrop}
46+
47+
%% TITLE LOGO
48+
49+
% for a custom logo on the front page, copy your file into the 'logos'
50+
% directory, insert the filename in the line below and uncomment it
51+
52+
%\titlelogo{mylogo}
53+
54+
% (*.eps format if you use latex+dvips+ps2pdf,
55+
% *.jpg/*.png/*.pdf if you use pdflatex)
56+
57+
%% TikZ INTEGRATION
58+
59+
% use these packages for PCM symbols and UML classes
60+
% \usepackage{templates/tikzkit}
61+
% \usepackage{templates/tikzuml}
62+
63+
% the presentation starts here
64+
65+
\title[Generics]{Programmieren:\\ Generics}
66+
\subtitle{Tutorium 30}
67+
\author{YouniS Bensalah}
68+
\date{December 11, 2015}
69+
70+
\institute{Chair for Software Design and Quality}
71+
72+
% Bibliography
73+
74+
\usepackage[citestyle=authoryear,bibstyle=numeric,hyperref,backend=biber]{biblatex}
75+
\addbibresource{templates/example.bib}
76+
\bibhang1em
77+
78+
\begin{document}
79+
80+
% change the following line to "ngerman" for German style date and logos
81+
\selectlanguage{english}
82+
83+
%title page
84+
\begin{frame}
85+
\titlepage
86+
\end{frame}
87+
88+
%table of contents
89+
\begin{frame}{Heute}
90+
\tableofcontents
91+
\end{frame}
92+
93+
\section{Organisatorisches}
94+
95+
\begin{frame}{Termine}
96+
\textbf{Vorlesung}
97+
\begin{itemize}
98+
\item Die Vorlesung am 23.12.2015 entfällt.
99+
\item Die erste Vorlesung 2016 findet am 13.01.2016 statt.
100+
\end{itemize}
101+
102+
\textbf{Tutorien}
103+
\begin{itemize}
104+
\item Die Tutorien finden im Jahr 2015 bis zum 22.12.2015 statt.
105+
\item Die Tutorien im Jahr 2016 beginnen ab dem 13.01.2016.
106+
\end{itemize}
107+
\end{frame}
108+
109+
110+
\begin{frame}{Checkstyle}
111+
\begin{itemize}
112+
\item Anzahl vorgegebener Regeln, die den Programmierer \quotes{zwingen}, sauberen und lesbaren Code zu schreiben
113+
\item Diese Regeln werden in einer Checkstyle-XML-Datei zusammengefasst und können automatisch überprüft werden
114+
\item Nicht nur der Compiler muss den Code verstehen !
115+
\item Gecheckt werden\dots
116+
\begin{itemize}
117+
\item Whitespaces
118+
\item Namenskonventionen
119+
\item JavaDoc
120+
\end{itemize}
121+
\item Siehe \textit{Checkstyle} in der \textit{Programmieren Wiki} im ILIAS\\
122+
\url{https://ilias.studium.kit.edu/goto.php?target=wiki_462045_Checkstyle}
123+
\end{itemize}
124+
125+
\end{frame}
126+
127+
\begin{frame}{Read the fine manual}
128+
\begin{itemize}
129+
\item \textbf{Programmieren-Wiki im ILIAS}
130+
\begin{itemize}
131+
\item \alert{Checkstyle}
132+
\item Programmierstil
133+
\item Javadoc
134+
\item Debugging
135+
\item Eclipse IDE
136+
\item \dots
137+
\end{itemize}
138+
139+
\item \textbf{Java-Dokumentation}\\
140+
\url{https://docs.oracle.com/javase/8/}
141+
\begin{itemize}
142+
\item Java Tutorials Learning Paths
143+
\item Java SE API Documentation
144+
\item \dots
145+
\end{itemize}
146+
147+
\item Stack Overflow
148+
\item Google
149+
\item \dots
150+
151+
\end{itemize}
152+
\end{frame}
153+
154+
\section{Generics}
155+
156+
\begin{frame}{Generics}
157+
Die Idee bei Generics ist, dass man Klassen und Methoden auch \textbf{Typen als Parameter} übergeben kann.
158+
\end{frame}
159+
160+
\begin{frame}{Generics}
161+
\textbf{Was bringt das ?}
162+
\begin{itemize}
163+
\item Man kann zum Zeitpunkt der Implementierung noch unbekannte Typen durch Variablen ersetzen
164+
\item Container-Datentypen können somit unabhängig vom Typ der Daten sein
165+
\item Kein redundanter Code
166+
\end{itemize}
167+
\vspace{.2in}
168+
\textbf{Beispiel:}
169+
\begin{itemize}
170+
\item Das Prinzip von verketteten Listen funktioniert immer gleich, egal welchen Typ die einzelnen Elemente haben
171+
\end{itemize}
172+
\end{frame}
173+
174+
\begin{frame}[fragile]{Generics}
175+
\begin{itemize}
176+
\item \textbf{Syntax:}
177+
\end{itemize}
178+
179+
\begin{exampleblock}{}
180+
\begin{lstlisting}[language=Java,basicstyle=\scriptsize]
181+
class Foo<T> { ... }
182+
183+
Foo<Bar> x = new Foo<Bar>();
184+
\end{lstlisting}
185+
186+
\end{exampleblock}
187+
188+
\end{frame}
189+
190+
191+
\begin{frame}{Fragen ?}
192+
\begin{figure}
193+
\includegraphics[scale=.5]{img/question_to_idea.jpg}
194+
\end{figure}
195+
\end{frame}
196+
197+
\section{Programmieraufgaben}
198+
199+
\begin{frame}{Programmieraufgaben}
200+
\Large{Enough theory (;}
201+
\end{frame}
202+
203+
\begin{frame}{Collatz}
204+
Bei dem \textbf{Collatz-Problem} geht es um Zahlenfolgen, die wie folgt konstruiert werden:
205+
\begin{itemize}
206+
\item Beginne mit irgendeiner natürlichen Zahl $n$
207+
\item Ist $n$ gerade, so nimm als Nächstes $n / 2$
208+
\item Ist $n$ ungerade, so nimm als Nächstes $3n + 1$
209+
\item Wiederhole die Vorgehensweise mit der erhaltenen Zahl
210+
\end{itemize}
211+
212+
Die Collatz-Vermutung lautet:\\
213+
214+
\textit{Jede so konstruierte Zahlenfolge trifft irgendwann auf eine $1$, egal mit welcher Zahl $n$ man beginnt.}
215+
216+
\begin{exampleblock}{Aufgabe}
217+
Finde die natürliche Zahl $n < 1000000$, die als Startwert die längste Collatz-Folge erzeugt,
218+
bevor man auf eine $1$ trifft.
219+
\end{exampleblock}
220+
\end{frame}
221+
222+
\begin{frame}{Collatz}
223+
Die Lösung findet Ihr hier:
224+
\begin{itemize}
225+
\item \url{http://younishd.fr/prog/collatz.zip}
226+
\end{itemize}
227+
\end{frame}
228+
229+
\begin{frame}{Super List 9000}
230+
\textbf{Super List 9000} soll eine verbesserte Version der bereits bekannten \textit{verketteten Liste} werden.
231+
232+
\begin{itemize}
233+
\item \textbf{doppelt verkettete Liste}
234+
\item \texttt{addFirst()} und \texttt{addLast()} fügen ein Element an den Anfang bzw. das Ende der Liste ein.
235+
\item \texttt{remove()} löscht alle Elemente aus der Liste, die mit der \texttt{equals()}-Methode gleich einem gegebenen Element sind.
236+
\item \texttt{contains()} prüft nach, ob ein Element in der Liste vorhanden ist.
237+
\item \texttt{size()} gibt die Länge der Liste (Anzahl Elemente) aus.
238+
\item \texttt{count()} zählt, wie oft ein Element in der Liste vorkommt.
239+
\end{itemize}
240+
241+
\textbf{Template zum Download:}\\
242+
\begin{itemize}
243+
\item \url{http://younishd.fr/prog/superlist9k-template.zip}
244+
\end{itemize}
245+
246+
\end{frame}
247+
248+
\begin{frame}{Super List 9000}
249+
Die Lösung findet Ihr hier:
250+
\begin{itemize}
251+
\item \url{http://younishd.fr/prog/superlist9k.zip}
252+
\end{itemize}
253+
\end{frame}
254+
255+
\appendix
256+
\beginbackup
257+
258+
\begin{frame}{Bis nächste Woche !}
259+
\begin{figure}
260+
\includegraphics[scale=.5]{img/collatz_conjecture.png}
261+
\end{figure}
262+
(xkcd)
263+
\end{frame}
264+
265+
\backupend
266+
267+
\end{document}

0 commit comments

Comments
 (0)