--- 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}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%