diff -r 3c7ac7836e4f -r e86add5a6961 slides/slides01.tex --- a/slides/slides01.tex Sat Nov 02 21:23:42 2019 +0000 +++ b/slides/slides01.tex Sun Nov 03 14:42:17 2019 +0000 @@ -1,3 +1,4 @@ +% !TEX program = xelatex \documentclass[dvipsnames,14pt,t,xelatex]{beamer} \usepackage{../slides} \usepackage{../graphics} @@ -38,8 +39,8 @@ Email: & christian.urban at kcl.ac.uk\\ Office: & N\liningnums{7.07} (North Wing, Bush House)\\ Slides \& Code: & KEATS\medskip\\ - Office Hours: & Mondays 12:00 -- 14:00\\ - & \alert{except next week: Tuesday} + Office Hours: & Thursdays 12:00 -- 14:00\\ + Additionally: & (for Scala) Tuesdays 10:45 -- 11:45\\ \end{tabular} \end{center} @@ -82,11 +83,11 @@ \begin{textblock}{6}(2,12) -\begin{bubble}[9cm] +\begin{bubble}[9.4cm] \small - developed since 2004 by Martin Odersky\\ + developed since 2004 by Martin Odersky (he was behind Generic Java which was included in Java 5 - \ldots I am using it maybe since 2008?) + \ldots I am using Scala since maybe 2008?) \end{bubble} \end{textblock} @@ -116,27 +117,27 @@ \textcolor{gray}{(also JavaScript, native X86 in the works)}\medskip \item integrates seamlessly with Java\medskip \item combines \underline{\bf functional} and {\bf object-oriented} programming\bigskip -\item it is a bit on the ``mathematical'' side\\ +\item it is a bit on the ``theory'' / ``mathematical'' side\\ \textcolor{gray}{(no pointers, no \texttt{null}, but expressions)} \item often one can write very concise and elegant code \end{itemize}\bigskip\medskip -\small -alternatives:\\ -Elm, Haskell, Ocaml, F$\sharp$, Erlang, ML, Lisp (Racket), \ldots +%\small +%alternatives:\\ +%Elm, Haskell, Ocaml, F$\sharp$, Erlang, ML, Lisp (Racket), \ldots \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame}[c] +\begin{frame}[t] \frametitle{Java vs Scala} -{\lstset{language=java}\fontsize{12}{12}\selectfont +{\lstset{language=java,numbers=right}\fontsize{12}{12}\selectfont \texttt{\lstinputlisting{Point.java}}} -\rule{11cm}{0.3mm}\\[-2mm] +\rule{11cm}{0.3mm}\\[-3mm] {\lstset{language=scala}\fontsize{12}{12}\selectfont \texttt{\lstinputlisting{Point.scala}}} @@ -145,7 +146,7 @@ \textbf{\large Java} \end{textblock} -\begin{textblock}{6}(13,13.6) +\begin{textblock}{6}(13,14.3) \textbf{\large Scala} \end{textblock} @@ -169,6 +170,7 @@ \frametitle{First Steps: Scala Tools} \begin{itemize} +\item contains a REPL \item I use VS Code and a Scala extension (M'place) \begin{center} \includegraphics[scale=0.10]{../pics/vscode.png}\\[-10mm]\mbox{} @@ -364,7 +366,7 @@ \only<3>{ \begin{textblock}{14.2}(1,13.5) In FP: Once a variable is created, it is assigned a value and then - never changed again $\Rightarrow$ no synchronisation\smallskip\\ + never changed again $\Rightarrow$ no synchronisation needed\smallskip\\ %%\small\textcolor{gray}{(Andrew's second favourite feature of C++)} \end{textblock}} @@ -462,15 +464,15 @@ \begin{itemize} \item Sorry, I might have been a bit wordy:\\ - CW description is 7 pages, but - I only needed \mbox{< 100} loc for \emph{all} the CW6.\bigskip + Part 6 of CW description is 7 pages, but + I only needed \mbox{< 100} loc for \emph{all} Part 6.\bigskip -\item there is email feedback when pushing code to github\medskip +\item there is feedback when pushing code to github\medskip \item there are \texttt{jar}-files you can use to test my implementation\bigskip -\item we want you to learn FP: \alert{\bf no vars}, no mutable - data-structures, e.g.~no \texttt{Arrays}, no \texttt{ListBuffer} +\item we want you to learn FP!\\ \alert{\bf no vars}, no mutable + data-structures\\ e.g.~no \texttt{Arrays}, no \texttt{ListBuffer} \end{itemize} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -489,6 +491,7 @@ \begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-1mm] val old_list = List(1, 2, 3, 5) val new_list = 0 :: old_list + // -> List(0, 1, 2, 3, 4, 5) \end{lstlisting}} \item You do not have to be defensive about who can access the data. @@ -504,7 +507,7 @@ \begin{frame}[t] \frametitle{Email: Hate 'val'} -\mbox{}\\[-25mm]\mbox{} +\mbox{}\\[-23mm]\mbox{} \begin{center} \begin{bubble}[10.5cm] @@ -686,8 +689,8 @@ \end{center} \begin{center} - My Office Hours: Mondays 12 -- 14\\ - except next week: Tuesday 12 -- 14 + My Office Hours: Thursdays 12 -- 14\\ + And specifically for Scala: Tuesday 10:45 -- 11:45 \end{center} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%