slides/slides01.tex
changeset 308 e86add5a6961
parent 278 0c2481cd8b1c
child 309 b192bc772613
--- 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}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%