diff -r 29fc780ca130 -r fa7f7144f2bb 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}