
diff -r 78cb8e9a9d17 -r 368556c8df56 slides/slides04.tex
--- a/slides/slides04.tex	Tue Dec 07 01:35:00 2021 +0000
+++ b/slides/slides04.tex	Tue Dec 07 23:17:51 2021 +0000
@@ -39,6 +39,35 @@
 % beamer stuff 
 \renewcommand{\slidecaption}{PEP (Scala) 04, King's College London}
 
+% Swift, example (a*)*b  
+\begin{filecontents}{re-swift.data}
+5   0.001
+10  0.001
+15  0.009
+20  0.178
+23  1.399
+24  2.893
+25  5.671
+26  11.357
+27  22.430
+\end{filecontents}
+
+% Dart, example (a*)*b  
+\begin{filecontents}{re-dart.data}
+20 0.042
+21 0.084
+22 0.190
+23 0.340
+24 0.678
+25 1.369
+26 2.700
+27 5.462
+28 10.908
+29 21.725
+30 43.492
+\end{filecontents}
+
+
 \begin{filecontents}{re3a.data}
 1 0.00003
 500001 0.22527
@@ -150,7 +179,8 @@
     Slides \& Code: & KEATS\bigskip\\
     %Office Hours: &  Thursdays 12:00 -- 14:00\\
     %Additionally: & (for Scala) Tuesdays 10:45 -- 11:45\\
-    \multicolumn{2}{c}{\Large\textbf{https://pollev.com/cfltutoratki576}}\\
+    \multicolumn{2}{c}{\Large\textbf{https://pollev.com/cfltutoratki576}}\\[2cm]
+    \textcolor{red}{Scala Install Clinic:} & \textcolor{red}{This evening at 17:00 (online)}\\
   \end{tabular}
   \end{center}
 
@@ -185,104 +215,104 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
-\begin{frame}[c]
-\frametitle{Preliminary 7}
+% \begin{frame}[c]
+% \frametitle{Preliminary 7}
 
-Raw marks (261 submissions):\bigskip
+% Raw marks (261 submissions):\bigskip
 
-\begin{itemize}
-\item 4\%: \hspace{4mm}236
-\item 3\%: \hspace{4mm}10
-\item 2\%: \hspace{4mm}1
-\item 1\%: \hspace{4mm}0
-\item 0\%: \hspace{4mm}15 
-\end{itemize}\bigskip\bigskip  
+% \begin{itemize}
+% \item 4\%: \hspace{4mm}236
+% \item 3\%: \hspace{4mm}10
+% \item 2\%: \hspace{4mm}1
+% \item 1\%: \hspace{4mm}0
+% \item 0\%: \hspace{4mm}15 
+% \end{itemize}\bigskip\bigskip  
 
-\footnotesize
-(plagiarism/collusion interviews ongoing!)
+% \footnotesize
+% (plagiarism/collusion interviews ongoing!)
 
-\end{frame}
+% \end{frame}
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{frame}[c,fragile]
-\small
+% \begin{frame}[c,fragile]
+% \small
   
-\begin{lstlisting}[language=Scala, numbers=none, xleftmargin=1mm]
-def is_legal(dim: Int, p: Path, x: Pos) = {
-  if (...some_really_long_condition...) false
-  else true
-}
-\end{lstlisting}
+% \begin{lstlisting}[language=Scala, numbers=none, xleftmargin=1mm]
+% def is_legal(dim: Int, p: Path, x: Pos) = {
+%   if (...some_really_long_condition...) false
+%   else true
+% }
+% \end{lstlisting}
 
-\pause
-\bigskip
-\rule{11cm}{0.3mm}
-\bigskip
+% \pause
+% \bigskip
+% \rule{11cm}{0.3mm}
+% \bigskip
 
-\begin{lstlisting}[language=Scala, numbers=none, xleftmargin=1mm]
-def is_legal(dim: Int, p: Path, x: Pos) = 
-  !(...some_really_long_condition...)
-\end{lstlisting}
+% \begin{lstlisting}[language=Scala, numbers=none, xleftmargin=1mm]
+% def is_legal(dim: Int, p: Path, x: Pos) = 
+%   !(...some_really_long_condition...)
+% \end{lstlisting}
 
-\end{frame}
+% \end{frame}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{frame}[c,fragile]
-\small
+% \begin{frame}[c,fragile]
+% \small
   
-\begin{lstlisting}[language=Scala, numbers=none, xleftmargin=1mm]
-def foobar(...) = {
-  val cs = for (c <- str) yield c.toLowerCase
-  ...
-}
-\end{lstlisting}
+% \begin{lstlisting}[language=Scala, numbers=none, xleftmargin=1mm]
+% def foobar(...) = {
+%   val cs = for (c <- str) yield c.toLowerCase
+%   ...
+% }
+% \end{lstlisting}
 
-\pause
-\bigskip
-\rule{11cm}{0.3mm}
-\bigskip
+% \pause
+% \bigskip
+% \rule{11cm}{0.3mm}
+% \bigskip
 
-\begin{lstlisting}[language=Scala, numbers=none, xleftmargin=1mm]
-def foobar(...) = {
-  val cs = str.map(_.toLowerCase)
-  ...
-}
-\end{lstlisting}
+% \begin{lstlisting}[language=Scala, numbers=none, xleftmargin=1mm]
+% def foobar(...) = {
+%   val cs = str.map(_.toLowerCase)
+%   ...
+% }
+% \end{lstlisting}
 
-\end{frame}
+% \end{frame}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{frame}[c,fragile]
-\small
+% \begin{frame}[c,fragile]
+% \small
   
-\begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-7mm]
-def RomanNumeral2Int(rs: RomanNumeral): Int = 
- rs match { 
-   case Nil => 0
-   case M::r    => 1000 + RomanNumeral2Int(r)  
-   case C::M::r => 900 + RomanNumeral2Int(r)
-   case D::r    => 500 + RomanNumeral2Int(r)
-   case C::D::r => 400 + RomanNumeral2Int(r)
-   case C::r    => 100 + RomanNumeral2Int(r)
-   case X::C::r => 90 + RomanNumeral2Int(r)
-   case L::r    => 50 + RomanNumeral2Int(r)
-   case X::L::r => 40 + RomanNumeral2Int(r)
-   case X::r    => 10 + RomanNumeral2Int(r)
-   case I::X::r => 9 + RomanNumeral2Int(r)
-   case V::r    => 5 + RomanNumeral2Int(r)
-   case I::V::r => 4 + RomanNumeral2Int(r)
-   case I::r    => 1 + RomanNumeral2Int(r)
- }
-\end{lstlisting}
+% \begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-7mm]
+% def RomanNumeral2Int(rs: RomanNumeral): Int = 
+%  rs match { 
+%    case Nil => 0
+%    case M::r    => 1000 + RomanNumeral2Int(r)  
+%    case C::M::r => 900 + RomanNumeral2Int(r)
+%    case D::r    => 500 + RomanNumeral2Int(r)
+%    case C::D::r => 400 + RomanNumeral2Int(r)
+%    case C::r    => 100 + RomanNumeral2Int(r)
+%    case X::C::r => 90 + RomanNumeral2Int(r)
+%    case L::r    => 50 + RomanNumeral2Int(r)
+%    case X::L::r => 40 + RomanNumeral2Int(r)
+%    case X::r    => 10 + RomanNumeral2Int(r)
+%    case I::X::r => 9 + RomanNumeral2Int(r)
+%    case V::r    => 5 + RomanNumeral2Int(r)
+%    case I::V::r => 4 + RomanNumeral2Int(r)
+%    case I::r    => 1 + RomanNumeral2Int(r)
+%  }
+% \end{lstlisting}
 
-\end{frame}
+% \end{frame}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -331,34 +361,34 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
-\begin{frame}[c,fragile]
-\frametitle{Sudoku}
+% \begin{frame}[c,fragile]
+% \frametitle{Sudoku}
 
-A very simple-minded version on 110 problems:\bigskip
+% A very simple-minded version on 110 problems:\bigskip
 
-\begin{itemize}
-\item 1 core: 800 secs
-\item 2 cores: 400 secs
-\item 8 cores: 290 secs
-\item 18 cores: 142 secs
-\end{itemize}
+% \begin{itemize}
+% \item 1 core: 800 secs
+% \item 2 cores: 400 secs
+% \item 8 cores: 290 secs
+% \item 18 cores: 142 secs
+% \end{itemize}
 
-\end{frame}
+% \end{frame}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
 
 
-\begin{frame}[t]
+% \begin{frame}[t]
 
-  \begin{center}  
-  \includegraphics[scale=0.3]{../pics/blow.png}
-  \end{center}
+%   \begin{center}  
+%   \includegraphics[scale=0.3]{../pics/blow.png}
+%   \end{center}
   
-  \begin{textblock}{14}(2,11.4)
-  \large\bf{}Mind-Blowing Regular Expressions:\\ 
-  \centering in Python, JavaScript, Java
-  \end{textblock}
-\end{frame}
+%   \begin{textblock}{14}(2,11.4)
+%   \large\bf{}Mind-Blowing Regular Expressions:\\ 
+%   \centering in Python, JavaScript, Java
+%   \end{textblock}
+% \end{frame}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -387,12 +417,14 @@
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{frame}<1>[c]
-  \frametitle{CW 9: Regexes}
+  \frametitle{Main 3: Regexes}
   
 \begin{center}
-  Graphs: \alert{\texttt{(a*)*b}} and strings $\underbrace{\;\texttt{a}\ldots \texttt{a}\;}_{n}$\bigskip
-  
-\begin{tabular}[t]{@{\hspace{-8mm}}c@{\hspace{-4mm}}c@{}}
+  \mbox{Graphs: regex \alert{\texttt{(a*)*b}} and strings $\underbrace{\;\texttt{a}\ldots \texttt{a}\;}_{n}$}\bigskip
+
+
+  \small  
+\begin{tabular}[t]{@{\hspace{-8mm}}c@{\hspace{-0mm}}c@{}}
 \only<1>{\raisebox{6mm}{\begin{tikzpicture}
 \begin{axis}[
     xlabel={$n$},
@@ -406,13 +438,16 @@
     scaled ticks=false,
     axis lines=left,
     width=5.5cm,
-    height=5cm, 
-    legend entries={\small{}Python,  \small{}Java 8,  \small{}JavaScript},  
+    height=5cm,
+    legend entries={Java 8,Python,JavaScript,Swift,Dart},
+    %legend entries={\small{}Python,  \small{}Java 8,  \small{}JavaScript},  
     legend pos=north west,
     legend cell align=left]
 \addplot[blue,mark=*, mark options={fill=white}] table {re-python2.data};  
 \addplot[cyan,mark=*, mark options={fill=white}] table {re-java.data};
 \addplot[red,mark=*, mark options={fill=white}] table {re-js.data};
+\addplot[magenta,mark=*, mark options={fill=white}] table {re-swift.data};
+\addplot[brown,mark=*, mark options={fill=white}] table {re-dart.data};
 \end{axis}
 \end{tikzpicture}}}%
 \only<2>{\raisebox{0mm}{\begin{tikzpicture}
@@ -445,6 +480,7 @@
     ymax=35,
     ytick={0,5,...,30},
     axis lines=left,
+    legend entries={You in M3}, 
     %%scaled ticks=false,
     width=5.5cm, 
     height=5cm]
@@ -460,7 +496,35 @@
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
+\begin{frame}[c,fragile]
+\small
+\textcolor{red}{MacOSX}\medskip
 
+\begin{minipage}{13cm}
+  \begin{itemize}
+  \item[0)] (if needed) \texttt{brew install java} \;\;or\;\; \texttt{brew reinstall java}
+  \item[1)] \texttt{curl -s "https://get.sdkman.io" | bash}
+  \item[2)] \texttt{sdk install scala 2.13.7}  
+  \end{itemize}
+\end{minipage}\bigskip
+  
+\textcolor{red}{Windows / Linux Ubuntu}\medskip
+
+\begin{minipage}{13cm}
+  \begin{itemize}
+  \item[0)] (if needed) \texttt{sudo apt-get remove scala-library scala}
+  \item[1)] {\fontsize{8.5}{8.5}\selectfont\texttt{sudo wget https://downloads.lightbend.com/scala/2.13.7/scala-2.13.7.deb}}
+  \item[2)] \texttt{sudo dpkg -i scala-2.13.7.deb}  
+  \end{itemize}
+\end{minipage}\bigskip
+
+\begin{minipage}{13cm}
+other Linux distros: \texttt{sudo apt-get scala}
+\end{minipage}
+
+\end{frame}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 \end{document}




