changeset 200 | 01ee4b576eb2 |
parent 199 | 54befaf23648 |
child 278 | 0c2481cd8b1c |
199:54befaf23648 | 200:01ee4b576eb2 |
---|---|
82 |
82 |
83 \begin{textblock}{6}(2,12) |
83 \begin{textblock}{6}(2,12) |
84 \begin{bubble}[9cm] |
84 \begin{bubble}[9cm] |
85 \small |
85 \small |
86 developed since 2004 by Martin Odersky\\ |
86 developed since 2004 by Martin Odersky\\ |
87 (he was behind Generic Scala which was included in Java 5) |
87 (he was behind Generic Java which was included in Java 5 |
88 \ldots I am using it maybe since 2008?) |
|
88 \end{bubble} |
89 \end{bubble} |
89 \end{textblock} |
90 \end{textblock} |
90 |
91 |
91 \end{frame} |
92 \end{frame} |
92 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
93 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
141 |
142 |
142 \begin{textblock}{6}(13,3) |
143 \begin{textblock}{6}(13,3) |
143 \textbf{\large Java} |
144 \textbf{\large Java} |
144 \end{textblock} |
145 \end{textblock} |
145 |
146 |
146 \begin{textblock}{6}(13,13.4) |
147 \begin{textblock}{6}(13,13.6) |
147 \textbf{\large Scala} |
148 \textbf{\large Scala} |
148 \end{textblock} |
149 \end{textblock} |
149 |
150 |
150 \end{frame} |
151 \end{frame} |
151 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
152 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
165 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
166 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
166 \begin{frame}[c] |
167 \begin{frame}[c] |
167 \frametitle{First Steps: Scala Tools} |
168 \frametitle{First Steps: Scala Tools} |
168 |
169 |
169 \begin{itemize} |
170 \begin{itemize} |
170 \item I use VS Code and a Scala extension |
171 \item I use VS Code and a Scala extension (M'place) |
171 \begin{center} |
172 \begin{center} |
172 \includegraphics[scale=0.10]{../pics/vscode.png}\\[-10mm]\mbox{} |
173 \includegraphics[scale=0.10]{../pics/vscode.png}\\[-10mm]\mbox{} |
173 \end{center}\bigskip |
174 \end{center}\bigskip |
174 |
175 |
175 \item there is a plugin for Eclipse (called Scala IDE)\medskip |
176 \item there is a plugin for Eclipse (called Scala IDE)\medskip |
181 |
182 |
182 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
183 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
183 \begin{frame}[c] |
184 \begin{frame}[c] |
184 \frametitle{\bf |
185 \frametitle{\bf |
185 \only<1>{\begin{tabular}{l}\\[2mm]Why Scala?\\ \mbox{}\end{tabular}} |
186 \only<1>{\begin{tabular}{l}\\[2mm]Why Scala?\\ \mbox{}\end{tabular}} |
186 \only<2->{\begin{tabular}{l}\\[2mm]Why Functional\\ Programming?\end{tabular}} |
187 \only<2->{\begin{tabular}{c}\\[2mm]Why Functional\\[-2mm] Programming?\end{tabular}} |
187 } |
188 } |
188 |
|
189 |
189 |
190 % |
190 % |
191 \mbox{}\\[3.5cm] |
191 \mbox{}\\[3.5cm] |
192 \small |
192 \small |
193 Scala, Elm, Haskell, Ocaml, F$\sharp$, Erlang, ML, Lisp (Racket), \ldots |
193 Scala, Elm, Haskell, Ocaml, F$\sharp$, Erlang, ML, Lisp (Racket), \ldots |
201 \hfill{}---Simon Peyton Jones (works at Microsoft)\\ |
201 \hfill{}---Simon Peyton Jones (works at Microsoft)\\ |
202 \hfill{}main developer of the Glasgow Haskell Compiler |
202 \hfill{}main developer of the Glasgow Haskell Compiler |
203 \end{bubble} |
203 \end{bubble} |
204 \end{textblock}} |
204 \end{textblock}} |
205 |
205 |
206 \only<4>{ |
|
207 \begin{textblock}{6}(5,5.8) |
|
208 \hspace{2mm}\includegraphics[scale=0.06]{../pics/assign.jpg}\\[-1mm] |
|
209 \Large\alert{\textbf{Immutability}} |
|
210 \end{textblock}} |
|
211 |
|
212 |
|
206 \end{frame} |
213 \end{frame} |
207 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
214 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
215 |
|
216 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
217 \begin{frame}[c, fragile] |
|
218 |
|
219 {\Large Why bother? or\smallskip\\\hfill What is wrong with this?}\bigskip\bigskip |
|
220 |
|
221 |
|
222 \begin{lstlisting}[language=C,numbers=none] |
|
223 for (int i = 10; i < 20; i++) { |
|
224 |
|
225 //...Do something interesting |
|
226 // with i... |
|
227 |
|
228 } |
|
229 \end{lstlisting} |
|
230 |
|
231 |
|
232 \end{frame} |
|
233 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
234 |
|
235 |
|
208 |
236 |
209 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
237 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
210 \begin{frame}[c] |
238 \begin{frame}[c] |
211 \mbox{}\\[-21mm]\mbox{} |
239 \mbox{}\\[-21mm]\mbox{} |
212 |
240 |
294 \only<9>{ |
322 \only<9>{ |
295 \begin{textblock}{1}(3,3) |
323 \begin{textblock}{1}(3,3) |
296 \begin{bubble}[9cm] |
324 \begin{bubble}[9cm] |
297 \begin{tabular}{@{\hspace{8mm}}llll@{\hspace{8mm}}} |
325 \begin{tabular}{@{\hspace{8mm}}llll@{\hspace{8mm}}} |
298 \\ |
326 \\ |
299 \multicolumn{4}{c}{\bf Speedup by Moore's Law}\medskip\\ |
327 \multicolumn{4}{c}{\alert{\bf Speedup by Moore's Law}}\medskip\\ |
300 \textbf{1986:} & 3 days & \textbf{1996:} & 135 mins\\ |
328 \textbf{1986:} & 3 days & \textbf{1996:} & 135 mins\\ |
301 \textbf{1988:} & 1.5 days & \textbf{1998:} & 67 mins\\ |
329 \textbf{1988:} & 1.5 days & \textbf{1998:} & 67 mins\\ |
302 \textbf{1990:} & 18 hs & \textbf{2000:} & 33 mins\\ |
330 \textbf{1990:} & 18 hs & \textbf{2000:} & 33 mins\\ |
303 \textbf{1992:} & 9 hs & \textbf{2002:} & 16 mins\\ |
331 \textbf{1992:} & 9 hs & \textbf{2002:} & 16 mins\\ |
304 \textbf{1994:} & 4.5 hs & \multicolumn{2}{c}{???}\\ |
332 \textbf{1994:} & 4.5 hs & \multicolumn{2}{c}{???}\\ |
311 \end{frame} |
339 \end{frame} |
312 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
340 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
313 |
341 |
314 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
342 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
315 \begin{frame}[c] |
343 \begin{frame}[c] |
316 \frametitle{Seq vs Par} |
344 \frametitle{Seq \;vs\; Par} |
317 |
345 |
318 \begin{center} |
346 \begin{center} |
319 \begin{tabular}[t]{@{}l@{}l@{}} |
347 \begin{tabular}[t]{@{}l@{}l@{}} |
320 \includegraphics[scale=0.14]{../pics/mand4.png} & |
348 \includegraphics[scale=0.14]{../pics/mand4.png} & \hspace{4mm} |
321 \raisebox{1.2mm}{\includegraphics[scale=0.14]{../pics/mand3.png}} |
349 \raisebox{0mm}{\includegraphics[scale=0.14]{../pics/mand3.png}}\\ |
350 \hspace{6mm}\includegraphics[scale=0.5]{../pics/cpu2.png} & |
|
351 \hspace{11mm}\includegraphics[scale=0.5]{../pics/cpu1.png} |
|
322 \end{tabular} |
352 \end{tabular} |
323 \end{center} |
353 \end{center} |
324 |
354 |
325 \only<2>{ |
355 \only<2>{ |
326 \begin{textblock}{5}(12,2) |
356 \begin{textblock}{5}(12,2) |
329 \includegraphics[scale=0.50]{../pics/skeleton.jpg}\\ |
359 \includegraphics[scale=0.50]{../pics/skeleton.jpg}\\ |
330 \end{bubble} |
360 \end{bubble} |
331 \end{textblock}} |
361 \end{textblock}} |
332 |
362 |
333 \only<3>{ |
363 \only<3>{ |
334 \begin{textblock}{14.2}(1,12.3) |
364 \begin{textblock}{14.2}(1,13.5) |
335 In FP: Once a variable is created, it is assigned a value and then |
365 In FP: Once a variable is created, it is assigned a value and then |
336 never changed again $\Rightarrow$ no synchronisation\smallskip\\ |
366 never changed again $\Rightarrow$ no synchronisation\smallskip\\ |
337 \small\textcolor{gray}{(Andrew's second favourite feature of C++)} |
367 %%\small\textcolor{gray}{(Andrew's second favourite feature of C++)} |
338 \end{textblock}} |
368 \end{textblock}} |
339 |
369 |
340 \end{frame} |
370 \end{frame} |
341 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
371 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
342 |
372 |
368 \textcolor{codegreen}{\texttt{Set[Double]}} & sets of Double's \\ |
398 \textcolor{codegreen}{\texttt{Set[Double]}} & sets of Double's \\ |
369 \textcolor{codegreen}{\texttt{(Int, String)}} & Int-String pair\\ |
399 \textcolor{codegreen}{\texttt{(Int, String)}} & Int-String pair\\ |
370 \textcolor{codegreen}{\texttt{List[(BigInt, String)]}} & |
400 \textcolor{codegreen}{\texttt{List[(BigInt, String)]}} & |
371 lists of BigInt-String\\ |
401 lists of BigInt-String\\ |
372 & pairs\\ |
402 & pairs\\ |
373 \textcolor{codegreen}{\texttt{List[List[Int]]}} & list of lists of Int's\\ |
403 \textcolor{codegreen}{\texttt{List[List[Int]]}} & list of lists of Int's\\ \textcolor{codegreen}{\texttt{Option[Int]}} & options of Int's \\ |
374 \end{tabular} |
404 \end{tabular} |
375 |
405 |
376 \end{itemize} |
406 \end{itemize} |
377 |
407 |
378 \end{frame} |
408 \end{frame} |
379 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
409 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
380 |
410 |
381 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
411 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
382 \begin{frame}[c] |
412 %\begin{frame}[c] |
383 \frametitle{An Http Request} |
413 %\frametitle{An Http Request} |
384 |
414 |
385 \begin{textblock}{1}(2,5) |
415 %\begin{textblock}{1}(2,5) |
386 \begin{tabular}{c} |
416 %\begin{tabular}{c} |
387 \includegraphics[scale=0.15]{../pics/servers.png}\\[-2mm] |
417 %\includegraphics[scale=0.15]{../pics/servers.png}\\[-2mm] |
388 \small Server |
418 %\small Server |
389 \end{tabular} |
419 %\end{tabular} |
390 \end{textblock} |
420 %\end{textblock} |
391 |
421 |
392 \begin{textblock}{1}(5.6,4) |
422 %\begin{textblock}{1}(5.6,4) |
393 \begin{tikzpicture}[scale=1.1] |
423 % \begin{tikzpicture}[scale=1.1] |
394 \draw[white] (0,1) node (X) {}; |
424 % \draw[white] (0,1) node (X) {}; |
395 \draw[white] (2,1) node (Y) {}; |
425 % \draw[white] (2,1) node (Y) {}; |
396 \draw[white] (0,0) node (X1) {}; |
426 % \draw[white] (0,0) node (X1) {}; |
397 \draw[white] (2,0) node (Y1) {}; |
427 % \draw[white] (2,0) node (Y1) {}; |
398 \draw[white] (0,-1) node (X2) {}; |
428 % \draw[white] (0,-1) node (X2) {}; |
399 \draw[white] (2,-1) node (Y2) {}; |
429 % \draw[white] (2,-1) node (Y2) {}; |
400 \draw[red, <-, line width = 2mm] (X) -- (Y); |
430 % \draw[red, <-, line width = 2mm] (X) -- (Y); |
401 \node [inner sep=5pt,label=above:\textcolor{black}{GET request}] at ($ (X)!.5!(Y) $) {}; |
431 % \node [inner sep=5pt,label=above:\textcolor{black}{GET request}] at ($ (X)!.5!(Y) $) {}; |
402 \draw[red, ->, line width = 2mm] (X1) -- (Y1); |
432 % \draw[red, ->, line width = 2mm] (X1) -- (Y1); |
403 \node [inner sep=5pt,label=above:\textcolor{black}{webpage}] at ($ (X1)!.5!(Y1) $) {}; |
433 % \node [inner sep=5pt,label=above:\textcolor{black}{webpage}] at ($ (X1)!.5!(Y1) $) {}; |
404 \draw[red, <-, line width = 2mm] (X2) -- (Y2); |
434 % \draw[red, <-, line width = 2mm] (X2) -- (Y2); |
405 \node [inner sep=7pt,label=above:\textcolor{black}{POST data}] at ($ (X2)!.5!(Y2) $) {}; |
435 % \node [inner sep=7pt,label=above:\textcolor{black}{POST data}] at ($ (X2)!.5!(Y2) $) {}; |
406 \end{tikzpicture} |
436 % \end{tikzpicture} |
407 \end{textblock} |
437 %\end{textblock} |
408 |
438 |
409 |
439 |
410 \begin{textblock}{1}(9,5.5) |
440 %\begin{textblock}{1}(9,5.5) |
411 \begin{tabular}{c} |
441 %\begin{tabular}{c} |
412 \includegraphics[scale=0.15]{../pics/laptop.png}\\[-2mm] |
442 %\includegraphics[scale=0.15]{../pics/laptop.png}\\[-2mm] |
413 \small Browser |
443 %\small Browser |
414 \end{tabular} |
444 %\end{tabular} |
415 \end{textblock} |
445 %\end{textblock} |
416 \end{frame} |
446 %\end{frame} |
417 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
447 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
418 |
448 |
419 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
449 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
420 \begin{frame}[c] |
450 %\begin{frame}[c] |
421 |
451 % |
422 {\lstset{language=Java}\fontsize{7}{8}\selectfont |
452 %{\lstset{language=Java}\fontsize{7}{8}\selectfont |
423 \texttt{\lstinputlisting{URLReader.java}}} |
453 %\texttt{\lstinputlisting{URLReader.java}}} |
424 |
454 % |
425 \end{frame} |
455 %\end{frame} |
426 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
456 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
427 |
457 |
428 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
458 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
429 \begin{frame}[c] |
459 \begin{frame}[c] |
430 \frametitle{Coursework} |
460 \frametitle{Coursework} |
431 |
461 |
432 \begin{itemize} |
462 \begin{itemize} |
433 \item sorry, I might have been a bit wordy:\\ |
463 \item Sorry, I might have been a bit wordy:\\ |
434 CW description is 7 pages, but |
464 CW description is 7 pages, but |
435 I only needed \mbox{< 150} loc for all the CW\bigskip |
465 I only needed \mbox{< 100} loc for \emph{all} the CW6.\bigskip |
436 |
466 |
437 \item there is email feedback when pushing code to github\bigskip |
467 \item there is email feedback when pushing code to github\medskip |
438 |
468 |
439 \item we want you to learn FP: \alert{no vars}, no mutable |
469 \item there are \texttt{jar}-files you can use to test my implementation\bigskip |
440 datastructures, e.g.~\texttt{ListBuffer} |
470 |
471 \item we want you to learn FP: \alert{\bf no vars}, no mutable |
|
472 data-structures, e.g.~no \texttt{Arrays}, no \texttt{ListBuffer} |
|
441 \end{itemize} |
473 \end{itemize} |
442 \end{frame} |
474 \end{frame} |
443 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
475 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
444 |
476 |
445 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
477 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
456 \begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-1mm] |
488 \begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-1mm] |
457 val old_list = List(1, 2, 3, 5) |
489 val old_list = List(1, 2, 3, 5) |
458 val new_list = 0 :: old_list |
490 val new_list = 0 :: old_list |
459 \end{lstlisting}} |
491 \end{lstlisting}} |
460 |
492 |
461 \item You do not have to be defensive about who can access the data |
493 \item You do not have to be defensive about who can access the data. |
462 (concurrency, lazyness). |
494 |
495 \item You can look at your code in isolation. |
|
463 \end{itemize} |
496 \end{itemize} |
464 \end{frame} |
497 \end{frame} |
465 |
498 |
466 |
499 |
467 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
500 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
630 |
663 |
631 \item it is a rather \textbf{\alert{deep}} language\ldots i.e.~gives |
664 \item it is a rather \textbf{\alert{deep}} language\ldots i.e.~gives |
632 you a lot of rope to shoot yourself\bigskip |
665 you a lot of rope to shoot yourself\bigskip |
633 |
666 |
634 \item learning functional programming is not easy\ldots{}when you have |
667 \item learning functional programming is not easy\ldots{}when you have |
635 spent all of your career thinking in a procedural way it is hard to |
668 spent all of your career thinking in an imperative way, it is hard to |
636 change\bigskip\medskip |
669 change\bigskip\medskip |
637 |
670 |
638 \item hope you have fun with the coursework |
671 \item hope you have fun with Scala and the assignments |
639 \end{itemize} |
672 \end{itemize} |
640 \end{frame} |
673 \end{frame} |
641 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
674 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
642 |
675 |
643 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
676 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
644 \begin{frame}[c] |
677 \begin{frame}[c] |
645 \frametitle{\begin{tabular}{c}\\[0cm]\alert{Questions?}\end{tabular}} |
678 \frametitle{\begin{tabular}{c}\\[0cm]\alert{Questions?}\end{tabular}} |
646 |
679 |
647 \begin{center} |
680 \begin{center} |
648 \begin{tabular}[t]{@{}l@{}l@{}} |
681 \begin{tabular}[t]{@{}l@{}l@{}} |
649 \includegraphics[scale=0.1]{../pics/mand4.png} & |
682 \includegraphics[scale=0.1]{../pics/mand4.png} & \hspace{4mm} |
650 \raisebox{1.2mm}{\includegraphics[scale=0.1]{../pics/mand3.png}} |
683 \raisebox{0mm}{\includegraphics[scale=0.1]{../pics/mand3.png}} |
651 \end{tabular} |
684 \end{tabular} |
652 \end{center} |
685 \end{center} |
653 |
686 |
654 \begin{center} |
687 \begin{center} |
655 My Scala Office Hours: Thursdays 11 -- 13 |
688 My Office Hours: Mondays 12 -- 14\\ |
689 except next week: Tuesday 12 -- 14 |
|
656 \end{center} |
690 \end{center} |
657 \end{frame} |
691 \end{frame} |
658 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
692 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
659 \end{document} |
693 \end{document} |
660 |
694 |