slides/slides04.tex
changeset 217 e689375abcc1
parent 158 94b11ac19b41
child 222 e52cc402caee
equal deleted inserted replaced
216:8c868feb917b 217:e689375abcc1
       
     1 \documentclass[dvipsnames,14pt,t,xelatex]{beamer}
       
     2 \usepackage{../slides}
       
     3 \usepackage{../graphics}
       
     4 \usepackage{../langs}
       
     5 %%\usepackage{../data}
       
     6 \usepackage[export]{adjustbox}
       
     7 
       
     8 \hfuzz=220pt 
       
     9 
       
    10 %\setmonofont[Scale=.88]{Consolas}
       
    11 %\newfontfamily{\consolas}{Consolas}
       
    12 
       
    13 \lstset{language=Scala,
       
    14         style=mystyle,
       
    15         numbersep=0pt,
       
    16         numbers=none,
       
    17         xleftmargin=0mm}
       
    18 
       
    19 \newcommand{\bl}[1]{\textcolor{blue}{#1}}     
       
    20 
       
    21 % beamer stuff 
       
    22 \renewcommand{\slidecaption}{PEP (Scala) 03, King's College London}
       
    23 
       
    24 \begin{filecontents}{re3a.data}
       
    25 1 0.00003
       
    26 500001 0.22527
       
    27 1000001 0.62752
       
    28 1500001 0.88485
       
    29 2000001 1.39815
       
    30 2500001 1.68619
       
    31 3000001 1.94957
       
    32 3500001 2.15878
       
    33 4000001 2.59918
       
    34 4500001 5.90679
       
    35 5000001 13.11295
       
    36 5500001 19.15376
       
    37 6000001 40.16373
       
    38 \end{filecontents}
       
    39 \begin{filecontents}{re-python2.data}
       
    40 1 0.033
       
    41 5 0.036
       
    42 10 0.034
       
    43 15 0.036
       
    44 18 0.059
       
    45 19 0.084
       
    46 20 0.141
       
    47 21 0.248
       
    48 22 0.485
       
    49 23 0.878
       
    50 24 1.71
       
    51 25 3.40
       
    52 26 7.08
       
    53 27 14.12
       
    54 28 26.69
       
    55 \end{filecontents}
       
    56 
       
    57 \begin{filecontents}{re-java.data}
       
    58 5  0.00298
       
    59 10  0.00418
       
    60 15  0.00996
       
    61 16  0.01710
       
    62 17  0.03492
       
    63 18  0.03303
       
    64 19  0.05084
       
    65 20  0.10177
       
    66 21  0.19960
       
    67 22  0.41159
       
    68 23  0.82234
       
    69 24  1.70251
       
    70 25  3.36112
       
    71 26  6.63998
       
    72 27  13.35120
       
    73 28  29.81185
       
    74 \end{filecontents}
       
    75 
       
    76 \begin{document}
       
    77 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
    78 \begin{frame}[t]
       
    79 \frametitle{%
       
    80   \begin{tabular}{@ {}c@ {}}
       
    81   \\[5mm]
       
    82   \huge PEP Scala (3) 
       
    83   \end{tabular}}
       
    84 
       
    85   \normalsize
       
    86   \begin{center}
       
    87   \begin{tabular}{ll}
       
    88     Email:  & christian.urban at kcl.ac.uk\\
       
    89     Office: & N7.07 (North Wing, Bush House)\\
       
    90     Slides \& Code: & KEATS\medskip\\
       
    91     Scala Office & \\
       
    92     Hours: &  Thursdays 11 -- 13\\
       
    93   \end{tabular}
       
    94   \end{center}
       
    95 
       
    96 
       
    97 \end{frame}
       
    98 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
    99 
       
   100 
       
   101 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   102 \begin{frame}[c,fragile]
       
   103 
       
   104 \begin{textblock}{6}(0.5,0.5)
       
   105 \begin{bubble}[11.5cm]
       
   106 \footnotesize
       
   107 \begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-1mm]
       
   108 import java.util.concurrent._
       
   109 import java.util.concurrent.atomic._
       
   110 
       
   111   def collatz(input:Int){
       
   112           CollatzConjecture(input);
       
   113           println(count.get());
       
   114       }
       
   115       def collatz_max(input:Int){
       
   116           val List = new Array[Int](input)
       
   117             for (i <- 0 to input-1){
       
   118                 CollaĵConjecture(i);
       
   119                 List(i)=count.get();
       
   120                 count.set(0);
       
   121             }
       
   122             val max = new AtomicInteger();
       
   123             max.set(List(0));
       
   124             val index = new AtomicInteger();
       
   125             index.set(1);
       
   126  
       
   127 \end{lstlisting}
       
   128 \end{bubble}
       
   129 \end{textblock}
       
   130 
       
   131 \end{frame}
       
   132 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
       
   133 
       
   134 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   135 \begin{frame}[c,fragile]
       
   136 
       
   137 \begin{textblock}{6}(0.5,0.5)
       
   138 \begin{bubble}[11.5cm]
       
   139 \footnotesize
       
   140 \begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-1mm]
       
   141              for(i<-0 to input-1){
       
   142                 val temp :Int=max.get();
       
   143                 if (temp < List(i)){
       
   144                     max.set(List(i));
       
   145                     index.set(i);
       
   146                 }
       
   147             }
       
   148             println("("+max.get() +","+ index.get()+ ")");
       
   149       }
       
   150 
       
   151       def CollatzConjecture(n: Long): Long = {
       
   152         count.incrementAndGet();
       
   153         if (n <= 1)
       
   154             1
       
   155         else if (n\%2 ==0)
       
   156             CollatzConjecture(n/2);
       
   157             else
       
   158                CollatzConjecture((3*n)+1);
       
   159    }
       
   160  }
       
   161 \end{lstlisting}
       
   162 \end{bubble}
       
   163 \end{textblock}
       
   164 
       
   165 \end{frame}
       
   166 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
       
   167 
       
   168 
       
   169 
       
   170 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   171 \begin{frame}[c]
       
   172   \frametitle{CW3 (1 Part): Regexes}
       
   173   
       
   174 \begin{center}
       
   175   Graphs: $(a^*)^* b$ and strings $\underbrace{\;a\ldots a\;}_{n}$\bigskip
       
   176   
       
   177 \begin{tabular}[t]{@{\hspace{-8mm}}c@{\hspace{-4mm}}c@{}}
       
   178 \raisebox{6mm}{\begin{tikzpicture}
       
   179 \begin{axis}[
       
   180     xlabel={$n$},
       
   181     x label style={at={(1.05,0.0)}},
       
   182     ylabel={time in secs},
       
   183     enlargelimits=false,
       
   184     xtick={0,5,...,30},
       
   185     xmax=33,
       
   186     ymax=35,
       
   187     ytick={0,5,...,30},
       
   188     scaled ticks=false,
       
   189     axis lines=left,
       
   190     width=5.5cm,
       
   191     height=5cm, 
       
   192     legend entries={Python,  Java 8},  
       
   193     legend pos=north west,
       
   194     legend cell align=left]
       
   195 \addplot[blue,mark=*, mark options={fill=white}] table {re-python2.data};  
       
   196 \addplot[cyan,mark=*, mark options={fill=white}] table {re-java.data};
       
   197 \end{axis}
       
   198 \end{tikzpicture}}
       
   199   &
       
   200 \onslide<2>{\begin{tikzpicture}
       
   201   \begin{axis}[
       
   202     xlabel={$n$},
       
   203     x label style={at={(1.05,0.0)}},
       
   204     ylabel={time in secs},
       
   205     enlargelimits=false,
       
   206     ymax=35,
       
   207     ytick={0,5,...,30},
       
   208     axis lines=left,
       
   209     %%scaled ticks=false,
       
   210     width=5.5cm, 
       
   211     height=5cm]
       
   212 %%\addplot[green,mark=square*,mark options={fill=white}] table {re2a.data};    
       
   213 \addplot[red,mark=square*,mark options={fill=white}] table {re3a.data};
       
   214 \end{axis}
       
   215 \end{tikzpicture}}
       
   216 \end{tabular}
       
   217 \end{center}
       
   218 
       
   219 \hfill\small\url{https://vimeo.com/112065252}
       
   220 \end{frame}
       
   221 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   222 
       
   223 \begin{frame}[c]
       
   224 \frametitle{Where to go on from here?}
       
   225 
       
   226 \begin{itemize}
       
   227 \item Martin Odersky (EPFL)\ldots he is currently throwing out everything
       
   228   and starts again with the dotty compiler for Scala\medskip
       
   229 
       
   230 \item Elm (\url{http://elm-lang.org})\ldots web applications with style\medskip   
       
   231 
       
   232 \item Haskell, Ocaml, Standard ML, Scheme, \ldots 
       
   233 \end{itemize}  
       
   234 \end{frame}
       
   235 
       
   236 
       
   237 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   238 
       
   239 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   240 \begin{frame}[c,fragile]
       
   241 \frametitle{\alert{Questions?}}
       
   242 
       
   243 {\tiny
       
   244 \begin{verbatim}
       
   245                                *
       
   246                               * *
       
   247                              *   *
       
   248                             * * * *
       
   249                            *       *
       
   250                           * *     * *
       
   251                          *   *   *   *
       
   252                         * * * * * * * *
       
   253                        *               *
       
   254                       * *             * *
       
   255                      *   *           *   *
       
   256                     * * * *         * * * *
       
   257                    *       *       *       *
       
   258                   * *     * *     * *     * *
       
   259                  *   *   *   *   *   *   *   *
       
   260                 * * * * * * * * * * * * * * * *
       
   261                *                               *
       
   262               * *                             * *
       
   263              *   *                           *   *
       
   264             * * * *                         * * * *
       
   265            *       *                       *       *
       
   266           * *     * *                     * *     * *
       
   267          *   *   *   *                   *   *   *   *
       
   268         * * * * * * * *                 * * * * * * * *
       
   269        *               *               *               *
       
   270       * *             * *             * *             * *
       
   271      *   *           *   *           *   *           *   *
       
   272     * * * *         * * * *         * * * *         * * * *
       
   273    *       *       *       *       *       *       *       *
       
   274   * *     * *     * *     * *     * *     * *     * *     * *
       
   275  *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *
       
   276 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
       
   277 \end{verbatim}}
       
   278 
       
   279 
       
   280 \begin{textblock}{6}(8.5,3.5)
       
   281 \begin{bubble}[5cm]
       
   282 \footnotesize
       
   283 \begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-1mm]
       
   284 ++++++++[>+>++++<<-]>++>>
       
   285 +<[-[>>+<<-]+>>]>+[-<<<[-
       
   286 >[+[-]+>++>>>-<<]<[<]>>++
       
   287 ++++[<<+++++>>-]+<<++.[-]
       
   288 <<]>.>+[>>]>+]
       
   289 \end{lstlisting}
       
   290 \end{bubble}
       
   291 \end{textblock}
       
   292   
       
   293 \end{frame}
       
   294 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
       
   295 
       
   296 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
       
   297 
       
   298 \begin{frame}[c]
       
   299 \frametitle{Marks for CW6 (Part 1 + 2)}
       
   300 
       
   301 Raw marks:
       
   302 
       
   303 \begin{itemize}
       
   304 \item 6\%: 154 students
       
   305 \item 5\%: 66
       
   306 \item 4\%: 18
       
   307 \item 3\%: 13
       
   308 \item 2\%: 2
       
   309 \item 1\%: 1
       
   310 \item 0\%: 21 
       
   311 \end{itemize}  
       
   312 \end{frame}
       
   313 
       
   314 
       
   315 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   316 
       
   317 \end{document}
       
   318 
       
   319 
       
   320 \end{document}
       
   321 
       
   322 %%% Local Variables:  
       
   323 %%% mode: latex
       
   324 %%% TeX-master: t
       
   325 %%% End: 
       
   326