
diff -r 8d6145cea799 -r 4856ff72a64b slides01.tex
--- a/slides01.tex	Sat Sep 22 19:50:07 2012 +0100
+++ b/slides01.tex	Sun Sep 23 22:00:56 2012 +0100
@@ -18,9 +18,6 @@
 \usetikzlibrary{shadows}
 \usetikzlibrary{positioning}
 \usetikzlibrary{calc}
-
-%%%\usetikzlibrary{mindmap}
-
 \usepackage{graphicx} 
 
 \definecolor{javared}{rgb}{0.6,0,0} % for strings
@@ -74,7 +71,7 @@
 	showstringspaces=false}
 
 % beamer stuff 
-\renewcommand{\slidecaption}{Scala, King's College London, 27.~March 2012}
+\renewcommand{\slidecaption}{APP 01, King's College London, 25.~September 2012}
 
 
 \begin{document}
@@ -83,64 +80,117 @@
 \mode<presentation>{
 \begin{frame}<1>[t]
 \frametitle{%
-\begin{tabular}{@ {\hspace{-3mm}}c@ {}}
-\\
-\large \textcolor{black}{PRA, Programming Applications:}\\[5mm]
-\Huge Scala\\[-1mm]
-\large ``Better Java'' for Programming the JVM\\[5mm]
-\normalsize \textcolor{black}{Christian Urban}
-\end{tabular}}
+  \begin{tabular}{@ {}c@ {}}
+  \LARGE Access Control and \\[-3mm] 
+  \LARGE Privacy Policies (1)\\[-6mm] 
+  \end{tabular}}
+
+  \begin{center}
+  \includegraphics[scale=1.3]{pics/barrier.jpg}
+  \end{center}
+
+\normalsize
+  \begin{center}
+  \begin{tabular}{ll}
+  Email:  & christian.urban at kcl.ac.uk\\
+  Office: & S1.27 (1st floor Strand Building)\\
+  Slides: & KEATS
+  \end{tabular}
+  \end{center}
+
+
 \end{frame}}
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
 
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mode<presentation>{
+\begin{frame}[c]
+\frametitle{\begin{tabular}{@ {}c@ {}}Security Engineers\end{tabular}}
+
+According to Bruce Schneier, {\bf security engineers} require
+a particular {\bf mindset}:\bigskip
+
+\begin{tikzpicture}
+\draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
+{\normalsize\color{darkgray}
+\begin{minipage}{10cm}\raggedright\small
+``Security engineers --- at least the good ones --- see the world dif$\!$ferently. 
+They can't walk into a store without noticing how they might shoplift. They can't 
+use a computer without wondering about the security vulnerabilities. They can't 
+vote without trying to figure out how to vote twice. They just can't help it.''
+\end{minipage}};
+\end{tikzpicture}
+
+\begin{flushright}
+\includegraphics[scale=0.0087]{pics/schneierbook1.jpg}\;
+\includegraphics[scale=0.0087]{pics/schneierbook2.jpg}\;
+\includegraphics[scale=0.85]{pics/schneier.png}
+\end{flushright}
+
+
+\end{frame}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
+
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \mode<presentation>{
 \begin{frame}[c]
-\frametitle{\begin{tabular}{c}1.~Reason\end{tabular}}
+\frametitle{\begin{tabular}{@ {}c@ {}}Yes\ldots\end{tabular}}
+
+\begin{tikzpicture}
+\draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
+{\normalsize\color{darkgray}
+\begin{minipage}{10cm}\raggedright\small
+The Guardian (2006): ``Chip-and-PIN is so effective in this country that fraudsters are starting to move their activities overseas,'' 
+said Emile Abu-Shakra, spokesman for Lloyds TSB.
+\end{minipage}};
+\end{tikzpicture}\bigskip
+
 
-\begin{textblock}{6}(1,3)
-\begin{tabular}{l}
-\mbox{}\hspace{-1mm}\includegraphics[scale=0.36]{twitter.png}\\[-1mm]
-\includegraphics[scale=0.30]{linked.png}\\
-\includegraphics[scale=0.30]{guardian.jpg}\\[-3mm]
-\mbox{}\hspace{-2mm}\includegraphics[scale=0.38]{morgan.png}\\[-3mm]
-\includegraphics[scale=0.30]{suisse.png}\\
-\includegraphics[scale=0.20]{edf.png}\\[-1mm]
-\includegraphics[scale=0.08]{novell.png}\\[-1mm]
-\includegraphics[scale=0.30]{foursquare.png}\\
-\includegraphics[scale=0.30]{hsbc.png}\\
-{\large\bf ...}
+\begin{itemize}
+\item mag-stripe cards cannot be cloned anymore
+\item stolen or cloned cards need to be used abroad 
+\item fraud on lost, stolen and counterfeit credit cards was down \pounds{}60m (24\%) on 2004's figure
+\end{itemize}
+
+
+\end{frame}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\mode<presentation>{
+\begin{frame}[c]
+\frametitle{\begin{tabular}{c}BUT\ldots\end{tabular}}
+
+
+\begin{textblock}{1}(3,4)
+\begin{tabular}{c}
+\includegraphics[scale=0.3]{pics/bank.png}\\[-2mm]
+\small Bank
 \end{tabular}
 \end{textblock}
- 
+
+\begin{textblock}{1}(7,4.5)
+\begin{tabular}{c}
+\includegraphics[scale=3]{pics/store.png}\\[-2mm]
+\end{tabular}
+\end{textblock}
+
 \only<2->{  
-\begin{textblock}{6}(6,3)
-\includegraphics[scale=0.35]{jobgraph.png}\\
-\end{textblock}}  
-  
-\only<3->{  
-\begin{textblock}{6}(7.3,9.2)
-\begin{tabular}{l}
-\footnotesize 2013: 1$\%$\\[-2mm]
-\footnotesize 2014: 3$\%$\\[-2mm]
-\footnotesize 2015: 9$\%$\\[-2mm]
-\footnotesize 2016: 27$\%$\\[-2mm]
-\footnotesize 2017: 81$\%$\\[-2mm]
-\footnotesize 2018: 243$\%$ \raisebox{-1mm}{\includegraphics[scale=0.02]{smiley.jpg}}
+\begin{textblock}{1}(12,6.5)
+\begin{tabular}{c}
+\includegraphics[scale=0.8]{pics/factory.png}\\[-1mm]
+\small terminal\\[-2mm] \small producer
 \end{tabular}
 \end{textblock}}  
-  
-\only<3->{  
-\begin{textblock}{6}(6,9.5)
-\footnotesize 5 yrs $\begin{cases}\mbox{}\\[1.4cm]\end{cases}$
-\end{textblock}}
 
-\only<4->{  
-\begin{textblock}{11}(5,14.1)
-\textcolor{gray}{
-\footnotesize {\bf in London today:} 1 Scala job for every 30 Java jobs;\\[-2mm]
-Scala programmers seem to get up to 20\% better salary}
-\end{textblock}}
+\begin{textblock}{1}(4.5,9.9)
+\begin{tabular}{c}
+\includegraphics[scale=0.16]{pics/rman.png}\\[-1mm]
+\small costumer / you
+\end{tabular}
+\end{textblock}  
   
 \end{frame}}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
@@ -148,93 +198,33 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \mode<presentation>{
 \begin{frame}[c]
-\frametitle{\begin{tabular}{c}2.~Reason\end{tabular}}
+\frametitle{\begin{tabular}{c}Chip-and-PIN\end{tabular}}
 
-\begin{textblock}{11}(1,7)
-\begin{tikzpicture}[scale=1.0]
-%\draw[step=2mm] (-1,-1) grid (10,1);
-\draw[->, line width=2mm] (-0.2,0) -- (11,0);
-\draw[line width=0.8mm] (0,0) -- (0,-0.3);
-\node at (0,-0.5) [black] {\footnotesize 1985};
-\draw[line width=0.8mm] (2.8,0) -- (2.8,-0.3);
-\node at (2.8,-0.5) [black] {\footnotesize 1992};
-\draw[line width=0.8mm] (1.2,0) -- (1.2,-0.3);
-\node at (1.2,-0.5) [black] {\footnotesize 1988};
-\draw[line width=0.8mm] (4.8,0) -- (4.8,-0.3);
-\node at (4.8,-0.5) [black] {\footnotesize 1997};
-\draw[line width=0.8mm] (6,0) -- (6,-0.3);
-\node at (6,-0.5) [black] {\footnotesize 2000};
-\draw[line width=0.8mm] (7.6,0) -- (7.6,-0.3);
-\node at (7.6,-0.5) [black] {\footnotesize 2004};
-\draw[line width=0.8mm] (10.4,0) -- (10.4,-0.3);
-\node at (10.4,-0.5) [black] {\footnotesize 2011};
-\end{tikzpicture}
-\end{textblock}
 
-\begin{textblock}{5}(1,9)
-\small Basic\\[-1mm]
-Assembler\\
-\end{textblock}
-\begin{textblock}{5}(2.8,11)
-\small Pascal\\[-1mm]
-C\\
-\end{textblock}
-\begin{textblock}{5}(4.3,9)
-\small Modula 3\\[-1mm]
-C++\\
-\end{textblock}
-\begin{textblock}{5}(6.7,9)
-\small $\lambda$Prolog\\
-\end{textblock}
-\begin{textblock}{5}(8.6,9)
-\small Ocaml\\[-1mm]
-\small SMLj\\[-1mm]
-\small Pizza
-\end{textblock}
-\begin{textblock}{5}(10.6,9)
-\normalsize\bf SML\\[-1mm]
-\end{textblock}
-\begin{textblock}{5}(14,9)
-\small Scala\\
-\end{textblock}
-\begin{textblock}{5}(13.2,11)
-\small \underline{Future?}\\[0mm]
-\small Python\\[-1mm]
-\small Ruby\\[-1mm]
-\small Javascript\\
-\end{textblock}
-
-\begin{textblock}{5}(0.2,2)
-\includegraphics[scale=0.30]{punch.jpg}\\
-\end{textblock}
-\begin{textblock}{5}(0.4,4.5)
-\includegraphics[scale=0.20]{plus4.jpg}\\
-\end{textblock}
-\begin{textblock}{5}(2.8,2.1)
-\includegraphics[scale=0.15]{robotron.jpg}\\
-\end{textblock}
-\begin{textblock}{5}(5.0,3.7)
-\includegraphics[scale=0.10]{sparc.jpg}\\
-\end{textblock}
-\begin{textblock}{5}(8.0,4)
-\includegraphics[scale=0.40]{titanium.jpg}\\
-\end{textblock}
-\begin{textblock}{5}(12,4.5)
-\includegraphics[scale=0.10]{air.jpg}\\
-\end{textblock}
+\begin{itemize}
+\item ``tamperesitant'' terminal playing Tetris on 
+\textcolor{blue}{\href{http://www.youtube.com/watch?v=wWTzkD9M0sU}{youtube}}\\
+\textcolor{lightgray}{\footnotesize(\url{http://www.youtube.com/watch?v=wWTzkD9M0sU})}
+\end{itemize}
+ 
+  
+\includegraphics[scale=0.2]{pics/tetris.jpg}
+  
+  
 \end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
-
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \mode<presentation>{
 \begin{frame}[c]
-\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
+\frametitle{\begin{tabular}{c}Chip-and-PIN\end{tabular}}
+
 
-\large
 \begin{itemize}
-\item compiles to JVM (.Net \& Android)\bigskip
-\item integrates seamlessly with Java (Swing)\bigskip
+\item in 2006, Shell petrol stations stopped accepting Chip-and-PIN after \pounds{}1m had been stolen from customer accounts 
+\item in 2008, hundreds of card readers for use in Britain, Ireland, the Netherlands, Denmark, and Belgium had been 
+expertly tampered with shortly after manufacture so that details and PINs of credit cards were sent during the 9 months 
+before over mobile phone networks to criminals in Lahore, Pakistan
 \end{itemize}
   
 \end{frame}}
@@ -243,40 +233,20 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \mode<presentation>{
 \begin{frame}[c]
-\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
+\frametitle{\begin{tabular}{c}Chip-and-PIN is Broken\end{tabular}}
 
-\large
-\begin{itemize}
-\item combines {\bf functional} and {\bf object-oriented} programming
-\end{itemize}
-  
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[c]
-\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
-
+\begin{flushright}
+\includegraphics[scale=0.01]{pics/andersonbook1.jpg}\;
+\includegraphics[scale=1.5]{pics/anderson.jpg}
+\end{flushright}
 
 \begin{itemize}
-\item \large {\bf Actors}:\\
-\normalsize keep asynchronous concurrency simple 
+\item Man-in-the-middle attacks by the group around Ross Anderson\medskip
 \end{itemize}
-  
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[c]
-\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
-
-
-\begin{itemize}
-\item \large {\bf Immutability}:\\
-\normalsize keeps concurrency predictable
-\end{itemize}
+\begin{center}
+\includegraphics[scale=0.5]{pics/chip-attack.png}
+\end{center}
   
 \end{frame}}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
@@ -284,57 +254,58 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \mode<presentation>{
 \begin{frame}[c]
-\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
+\frametitle{\begin{tabular}{@ {}c@ {}}Chip-and-PIN is Really Broken\end{tabular}}
 
+\begin{flushright}
+\includegraphics[scale=0.01]{pics/andersonbook1.jpg}\;
+\includegraphics[scale=1.5]{pics/anderson.jpg}
+\end{flushright}
 
 \begin{itemize}
-\item \large {\bf First-Class Functions}:\\
-\normalsize powerful idea from functional programming
+\item same group successfully attacked last this year card readers and ATM machines
+\item the problem: several types of ATMs generate poor random numbers, which are used as nonces
 \end{itemize}
-  
+
 \end{frame}}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \mode<presentation>{
 \begin{frame}[c]
-\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
-
-
-\begin{itemize}
-\item \large {\bf Pattern-Matching}:\\
-\normalsize ``keeps your needles out of the haystacks''
-\end{itemize}
-  
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[t]
-\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
+\frametitle{\begin{tabular}{c}The Problem\ldots\end{tabular}}
 
 
-\begin{itemize}
-\item \large {\bf You can avoid \textcolor{blue}{\texttt{null}}}:
-\end{itemize}
+\begin{textblock}{1}(3,4)
+\begin{tabular}{c}
+\includegraphics[scale=0.3]{pics/bank.png}\\[-2mm]
+\small Bank
+\end{tabular}
+\end{textblock}
+
+\begin{textblock}{1}(7,4.5)
+\begin{tabular}{c}
+\includegraphics[scale=3]{pics/store.png}\\[-2mm]
+\end{tabular}
+\end{textblock}
 
-\begin{textblock}{6}(0.5,5)
-  \begin{tikzpicture}
-  \draw (0,0) node[inner sep=3mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
-  { \begin{minipage}{11cm}\raggedright\small
-  	``I call it my billion-dollar mistake. It was the invention of the null reference in 
-		1965. At that time, I was designing the first comprehensive type system for references in an 
-		object oriented language (ALGOL W). My goal was to ensure that all use of references should 
-		be absolutely safe, with checking performed automatically by the compiler. But I couldn't resist 
-		the temptation to put in a null reference, simply because it was so easy to implement. This has 
-		led to innumerable errors, vulnerabilities, and system crashes, which have probably caused 
-		a billion dollars of pain and damage in the last forty years.'' Sir Tony Hoare\end{minipage}};
-\end{tikzpicture}
+\begin{textblock}{1}(12,6.5)
+\begin{tabular}{c}
+\includegraphics[scale=0.8]{pics/factory.png}\\[-1mm]
+\small terminal\\[-2mm] \small producer
+\end{tabular}
 \end{textblock}
+
+\begin{textblock}{1}(4.5,9.9)
+\begin{tabular}{c}
+\includegraphics[scale=0.13]{pics/rman.png}\\[-1mm]
+\small costumer / you
+\end{tabular}
+\end{textblock}  
   
-\begin{textblock}{5}(11.8,1)
-\includegraphics[scale=0.20]{hoare.jpg}\\
+\begin{textblock}{14}(1,13.5)
+\begin{itemize}
+\item the burden of proof for fraud and financial liability shifted to the costumer
+\end {itemize} 
 \end{textblock}
   
 \end{frame}}
@@ -343,300 +314,22 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \mode<presentation>{
 \begin{frame}[c]
-\frametitle{\begin{tabular}{c}\texttt{null}\end{tabular}}
-
-\lstset{language=java}\footnotesize
-\texttt{\lstinputlisting{MapJavaTester.java}}
-  
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[c]
-\frametitle{\begin{tabular}{c}Why Scala?\end{tabular}}
+\frametitle{\begin{tabular}{c}Screwed Again\end{tabular}}
 
 
+\begin{flushright}
+\includegraphics[scale=0.3]{pics/rbssecure.jpg}
+\end{flushright}
+
 \begin{itemize}
-\item \large The Price You Pay with Scala: \textcolor{red}{\bf Complexity}\\
-\normalsize But it is worth it!
+\item {\bf Responsibility}\\
+``You understand that you are financially responsible for all uses of RBS Secure.''\\
+\textcolor{lightgray}{\footnotesize\url{https://www.rbssecure.co.uk/rbs/tdsecure/terms_of_use.jsp}}
 \end{itemize}
   
 \end{frame}}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[c]
-\frametitle{\begin{tabular}{c}Java: A Brief History\end{tabular}}
-
-\begin{itemize}
-\item Released in 1995 by James Gosling from \\Sun Microsystems (work started in 1991)\medskip
-\item derives much of its syntax from C and C++\medskip
-\item compiles to JVM (``write once, run everywhere'')\medskip
-\item no pointers --- instead automatic memory management (has a garbage collector)\medskip
-\item statically typed\\ (``you cannot compare apples with oranges'')
-\end{itemize}
-  
-\begin{textblock}{5}(13,2)
-\includegraphics[scale=0.20]{java.png}\\
-\end{textblock}
-  
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[c]
-
-\lstset{language=java}\fontsize{8}{10}\selectfont
-\texttt{\lstinputlisting{FruitMain.java}}
-
-\only<2>{
-\begin{textblock}{6}(5,5)
-\begin{tikzpicture}
-  \draw (0,0) node[inner sep=3mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
-  {\begin{minipage}{8cm}\raggedright\tt\footnotesize
-\begin{tabular}{l}
-FruitMain.java:20:~incompatible types\\
-found: Orange\\
-required: Apple\\
-        a = o;\\
-1 error\\
-\end{tabular}
-\end{minipage}};
-\end{tikzpicture}
-\end{textblock}}
-
-  
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[c]
-
-\lstset{language=java}\fontsize{8}{10}\selectfont
-\texttt{\lstinputlisting{FruitArray.java}}
-
-\only<2>{
-\begin{textblock}{8}(1,5)
-\begin{tikzpicture}
-  \draw (0,0) node[inner sep=3mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] 
-  {\begin{minipage}{11cm}\raggedright\tt\fontsize{8}{10}\selectfont
-\begin{tabular}{l}
-{\large \rm runtime exception}\\
-orange\\
-Exception in thread "main" java.lang.ArrayStoreException:~Apple\\
-at FruitArray.main(FruitArray.java:21)\\
-\end{tabular}
-\end{minipage}};
-\end{tikzpicture}
-\end{textblock}}
-
-
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[c]
-
-\begin{itemize}
-\item {\bf In Java a class for students}
-\end{itemize}
-
-{\lstset{language=java}\fontsize{8}{10}\selectfont
-\texttt{\lstinputlisting{Student.java}}}
-
-\onslide<2->{
-\begin{itemize}
-\item {\bf Same in Scala}
-\end{itemize}
-
-{\lstset{language=Scala}\fontsize{8}{10}\selectfont
-\texttt{\lstinputlisting{Student.scala}}}}
-
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[c]
-\frametitle{\begin{tabular}{c}Scala\end{tabular}}
-
-\begin{itemize}
-\item First released in 2003 (work started in 2001) by Martin Odersky from EPFL in Lausanne\smallskip
-\item at the moment 2.9.2 (2012)\smallskip
-\item blend of functional and oo-programming\medskip\medskip
-\item Twitter switched in 2009 from Ruby to Scala
-\item Guardian switched in 2011 from Java to Scala
-\item UBS approved it for general production usage (2011)
-\end{itemize}
-
-
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[t]
-
-\only<1>{
-Hello World in Java:\medskip
-{\lstset{language=Java}\fontsize{12}{14}\selectfont
-\texttt{\lstinputlisting{Hello.java}}}}
-\only<2->{
-Hello World in Scala:\medskip
-{\lstset{language=Scala}\fontsize{12}{14}\selectfont
-\texttt{\lstinputlisting{Hello.scala}}}\bigskip\medskip
-
-
-Some curiosities, compared to Java:
-\begin{itemize}
-\item<3-> The semicolons are missing.
-\item<4-> The {\bf\texttt{public}} access modifier is missing.
-\item<5-> The declaration of main starts with {\bf\texttt{def}}.
-\item<6-> main returns mysterious type {\bf\texttt{Unit}}.
-\item<7-> In Scala there is {\bf\texttt{object}} and {\bf\texttt{class}}.
-\end{itemize}}
-
-
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[c]
-
-\begin{center}
-\textcolor{ProcessBlue}{\LARGE\bf Demo}
-\end{center}
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[c]
-\frametitle{\begin{tabular}{c}Functions\end{tabular}}
-
-Transformations:\bigskip
-\begin{center}
-\LARGE
-Input(s)  $\Rightarrow$ Output\bigskip\bigskip
-\end{center}\pause
-
-``Given some input; produce some output.''\\
-``Transform the input into some output.''\\
-
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[c]
-\frametitle{\begin{tabular}{c}Functions in Scala\end{tabular}}
-
-\mbox{}\bigskip\bigskip\bigskip\bigskip
-{\lstset{language=Scala}\fontsize{12}{14}\selectfont
-\texttt{\lstinputlisting{max.scala}}}
-
-\small
-\begin{textblock}{8}(1,3)
-{\bf\texttt{def}} starts a function definition
-\end{textblock}
-\begin{textblock}{8}(2.3,4)
-function name
-\end{textblock}
-\begin{textblock}{8}(3.8,5)
-parameter list in parentheses
-\end{textblock}
-\begin{textblock}{8}(6.5,6)
-function's result type
-\end{textblock}
-\begin{textblock}{8}(11,7)
-equal sign
-\end{textblock}
-\begin{textblock}{8}(9,10)
-function body\\ 
-in curly braces
-\end{textblock}
-
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[c]
-
-{\lstset{language=Java}\fontsize{7}{8}\selectfont
-\texttt{\lstinputlisting{URLReader.java}}}
-
-\only<2>{
-\begin{textblock}{5}(12,2)
-\includegraphics[scale=0.50]{skeleton.jpg}\\
-\end{textblock}}
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[t]
-\frametitle{\begin{tabular}{c}Map\end{tabular}}
-
-\begin{itemize}
-\item {\bf\texttt{map}} takes a function, say f, and applies it to every element of the list:
-\end{itemize}
-
-\begin{textblock}{15}(2,7)
-\fontsize{13}{14}\selectfont
-\bf\texttt{List(1, 2, 3, 4, 5, 6, 7, 8, 9)}
-\end{textblock}
-
-\begin{textblock}{15}(2,10)
-\fontsize{13}{14}\selectfont
-\bf\texttt{List(1, 4, 9, 16, 25, 36, 49, 64, 81)}
-\end{textblock}
-
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}<1-2>[t]
-\frametitle{\begin{tabular}{c}Filter\end{tabular}}
-
-\begin{itemize}
-\item {\bf\texttt{filter}} takes a condition, say p, and filters out all elements of the list not satisfying p:
-\end{itemize}
-
-\begin{textblock}{15}(2,7)
-\fontsize{13}{14}\selectfont
-\bf\texttt{List(1, 2, 3, 4, 5, 6, 7, 8, 9)}
-\end{textblock}
-
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mode<presentation>{
-\begin{frame}[c]
-\frametitle{\begin{tabular}{c}Conclusion\end{tabular}}
-
-\begin{itemize}
-\item Scala is still under development (compiler is slow)\medskip
-\item there are at least 5 books on the market\medskip
-\item {\bf\texttt{http://www.scala-lang.org/}}\medskip
-\item ``deep'' type-system (computer science)\bigskip\pause
-\item (for the lazy programmer)\\ programming in Scala is much more fun
-
-\end{itemize}
-\end{frame}}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
 
 
 \end{document}




