slides01.tex
author Christian Urban <urbanc@in.tum.de>
Sat, 22 Sep 2012 19:50:07 +0100
changeset 0 8d6145cea799
child 1 4856ff72a64b
permissions -rw-r--r--
initial
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     1
\documentclass[dvipsnames,14pt,t]{beamer}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     2
\usepackage{beamerthemeplainculight}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     3
\usepackage[T1]{fontenc}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     4
\usepackage[latin1]{inputenc}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     5
\usepackage{mathpartir}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     6
\usepackage[absolute,overlay]{textpos}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     7
\usepackage{ifthen}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     8
\usepackage{tikz}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     9
\usepackage{pgf}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    10
\usepackage{calc} 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    11
\usepackage{ulem}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    12
\usepackage{courier}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    13
\usepackage{listings}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    14
\renewcommand{\uline}[1]{#1}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    15
\usetikzlibrary{arrows}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    16
\usetikzlibrary{automata}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    17
\usetikzlibrary{shapes}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    18
\usetikzlibrary{shadows}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    19
\usetikzlibrary{positioning}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    20
\usetikzlibrary{calc}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    21
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    22
%%%\usetikzlibrary{mindmap}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    23
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    24
\usepackage{graphicx} 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    25
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    26
\definecolor{javared}{rgb}{0.6,0,0} % for strings
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    27
\definecolor{javagreen}{rgb}{0.25,0.5,0.35} % comments
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    28
\definecolor{javapurple}{rgb}{0.5,0,0.35} % keywords
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    29
\definecolor{javadocblue}{rgb}{0.25,0.35,0.75} % javadoc
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    30
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    31
\lstset{language=Java,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    32
	basicstyle=\ttfamily,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    33
	keywordstyle=\color{javapurple}\bfseries,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    34
	stringstyle=\color{javagreen},
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    35
	commentstyle=\color{javagreen},
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    36
	morecomment=[s][\color{javadocblue}]{/**}{*/},
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    37
	numbers=left,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    38
	numberstyle=\tiny\color{black},
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    39
	stepnumber=1,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    40
	numbersep=10pt,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    41
	tabsize=2,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    42
	showspaces=false,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    43
	showstringspaces=false}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    44
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    45
\lstdefinelanguage{scala}{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    46
  morekeywords={abstract,case,catch,class,def,%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    47
    do,else,extends,false,final,finally,%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    48
    for,if,implicit,import,match,mixin,%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    49
    new,null,object,override,package,%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    50
    private,protected,requires,return,sealed,%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    51
    super,this,throw,trait,true,try,%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    52
    type,val,var,while,with,yield},
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    53
  otherkeywords={=>,<-,<\%,<:,>:,\#,@},
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    54
  sensitive=true,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    55
  morecomment=[l]{//},
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    56
  morecomment=[n]{/*}{*/},
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    57
  morestring=[b]",
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    58
  morestring=[b]',
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    59
  morestring=[b]"""
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    60
}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    61
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    62
\lstset{language=Scala,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    63
	basicstyle=\ttfamily,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    64
	keywordstyle=\color{javapurple}\bfseries,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    65
	stringstyle=\color{javagreen},
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    66
	commentstyle=\color{javagreen},
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    67
	morecomment=[s][\color{javadocblue}]{/**}{*/},
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    68
	numbers=left,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    69
	numberstyle=\tiny\color{black},
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    70
	stepnumber=1,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    71
	numbersep=10pt,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    72
	tabsize=2,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    73
	showspaces=false,
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    74
	showstringspaces=false}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    75
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    76
% beamer stuff 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    77
\renewcommand{\slidecaption}{Scala, King's College London, 27.~March 2012}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    78
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    79
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    80
\begin{document}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    81
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    82
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    83
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    84
\begin{frame}<1>[t]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    85
\frametitle{%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    86
\begin{tabular}{@ {\hspace{-3mm}}c@ {}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    87
\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    88
\large \textcolor{black}{PRA, Programming Applications:}\\[5mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    89
\Huge Scala\\[-1mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    90
\large ``Better Java'' for Programming the JVM\\[5mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    91
\normalsize \textcolor{black}{Christian Urban}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    92
\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    93
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    94
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    95
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    96
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    97
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    98
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    99
\frametitle{\begin{tabular}{c}1.~Reason\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   100
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   101
\begin{textblock}{6}(1,3)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   102
\begin{tabular}{l}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   103
\mbox{}\hspace{-1mm}\includegraphics[scale=0.36]{twitter.png}\\[-1mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   104
\includegraphics[scale=0.30]{linked.png}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   105
\includegraphics[scale=0.30]{guardian.jpg}\\[-3mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   106
\mbox{}\hspace{-2mm}\includegraphics[scale=0.38]{morgan.png}\\[-3mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   107
\includegraphics[scale=0.30]{suisse.png}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   108
\includegraphics[scale=0.20]{edf.png}\\[-1mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   109
\includegraphics[scale=0.08]{novell.png}\\[-1mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   110
\includegraphics[scale=0.30]{foursquare.png}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   111
\includegraphics[scale=0.30]{hsbc.png}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   112
{\large\bf ...}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   113
\end{tabular}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   114
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   115
 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   116
\only<2->{  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   117
\begin{textblock}{6}(6,3)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   118
\includegraphics[scale=0.35]{jobgraph.png}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   119
\end{textblock}}  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   120
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   121
\only<3->{  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   122
\begin{textblock}{6}(7.3,9.2)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   123
\begin{tabular}{l}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   124
\footnotesize 2013: 1$\%$\\[-2mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   125
\footnotesize 2014: 3$\%$\\[-2mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   126
\footnotesize 2015: 9$\%$\\[-2mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   127
\footnotesize 2016: 27$\%$\\[-2mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   128
\footnotesize 2017: 81$\%$\\[-2mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   129
\footnotesize 2018: 243$\%$ \raisebox{-1mm}{\includegraphics[scale=0.02]{smiley.jpg}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   130
\end{tabular}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   131
\end{textblock}}  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   132
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   133
\only<3->{  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   134
\begin{textblock}{6}(6,9.5)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   135
\footnotesize 5 yrs $\begin{cases}\mbox{}\\[1.4cm]\end{cases}$
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   136
\end{textblock}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   137
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   138
\only<4->{  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   139
\begin{textblock}{11}(5,14.1)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   140
\textcolor{gray}{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   141
\footnotesize {\bf in London today:} 1 Scala job for every 30 Java jobs;\\[-2mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   142
Scala programmers seem to get up to 20\% better salary}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   143
\end{textblock}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   144
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   145
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   146
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   147
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   148
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   149
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   150
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   151
\frametitle{\begin{tabular}{c}2.~Reason\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   152
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   153
\begin{textblock}{11}(1,7)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   154
\begin{tikzpicture}[scale=1.0]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   155
%\draw[step=2mm] (-1,-1) grid (10,1);
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   156
\draw[->, line width=2mm] (-0.2,0) -- (11,0);
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   157
\draw[line width=0.8mm] (0,0) -- (0,-0.3);
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   158
\node at (0,-0.5) [black] {\footnotesize 1985};
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   159
\draw[line width=0.8mm] (2.8,0) -- (2.8,-0.3);
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   160
\node at (2.8,-0.5) [black] {\footnotesize 1992};
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   161
\draw[line width=0.8mm] (1.2,0) -- (1.2,-0.3);
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   162
\node at (1.2,-0.5) [black] {\footnotesize 1988};
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   163
\draw[line width=0.8mm] (4.8,0) -- (4.8,-0.3);
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   164
\node at (4.8,-0.5) [black] {\footnotesize 1997};
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   165
\draw[line width=0.8mm] (6,0) -- (6,-0.3);
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   166
\node at (6,-0.5) [black] {\footnotesize 2000};
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   167
\draw[line width=0.8mm] (7.6,0) -- (7.6,-0.3);
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   168
\node at (7.6,-0.5) [black] {\footnotesize 2004};
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   169
\draw[line width=0.8mm] (10.4,0) -- (10.4,-0.3);
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   170
\node at (10.4,-0.5) [black] {\footnotesize 2011};
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   171
\end{tikzpicture}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   172
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   173
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   174
\begin{textblock}{5}(1,9)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   175
\small Basic\\[-1mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   176
Assembler\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   177
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   178
\begin{textblock}{5}(2.8,11)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   179
\small Pascal\\[-1mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   180
C\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   181
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   182
\begin{textblock}{5}(4.3,9)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   183
\small Modula 3\\[-1mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   184
C++\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   185
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   186
\begin{textblock}{5}(6.7,9)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   187
\small $\lambda$Prolog\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   188
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   189
\begin{textblock}{5}(8.6,9)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   190
\small Ocaml\\[-1mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   191
\small SMLj\\[-1mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   192
\small Pizza
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   193
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   194
\begin{textblock}{5}(10.6,9)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   195
\normalsize\bf SML\\[-1mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   196
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   197
\begin{textblock}{5}(14,9)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   198
\small Scala\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   199
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   200
\begin{textblock}{5}(13.2,11)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   201
\small \underline{Future?}\\[0mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   202
\small Python\\[-1mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   203
\small Ruby\\[-1mm]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   204
\small Javascript\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   205
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   206
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   207
\begin{textblock}{5}(0.2,2)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   208
\includegraphics[scale=0.30]{punch.jpg}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   209
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   210
\begin{textblock}{5}(0.4,4.5)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   211
\includegraphics[scale=0.20]{plus4.jpg}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   212
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   213
\begin{textblock}{5}(2.8,2.1)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   214
\includegraphics[scale=0.15]{robotron.jpg}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   215
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   216
\begin{textblock}{5}(5.0,3.7)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   217
\includegraphics[scale=0.10]{sparc.jpg}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   218
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   219
\begin{textblock}{5}(8.0,4)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   220
\includegraphics[scale=0.40]{titanium.jpg}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   221
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   222
\begin{textblock}{5}(12,4.5)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   223
\includegraphics[scale=0.10]{air.jpg}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   224
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   225
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   226
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   227
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   228
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   229
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   230
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   231
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   232
\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   233
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   234
\large
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   235
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   236
\item compiles to JVM (.Net \& Android)\bigskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   237
\item integrates seamlessly with Java (Swing)\bigskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   238
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   239
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   240
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   241
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   242
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   243
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   244
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   245
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   246
\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   247
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   248
\large
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   249
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   250
\item combines {\bf functional} and {\bf object-oriented} programming
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   251
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   252
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   253
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   254
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   255
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   256
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   257
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   258
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   259
\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   260
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   261
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   262
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   263
\item \large {\bf Actors}:\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   264
\normalsize keep asynchronous concurrency simple 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   265
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   266
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   267
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   268
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   269
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   270
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   271
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   272
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   273
\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   274
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   275
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   276
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   277
\item \large {\bf Immutability}:\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   278
\normalsize keeps concurrency predictable
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   279
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   280
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   281
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   282
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   283
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   284
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   285
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   286
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   287
\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   288
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   289
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   290
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   291
\item \large {\bf First-Class Functions}:\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   292
\normalsize powerful idea from functional programming
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   293
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   294
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   295
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   296
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   297
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   298
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   299
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   300
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   301
\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   302
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   303
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   304
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   305
\item \large {\bf Pattern-Matching}:\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   306
\normalsize ``keeps your needles out of the haystacks''
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   307
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   308
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   309
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   310
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   311
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   312
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   313
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   314
\begin{frame}[t]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   315
\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   316
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   317
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   318
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   319
\item \large {\bf You can avoid \textcolor{blue}{\texttt{null}}}:
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   320
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   321
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   322
\begin{textblock}{6}(0.5,5)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   323
  \begin{tikzpicture}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   324
  \draw (0,0) node[inner sep=3mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   325
  { \begin{minipage}{11cm}\raggedright\small
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   326
  	``I call it my billion-dollar mistake. It was the invention of the null reference in 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   327
		1965. At that time, I was designing the first comprehensive type system for references in an 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   328
		object oriented language (ALGOL W). My goal was to ensure that all use of references should 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   329
		be absolutely safe, with checking performed automatically by the compiler. But I couldn't resist 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   330
		the temptation to put in a null reference, simply because it was so easy to implement. This has 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   331
		led to innumerable errors, vulnerabilities, and system crashes, which have probably caused 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   332
		a billion dollars of pain and damage in the last forty years.'' Sir Tony Hoare\end{minipage}};
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   333
\end{tikzpicture}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   334
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   335
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   336
\begin{textblock}{5}(11.8,1)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   337
\includegraphics[scale=0.20]{hoare.jpg}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   338
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   339
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   340
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   341
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   342
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   343
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   344
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   345
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   346
\frametitle{\begin{tabular}{c}\texttt{null}\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   347
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   348
\lstset{language=java}\footnotesize
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   349
\texttt{\lstinputlisting{MapJavaTester.java}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   350
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   351
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   352
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   353
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   354
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   355
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   356
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   357
\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   358
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   359
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   360
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   361
\item \large The Price You Pay with Scala: \textcolor{red}{\bf Complexity}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   362
\normalsize But it is worth it!
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   363
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   364
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   365
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   366
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   367
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   368
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   369
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   370
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   371
\frametitle{\begin{tabular}{c}Java: A Brief History\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   372
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   373
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   374
\item Released in 1995 by James Gosling from \\Sun Microsystems (work started in 1991)\medskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   375
\item derives much of its syntax from C and C++\medskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   376
\item compiles to JVM (``write once, run everywhere'')\medskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   377
\item no pointers --- instead automatic memory management (has a garbage collector)\medskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   378
\item statically typed\\ (``you cannot compare apples with oranges'')
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   379
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   380
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   381
\begin{textblock}{5}(13,2)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   382
\includegraphics[scale=0.20]{java.png}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   383
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   384
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   385
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   386
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   387
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   388
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   389
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   390
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   391
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   392
\lstset{language=java}\fontsize{8}{10}\selectfont
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   393
\texttt{\lstinputlisting{FruitMain.java}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   394
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   395
\only<2>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   396
\begin{textblock}{6}(5,5)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   397
\begin{tikzpicture}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   398
  \draw (0,0) node[inner sep=3mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   399
  {\begin{minipage}{8cm}\raggedright\tt\footnotesize
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   400
\begin{tabular}{l}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   401
FruitMain.java:20:~incompatible types\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   402
found: Orange\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   403
required: Apple\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   404
        a = o;\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   405
1 error\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   406
\end{tabular}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   407
\end{minipage}};
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   408
\end{tikzpicture}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   409
\end{textblock}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   410
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   411
  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   412
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   413
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   414
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   415
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   416
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   417
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   418
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   419
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   420
\lstset{language=java}\fontsize{8}{10}\selectfont
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   421
\texttt{\lstinputlisting{FruitArray.java}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   422
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   423
\only<2>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   424
\begin{textblock}{8}(1,5)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   425
\begin{tikzpicture}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   426
  \draw (0,0) node[inner sep=3mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   427
  {\begin{minipage}{11cm}\raggedright\tt\fontsize{8}{10}\selectfont
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   428
\begin{tabular}{l}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   429
{\large \rm runtime exception}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   430
orange\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   431
Exception in thread "main" java.lang.ArrayStoreException:~Apple\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   432
at FruitArray.main(FruitArray.java:21)\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   433
\end{tabular}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   434
\end{minipage}};
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   435
\end{tikzpicture}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   436
\end{textblock}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   437
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   438
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   439
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   440
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   441
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   442
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   443
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   444
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   445
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   446
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   447
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   448
\item {\bf In Java a class for students}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   449
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   450
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   451
{\lstset{language=java}\fontsize{8}{10}\selectfont
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   452
\texttt{\lstinputlisting{Student.java}}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   453
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   454
\onslide<2->{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   455
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   456
\item {\bf Same in Scala}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   457
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   458
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   459
{\lstset{language=Scala}\fontsize{8}{10}\selectfont
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   460
\texttt{\lstinputlisting{Student.scala}}}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   461
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   462
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   463
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   464
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   465
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   466
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   467
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   468
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   469
\frametitle{\begin{tabular}{c}Scala\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   470
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   471
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   472
\item First released in 2003 (work started in 2001) by Martin Odersky from EPFL in Lausanne\smallskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   473
\item at the moment 2.9.2 (2012)\smallskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   474
\item blend of functional and oo-programming\medskip\medskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   475
\item Twitter switched in 2009 from Ruby to Scala
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   476
\item Guardian switched in 2011 from Java to Scala
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   477
\item UBS approved it for general production usage (2011)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   478
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   479
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   480
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   481
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   482
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   483
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   484
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   485
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   486
\begin{frame}[t]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   487
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   488
\only<1>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   489
Hello World in Java:\medskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   490
{\lstset{language=Java}\fontsize{12}{14}\selectfont
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   491
\texttt{\lstinputlisting{Hello.java}}}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   492
\only<2->{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   493
Hello World in Scala:\medskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   494
{\lstset{language=Scala}\fontsize{12}{14}\selectfont
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   495
\texttt{\lstinputlisting{Hello.scala}}}\bigskip\medskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   496
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   497
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   498
Some curiosities, compared to Java:
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   499
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   500
\item<3-> The semicolons are missing.
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   501
\item<4-> The {\bf\texttt{public}} access modifier is missing.
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   502
\item<5-> The declaration of main starts with {\bf\texttt{def}}.
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   503
\item<6-> main returns mysterious type {\bf\texttt{Unit}}.
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   504
\item<7-> In Scala there is {\bf\texttt{object}} and {\bf\texttt{class}}.
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   505
\end{itemize}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   506
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   507
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   508
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   509
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   510
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   511
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   512
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   513
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   514
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   515
\begin{center}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   516
\textcolor{ProcessBlue}{\LARGE\bf Demo}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   517
\end{center}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   518
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   519
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   520
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   521
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   522
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   523
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   524
\frametitle{\begin{tabular}{c}Functions\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   525
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   526
Transformations:\bigskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   527
\begin{center}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   528
\LARGE
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   529
Input(s)  $\Rightarrow$ Output\bigskip\bigskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   530
\end{center}\pause
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   531
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   532
``Given some input; produce some output.''\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   533
``Transform the input into some output.''\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   534
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   535
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   536
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   537
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   538
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   539
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   540
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   541
\frametitle{\begin{tabular}{c}Functions in Scala\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   542
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   543
\mbox{}\bigskip\bigskip\bigskip\bigskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   544
{\lstset{language=Scala}\fontsize{12}{14}\selectfont
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   545
\texttt{\lstinputlisting{max.scala}}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   546
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   547
\small
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   548
\begin{textblock}{8}(1,3)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   549
{\bf\texttt{def}} starts a function definition
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   550
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   551
\begin{textblock}{8}(2.3,4)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   552
function name
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   553
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   554
\begin{textblock}{8}(3.8,5)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   555
parameter list in parentheses
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   556
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   557
\begin{textblock}{8}(6.5,6)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   558
function's result type
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   559
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   560
\begin{textblock}{8}(11,7)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   561
equal sign
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   562
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   563
\begin{textblock}{8}(9,10)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   564
function body\\ 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   565
in curly braces
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   566
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   567
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   568
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   569
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   570
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   571
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   572
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   573
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   574
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   575
{\lstset{language=Java}\fontsize{7}{8}\selectfont
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   576
\texttt{\lstinputlisting{URLReader.java}}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   577
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   578
\only<2>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   579
\begin{textblock}{5}(12,2)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   580
\includegraphics[scale=0.50]{skeleton.jpg}\\
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   581
\end{textblock}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   582
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   583
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   584
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   585
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   586
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   587
\begin{frame}[t]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   588
\frametitle{\begin{tabular}{c}Map\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   589
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   590
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   591
\item {\bf\texttt{map}} takes a function, say f, and applies it to every element of the list:
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   592
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   593
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   594
\begin{textblock}{15}(2,7)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   595
\fontsize{13}{14}\selectfont
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   596
\bf\texttt{List(1, 2, 3, 4, 5, 6, 7, 8, 9)}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   597
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   598
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   599
\begin{textblock}{15}(2,10)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   600
\fontsize{13}{14}\selectfont
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   601
\bf\texttt{List(1, 4, 9, 16, 25, 36, 49, 64, 81)}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   602
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   603
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   604
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   605
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   606
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   607
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   608
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   609
\begin{frame}<1-2>[t]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   610
\frametitle{\begin{tabular}{c}Filter\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   611
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   612
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   613
\item {\bf\texttt{filter}} takes a condition, say p, and filters out all elements of the list not satisfying p:
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   614
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   615
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   616
\begin{textblock}{15}(2,7)
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   617
\fontsize{13}{14}\selectfont
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   618
\bf\texttt{List(1, 2, 3, 4, 5, 6, 7, 8, 9)}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   619
\end{textblock}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   620
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   621
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   622
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   623
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   624
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   625
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   626
\mode<presentation>{
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   627
\begin{frame}[c]
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   628
\frametitle{\begin{tabular}{c}Conclusion\end{tabular}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   629
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   630
\begin{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   631
\item Scala is still under development (compiler is slow)\medskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   632
\item there are at least 5 books on the market\medskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   633
\item {\bf\texttt{http://www.scala-lang.org/}}\medskip
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   634
\item ``deep'' type-system (computer science)\bigskip\pause
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   635
\item (for the lazy programmer)\\ programming in Scala is much more fun
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   636
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   637
\end{itemize}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   638
\end{frame}}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   639
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   640
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   641
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   642
\end{document}
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   643
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   644
%%% Local Variables:  
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   645
%%% mode: latex
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   646
%%% TeX-master: t
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   647
%%% End: 
8d6145cea799 initial
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   648