slides/slides01.tex
changeset 137 53c769a78a1e
parent 123 556cd74cbba9
child 140 ecec79b9ab25
--- a/slides/slides01.tex	Wed Nov 08 22:36:42 2017 +0000
+++ b/slides/slides01.tex	Thu Nov 09 16:04:31 2017 +0000
@@ -34,9 +34,11 @@
   \normalsize
   \begin{center}
   \begin{tabular}{ll}
-  Email:  & christian.urban at kcl.ac.uk\\
-  Office: & N7.07 (North Wing Bush House)\\
-  Slides \& Code: & KEATS
+    Email:  & christian.urban at kcl.ac.uk\\
+    Office: & N7.07 (North Wing, Bush House)\\
+    Slides \& Code: & KEATS\medskip\\
+    Scala Office & \\
+    Hours: &  Thursdays 11 -- 13\\
   \end{tabular}
   \end{center}
 
@@ -90,7 +92,8 @@
 \end{itemize}\bigskip\medskip  
 
 \small
-alternatives: Elm, Haskell, Ocaml, ML, Lisp (Racket), \ldots
+alternatives:\\
+Elm, Haskell, Ocaml, F\sharp, Erlang, ML, Lisp (Racket), \ldots
 
 \end{frame}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
@@ -122,16 +125,181 @@
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{frame}[c]
-\frametitle{Scala Tools}
+\frametitle{First Steps: Scala Tools}
 
 \begin{itemize}
 \item there is a plugin for Eclipse (called Scala IDE)\medskip
-\item there is also a plugin for IntelliJ\bigskip
-\item I use the venerable Emacs ;o)
+\item there is also a plugin for IntelliJ\medskip
+\item there is a worksheet mode in Eclipse and IntelliJ\bigskip
+\item I use Sublime or venerable Emacs ;o)
 \end{itemize}  
 
 \end{frame}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}[c]
+  \frametitle{\bf
+  \only<1>{\begin{tabular}{l}\\[2mm]Why Scala?\\ \mbox{}\end{tabular}}
+  \only<2->{\begin{tabular}{l}\\[2mm]Why Functional\\ Programming?\end{tabular}}
+}
+
+
+  %
+  \mbox{}\\[3.5cm]
+  \small
+Scala, Elm, Haskell, Ocaml, F\sharp, Erlang, ML, Lisp (Racket), \ldots 
+
+\only<3>{
+\begin{textblock}{6}(2,6.2)
+\begin{bubble}[10cm]
+\normalsize``If you want to see which features will be in mainstream programming
+  languages tomorrow, then take a look at functional programming
+  languages today.''\medskip\small\\
+  \hfill{}---Simon Peyton Jones (works at Microsoft)\\
+  \hfill{}main developer of the Glasgow Haskell Compiler
+\end{bubble}
+\end{textblock}}
+
+\end{frame}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+\begin{frame}[c]
+\mbox{}\\[-21mm]\mbox{}  
+
+\begin{center}
+  \begin{tikzpicture}[scale=1,
+                      node/.style={
+                      rectangle,rounded corners=3mm,
+                      very thick,draw=black!50,
+                      minimum height=18mm, minimum width=20mm,
+                      top color=white,bottom color=black!20}]
+
+  \onslide<1-10>{                
+  \node (A) at (0,0) [node]
+     {\mbox{\includegraphics[scale=0.15]{../pics/cplus2.jpg}}};
+  \node [above right] at (A.north west) {1986};}
+
+  \onslide<2->{
+  \node (B) at (3.5,0) [node]
+     {\mbox{\includegraphics[scale=0.15]{../pics/robotron.jpg}}};
+  \node [above right] at (B.north west) {1988, C};
+  \draw [->,line width=4mm] (A) -- (B);}
+
+  \onslide<3->{
+  \node (C0) at (6.3,0) {};
+  \node (C) at (8,0)  [node]
+     {\mbox{\includegraphics[scale=0.15]{../pics/sun.jpg}}};
+  \node [above right] at (C.north west) {1992, {\small Linux}};
+  \draw [->,line width=4mm] (B) -- (C0);
+  \draw [->,line width=4mm] (C0) -- (C);}
+
+  \onslide<4->{
+  \node (D) at (8,-3.3)  [node]
+     {\mbox{\includegraphics[scale=0.2]{../pics/gateway.jpg}}};
+  \draw [->,line width=4mm] (C) -- (D);
+  \node [below right] at (D.south west) {1996};}
+
+  \onslide<5->{
+  \node (E) at (4,-3.3)  [node]
+     {\mbox{\includegraphics[scale=0.1]{../pics/appleg4.jpg}}};
+  \draw [->,line width=4mm] (D) -- (E);
+  \node [above right] at (E.north west) {2000};}   
+
+  \onslide<6->{
+  \node (F0) at (1.5,-3.3) {};
+  \node (F1) at (1,-3.3) {};
+  \node (F) at (-0.9,-3.3)  [node]
+     {\mbox{\includegraphics[scale=0.3]{../pics/appleair.png}}};
+  \draw [->,line width=4mm] (E) -- (F0);
+  \draw [->,line width=4mm] (F1) -- (F);   
+  \node [above right] at (F.north west) {2012?};}   
+
+  \onslide<7->{
+  \node (G) at (-0.9,-6.3)  [node]
+     {\mbox{\includegraphics[scale=0.02]{../pics/applepro.jpg}}};
+  \draw [->,line width=4mm] (F) -- (G);
+  \node [right] at (G.west) {\hspace{22mm}2017};}   
+  
+  \end{tikzpicture}
+  \end{center}
+
+
+  \only<1>{%  
+    \begin{textblock}{10}(2.5,5)  
+      \includegraphics[scale=0.26]{../pics/cplus1.jpg}\\
+      \footnotesize 64K RAM, no HD, no monitor, lots of cables
+    \end{textblock}
+    \begin{textblock}{6}(10.9,4.5)  
+      \includegraphics[scale=0.09]{../pics/mand1.png}
+      \includegraphics[scale=0.09]{../pics/mand2.png}
+    \end{textblock}
+    \begin{textblock}{6}(10.8,2.2)  
+    \huge\bf 3 days
+    \end{textblock}
+  }
+  \only<8->{%
+  \begin{textblock}{8}(5.8,11.6)  
+    \large\bf
+    \begin{tabular}{l@{}l}
+      1986:\, & no Internet\\
+            & no Amazon\\
+            & no FB, no mobiles,\ldots\\ 
+    \end{tabular}         
+    \end{textblock}
+  }
+  \only<9>{
+  \begin{textblock}{1}(3,3)
+    \begin{bubble}[9cm]  
+      \begin{tabular}{@{\hspace{8mm}}llll@{\hspace{8mm}}}
+        \\
+      \multicolumn{4}{c}{\bf Speedup by Moore's Law}\medskip\\
+      \textbf{1986:} & 3 days    & \textbf{1996:} & 135 mins\\
+      \textbf{1988:} & 1.5 days  & \textbf{1998:} & 67 mins\\
+      \textbf{1990:} & 18 hs     & \textbf{2000:} & 33 mins\\
+      \textbf{1992:} & 9 hs      & \textbf{2002:} & 16 mins\\
+      \textbf{1994:} & 4.5 hs    & \multicolumn{2}{c}{???}\\                    
+      \\
+      \end{tabular}
+      \small Every two years, computers got twice as powerful.
+  \end{bubble}
+  \end{textblock}}
+
+\end{frame}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}[c]
+\frametitle{Seq vs Par}
+
+\begin{center}
+  \begin{tabular}[t]{@{}l@{}l@{}}
+    \includegraphics[scale=0.14]{../pics/mand4.png} &
+    \raisebox{1.2mm}{\includegraphics[scale=0.14]{../pics/mand3.png}}      
+  \end{tabular}     
+\end{center}  
+
+\only<2>{
+  \begin{textblock}{5}(12,2)
+    \begin{bubble}[2.1cm]
+      \footnotesize{}in Java or C++\\
+      \includegraphics[scale=0.50]{../pics/skeleton.jpg}\\
+    \end{bubble}  
+  \end{textblock}}
+
+\only<3>{
+  \begin{textblock}{5}(1,8)
+    \begin{bubble}[2.1cm]
+      \footnotesize{}in Java or C++\\
+    \end{bubble}  
+  \end{textblock}}
+
+\end{frame}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
+
+
+
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{frame}[c]