|    108   \begin{tabular}{ll} |    108   \begin{tabular}{ll} | 
|    109     Email:  & christian.urban at kcl.ac.uk\\ |    109     Email:  & christian.urban at kcl.ac.uk\\ | 
|    110     %Office: & N\liningnums{7.07} (North Wing, Bush House)\bigskip\\ |    110     %Office: & N\liningnums{7.07} (North Wing, Bush House)\bigskip\\ | 
|    111     Slides \& Code: & KEATS\bigskip\\ |    111     Slides \& Code: & KEATS\bigskip\\ | 
|    112  |    112  | 
|    113     Office Hour: &  Fridays 11:00 -- 12:00\\ |    113     Office Hour: &  Fridays 13:00 -- 14:00\\ | 
|    114     Location: & N7.07 (North Wing, Bush House)\bigskip\\ |    114     Location: & N7.07 (North Wing, Bush House)\bigskip\\ | 
|    115  |    115  | 
|    116     Pollev: & \texttt{\alert{https://pollev.com/cfltutoratki576}}\\  \\ |    116     Pollev: & \texttt{\alert{https://pollev.com/cfltutoratki576}}\\  \\ | 
|    117     %Additionally: & (for Scala) Tuesdays 10:45 -- 11:45\\  |    117     %Additionally: & (for Scala) Tuesdays 10:45 -- 11:45\\  | 
|    118   \end{tabular} |    118   \end{tabular} | 
|    139 %%\mbox{}\hspace{-1mm}\includegraphics[scale=0.36]{../pics/twitter.png}\\[-1mm] |    139 %%\mbox{}\hspace{-1mm}\includegraphics[scale=0.36]{../pics/twitter.png}\\[-1mm] | 
|    140 \includegraphics[scale=0.30]{../pics/linked.png}\\ |    140 \includegraphics[scale=0.30]{../pics/linked.png}\\ | 
|    141 \includegraphics[scale=0.30]{../pics/guardian.jpg}\\[-3mm] |    141 \includegraphics[scale=0.30]{../pics/guardian.jpg}\\[-3mm] | 
|    142 \mbox{}\hspace{-2mm}\includegraphics[scale=0.38]{../pics/morgan.png}\\[-3mm] |    142 \mbox{}\hspace{-2mm}\includegraphics[scale=0.38]{../pics/morgan.png}\\[-3mm] | 
|    143 \includegraphics[scale=0.30]{../pics/suisse.png}\\ |    143 \includegraphics[scale=0.30]{../pics/suisse.png}\\ | 
|         |    144 Standard \& Poor's\\   | 
|    144 {\large\bf ...} |    145 {\large\bf ...} | 
|    145 \end{tabular} |    146 \end{tabular} | 
|    146 \end{textblock} |    147 \end{textblock} | 
|    147  |    148  | 
|    148 \begin{textblock}{6}(9,3) |    149 \begin{textblock}{6}(8,3) | 
|    149 \begin{tabular}{l} |    150 \begin{tabular}{l} | 
|    150 \includegraphics[scale=0.20]{../pics/edf.png}\\[-1mm] |    151 \includegraphics[scale=0.20]{../pics/edf.png}\\[-1mm] | 
|    151 \includegraphics[scale=0.08]{../pics/novell.png}\\[-1mm] |    152 \includegraphics[scale=0.08]{../pics/novell.png}\\[-1mm] | 
|    152 \includegraphics[scale=0.30]{../pics/foursquare.png}\\ |    153 \includegraphics[scale=0.30]{../pics/foursquare.png}\\ | 
|    153 \includegraphics[scale=0.30]{../pics/hsbc.png}\\ |    154 \includegraphics[scale=0.30]{../pics/hsbc.png}\\ | 
|    154 {\large\bf ...} |    155 {\large\bf ...} | 
|         |    156 \end{tabular} | 
|         |    157 \end{textblock} | 
|         |    158  | 
|         |    159 \begin{textblock}{6}(11,3) | 
|         |    160 \begin{tabular}{l} | 
|         |    161 \includegraphics[scale=0.08]{../pics/lichess.png}\\[-1mm] | 
|         |    162 {\footnotesize  lichess engine (open source)}   | 
|    155 \end{tabular} |    163 \end{tabular} | 
|    156 \end{textblock} |    164 \end{textblock} | 
|    157  |    165  | 
|    158  |    166  | 
|    159 \begin{textblock}{12}(2,11) |    167 \begin{textblock}{12}(2,11) | 
|    257  |    265  | 
|    258  |    266  | 
|    259  |    267  | 
|    260 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |    268 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|    261 \begin{frame}[c] |    269 \begin{frame}[c] | 
|    262 \frametitle{First Steps: Scala Tools} |    270 \frametitle{First Steps: \textcolor{red}{Scala 3} Tools} | 
|    263  |    271  | 
|         |    272 \mbox{}\\ | 
|         |    273  | 
|         |    274 \begin{minipage}{1.1\textwidth} | 
|    264 \begin{itemize} |    275 \begin{itemize} | 
|    265 \item contains a REPL   |    276 \item contains a REPL $\Rightarrow$ but this year we use | 
|    266 \item I use VS Code and a Scala extension (M'place) |    277   \textcolor{red}{\texttt{scala-cli}}   | 
|         |    278 \item I use VS Codium and a Scala extension (M'place) | 
|    267 \begin{center}   |    279 \begin{center}   | 
|    268 \includegraphics[scale=0.10]{../pics/vscode.png}\\[-10mm]\mbox{} |    280 \includegraphics[scale=0.10]{../pics/vscode.png}\\[-10mm]\mbox{} | 
|    269 \end{center}\bigskip |    281 \end{center}\bigskip | 
|    270    |    282    | 
|    271 \item there is a plugin for Eclipse (called Scala IDE)\medskip |    283 \item there is a plugin for Eclipse (called Scala IDE)\medskip | 
|    272 \item there is also a plugin for IntelliJ\medskip |    284 \item there is also a plugin for IntelliJ\medskip | 
|    273 \end{itemize}   |    285 \end{itemize} | 
|         |    286 \end{minipage} | 
|    274  |    287  | 
|    275 \end{frame} |    288 \end{frame} | 
|    276 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |    289 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|    277  |    290  | 
|    278 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |    291 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|    295  |    308  | 
|    296    |    309    | 
|    297 \end{frame} |    310 \end{frame} | 
|    298 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |    311 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|    299  |    312  | 
|         |    313 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|         |    314 \begin{frame}[c, fragile] | 
|         |    315 \frametitle{This year Scala 3/ \textbf{\texttt{scala-cli}}} | 
|         |    316  | 
|         |    317 \mbox{}\\ | 
|         |    318  | 
|         |    319 \begin{minipage}{1.3\textwidth} | 
|         |    320 \begin{center} | 
|         |    321 \textbf{\texttt{scala-cli}} | 
|         |    322 $\quad\Rightarrow$ {\small\url{https://scala-cli.virtuslab.org/}}\bigskip | 
|         |    323 \end{center} | 
|         |    324  | 
|         |    325 Installation problems: | 
|         |    326 \begin{itemize} | 
|         |    327 \item Oscar Sjostedt (\texttt{\small{}oscar.sjostedt@kcl.ac.uk}) | 
|         |    328 \item Nicole Lehchevska (\texttt{\small{}nicole.lehchevska@kcl.ac.uk})\bigskip | 
|         |    329 \end{itemize} | 
|         |    330 Github problems: | 
|         |    331 \begin{itemize} | 
|         |    332 \item Quan Tran (\texttt{\small{}anh.tran@kcl.ac.uk})\bigskip | 
|         |    333 \end{itemize} | 
|         |    334 Discussion forum: | 
|         |    335 \begin{itemize}   | 
|         |    336 \item Ruben Ticehurst-James (\texttt{\small{}ruben.ticehurst-james@kcl.ac.uk})   | 
|         |    337 \end{itemize} | 
|         |    338 \end{minipage} | 
|         |    339    | 
|         |    340 \end{frame} | 
|         |    341 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|         |    342  | 
|         |    343  | 
|         |    344  | 
|    300  |    345  | 
|    301 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |    346 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|    302 \begin{frame}[t] |    347 \begin{frame}[t] | 
|    303 \frametitle{Why Scala?} |    348 \frametitle{Why Scala?} | 
|    304  |    349  | 
|    305 \onslide<2->{% |    350 \only<2-4>{% | 
|    306 \begin{center}  |    351 \begin{center}  | 
|    307 {\large\bf{}Money?}\bigskip\\   |    352 {\large\bf{}Money?}\bigskip\\   | 
|    308 \begin{tabular}{@{}c@{}c@{}} |    353 \begin{tabular}{@{}c@{}c@{}} | 
|    309 \includegraphics[scale=0.2]{../pics/salary1.png} & |    354 \includegraphics[scale=0.2]{../pics/salary1.png} & | 
|    310 \includegraphics[scale=0.2]{../pics/salary2.png}\\ |    355 \includegraphics[scale=0.2]{../pics/salary2.png}\\ | 
|    311 \multicolumn{2}{r@{}}{\footnotesize$^*$ source: Stackoverflow Developer Survey, 2019} |    356 \multicolumn{2}{r@{}}{\footnotesize$^*$ source: Stackoverflow Developer Survey, 2019} | 
|    312 \end{tabular}   |    357 \end{tabular}   | 
|    313 \end{center} |    358 \end{center} | 
|    314 \RIGHTarrow{2}{2.0}{6.3} |    359 \RIGHTarrow{2}{2.0}{6.3} | 
|    315 \DOWNarrow{2}{10.1}{4.4} |    360 \DOWNarrow{2}{10.1}{4.4} | 
|    316 } |         | 
|    317  |         | 
|    318  |    361  | 
|    319 \small |    362 \small | 
|    320 Elm, Rust, Haskell, Ocaml, F$\#$, Erlang, ML, Lisp (Racket)\ldots  |    363 Elm, Rust, Haskell, Ocaml, F$\#$, Erlang, ML, Lisp (Racket)\ldots  | 
|         |    364 } | 
|    321  |    365  | 
|    322 \only<3>{ |    366 \only<3>{ | 
|         |    367 \begin{textblock}{2}(7.5,6.7) | 
|         |    368 \includegraphics[scale=0.2]{../pics/salary3.png} | 
|         |    369 \end{textblock} | 
|         |    370 \RIGHTarrow{2}{2.0}{6.3} | 
|         |    371 \DOWNarrow{2}{10.1}{4.4}} | 
|         |    372  | 
|         |    373  | 
|         |    374 \only<4>{ | 
|    323 \begin{textblock}{6}(3.3,6.2) |    375 \begin{textblock}{6}(3.3,6.2) | 
|    324 \begin{bubble}[6.5cm] |    376 \begin{bubble}[6.5cm] | 
|    325 \bf\huge\textcolor{RoyalBlue}{Functional Programming!} |    377 \bf\huge\textcolor{RoyalBlue}{Functional Programming!} | 
|    326 \end{bubble} |    378 \end{bubble} | 
|    327 \end{textblock}} |    379 \end{textblock}} | 
|    328  |    380  | 
|         |    381  | 
|         |    382  | 
|    329 \end{frame} |    383 \end{frame} | 
|    330 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  |    384 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
|    331  |    385  | 
|    332  |    386  | 
|    333 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |    387 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|    340   \mbox{}\\[3.5cm] |    394   \mbox{}\\[3.5cm] | 
|    341   \small |    395   \small | 
|    342 Elm, Haskell, Ocaml, F$\#$, Erlang, ML, Lisp (Racket)\ldots  |    396 Elm, Haskell, Ocaml, F$\#$, Erlang, ML, Lisp (Racket)\ldots  | 
|    343  |    397  | 
|    344 \only<2>{ |    398 \only<2>{ | 
|    345 \begin{textblock}{6}(1.3,6.2) |    399 \begin{textblock}{8}(1.3,6.2) | 
|    346 \begin{bubble}[10cm] |    400 \begin{bubble}[12cm] | 
|    347 \normalsize``If you want to see which features will be in mainstream programming |    401 \normalsize\it``If you want to see which features will be in mainstream programming | 
|    348   languages tomorrow, then take a look at functional programming |    402   languages tomorrow, then take a look at functional programming | 
|    349   languages today.''\medskip\small\\ |    403   languages today.''\medskip\small\\ | 
|    350   \hfill{}---Simon Peyton Jones (works at Microsoft)\\ |    404   \hfill{}---Simon Peyton Jones (works at Epic Games, used to work at Microsoft)\\ | 
|    351   \hfill{}main developer of the Glasgow Haskell Compiler |    405   \hfill{}main developer of the Glasgow Haskell Compiler | 
|    352 \end{bubble} |    406 \end{bubble} | 
|    353 \end{textblock}} |    407 \end{textblock}} | 
|    354  |    408  | 
|    355 \only<3>{ |    409 \only<3>{ | 
|    896 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  |    950 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
|    897  |    951  | 
|    898 \begin{frame}[t,fragile] |    952 \begin{frame}[t,fragile] | 
|    899  |    953  | 
|    900 \begin{bubble}[10.5cm] |    954 \begin{bubble}[10.5cm] | 
|    901   "PEP was my favourite module so far during these 2 years. It motivated me to apply and get a summer internship offer at S\&P Global as a Scala developer. The module content was more than enough for me to start working on the projects here at the company." -- Szabolcs Daniel Nagi (PEP 2021) |    955 \it  "PEP was my favourite module so far during these 2 years. It motivated me to apply and get a summer internship offer at S\&P Global as a Scala developer. The module content was more than enough for me to start working on the projects here at the company."\\ | 
|         |    956   \mbox{}\hfill{}--- Szabolcs Daniel Nagi (PEP 2021) | 
|    902 \end{bubble}   |    957 \end{bubble}   | 
|    903 \end{frame} |    958 \end{frame} | 
|    904 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  |    959 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  | 
|    905  |    960  | 
|    906  |    961  | 
|    907 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |    962 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | 
|    908 \begin{frame}[c] |    963 \begin{frame}[c] | 
|    909 \frametitle{Conclusion for Today} |    964 \frametitle{Conclusion for Today} | 
|    910  |    965  | 
|    911 \begin{itemize} |    966 \begin{itemize} | 
|    912 \item Scala is still under development, 2.13.1 came out in Sept.\\  |    967 \item This year we will be using Scala 3 with the \texttt{scala-cli} REPL!\\  | 
|    913   (the compiler is terribly slow)\medskip |    968   \medskip | 
|    914 \item {\bf\url{http://www.scala-lang.org/}}\bigskip |    969 \item {\bf\url{https://scala-cli.virtuslab.org/}}\bigskip | 
|    915    |    970    | 
|    916 \item it is a rather \textbf{\alert{deep}} language\ldots i.e.~gives |    971 \item Scala can be a rather \textbf{\alert{deep}} language\ldots i.e.~gives | 
|    917   you a lot of rope to shoot yourself\bigskip |    972   you a lot of rope to shoot yourself.\bigskip | 
|    918  |    973  | 
|    919 \item learning functional programming is not easy\ldots{}when you have |    974 \item Learning functional programming is not easy\ldots{}when you have | 
|    920   spent all of your career thinking in an imperative way, it is hard to |    975   spent all of your career thinking in an imperative way, it is hard to | 
|    921   change\bigskip\medskip |    976   change.\bigskip\medskip | 
|    922    |    977    | 
|    923 \item hope you have fun with Scala and the assignments |    978 \item Hope you have fun with Scala and the assignments. | 
|    924 \end{itemize} |    979 \end{itemize} | 
|    925 \end{frame} |    980 \end{frame} | 
|    926 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    |    981 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    | 
|    927  |    982  | 
|    928 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |    983 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |