slides/slides05.tex
author Christian Urban <urbanc@in.tum.de>
Tue, 12 Nov 2019 00:41:00 +0000
changeset 318 029e2862bb4e
parent 265 59779ce322a6
child 327 fb4cd144a9e6
permissions -rw-r--r--
updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
239
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     1
\documentclass[dvipsnames,14pt,t,xelatex]{beamer}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     2
\usepackage{../slides}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     3
\usepackage{../graphics}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     4
\usepackage{../langs}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     5
%%\usepackage{../data}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     6
\usepackage[export]{adjustbox}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     7
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     8
\hfuzz=220pt 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     9
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    10
%\setmonofont[Scale=.88]{Consolas}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    11
%\newfontfamily{\consolas}{Consolas}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    12
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    13
\lstset{language=Scala,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    14
        style=mystyle,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    15
        numbersep=0pt,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    16
        numbers=none,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    17
        xleftmargin=0mm}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    18
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    19
\newcommand{\bl}[1]{\textcolor{blue}{#1}}     
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    20
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    21
% beamer stuff 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    22
\renewcommand{\slidecaption}{PEP (Scala) 05, King's College London}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    23
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    24
\begin{filecontents}{re3a.data}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    25
1 0.00003
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    26
500001 0.22527
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    27
1000001 0.62752
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    28
1500001 0.88485
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    29
2000001 1.39815
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    30
2500001 1.68619
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    31
3000001 1.94957
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    32
3500001 2.15878
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    33
4000001 2.59918
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    34
4500001 5.90679
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    35
5000001 13.11295
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    36
5500001 19.15376
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    37
6000001 40.16373
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    38
\end{filecontents}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    39
\begin{filecontents}{re-python2.data}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    40
1 0.033
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    41
5 0.036
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    42
10 0.034
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    43
15 0.036
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    44
18 0.059
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    45
19 0.084
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    46
20 0.141
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    47
21 0.248
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    48
22 0.485
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    49
23 0.878
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    50
24 1.71
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    51
25 3.40
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    52
26 7.08
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    53
27 14.12
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    54
28 26.69
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    55
\end{filecontents}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    56
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    57
\begin{filecontents}{re-java.data}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    58
5  0.00298
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    59
10  0.00418
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    60
15  0.00996
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    61
16  0.01710
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    62
17  0.03492
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    63
18  0.03303
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    64
19  0.05084
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    65
20  0.10177
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    66
21  0.19960
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    67
22  0.41159
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    68
23  0.82234
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    69
24  1.70251
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    70
25  3.36112
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    71
26  6.63998
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    72
27  13.35120
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    73
28  29.81185
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    74
\end{filecontents}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    75
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    76
%All O2 technical teams are working closely with one of our third party suppliers who has identified a global software issue in their system which has impacted data services.  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    77
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    78
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    79
\begin{document}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    80
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    81
\begin{frame}[t]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    82
\frametitle{%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    83
  \begin{tabular}{@ {}c@ {}}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    84
  \\[5mm]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    85
  \huge PEP Scala (5) 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    86
  \end{tabular}}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    87
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    88
  \normalsize
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    89
  \begin{center}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    90
  \begin{tabular}{ll}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    91
    Email:  & christian.urban at kcl.ac.uk\\
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    92
    Office: & N\liningnums{7.07} (North Wing, Bush House)\\
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    93
    Slides \& Code: & KEATS\medskip\\
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    94
    Office Hours: &  Mondays 12:00 -- 14:00\\
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    95
  \end{tabular}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    96
  \end{center}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    97
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    98
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    99
\end{frame}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   100
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   101
240
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   102
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   103
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   104
\begin{frame}[c]
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   105
\frametitle{Marks for CW7 (Part 1 +  2)}
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   106
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   107
Raw marks (234 submissions):
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   108
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   109
\begin{itemize}
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   110
\item 6\%: \hspace{4mm}192 students
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   111
\item 5\%: \hspace{4mm}16
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   112
\item 4\%: \hspace{4mm}7
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   113
\item 3\%: \hspace{4mm}2
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   114
\item 2\%: \hspace{4mm}6
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   115
\item 1\%: \hspace{4mm}1
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   116
\item 0\%: \hspace{4mm}9 
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   117
\end{itemize}  
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   118
\end{frame}
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   119
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   120
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   121
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   122
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   123
b8cdaf51ffef updated
Christian Urban <urbanc@in.tum.de>
parents: 239
diff changeset
   124
239
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   125
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   126
\begin{frame}[c,fragile]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   127
\small
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   128
  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   129
\begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-7mm]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   130
def get_csv_url(url: String) : List[String] = {
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   131
  val csv = Try(Source.fromURL(url)).getOrElse(null)
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   132
   if (csv == null){
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   133
     List()
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   134
   }
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   135
   else {
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   136
     ....
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   137
   }
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   138
}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   139
\end{lstlisting}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   140
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   141
\pause
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   142
\bigskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   143
\rule{11cm}{0.3mm}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   144
\bigskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   145
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   146
\begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-7mm]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   147
def get_csv_url(url: String) : List[String] = {
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   148
  Try(Source.fromURL(url)....).getOrElse(Nil)
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   149
\end{lstlisting}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   150
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   151
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   152
\end{frame}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   153
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   154
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   155
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   156
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   157
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   158
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   159
\begin{frame}[c,fragile]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   160
\small
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   161
  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   162
\begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-7mm]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   163
def get_csv_url(url: String) : List[String] = {
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   164
    try {
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   165
        val csvFile = Source.fromURL(url)
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   166
        ....
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   167
    } catch {
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   168
        case unknown : Throwable => List()
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   169
    }
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   170
}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   171
\end{lstlisting}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   172
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   173
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   174
\bigskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   175
\rule{11cm}{0.3mm}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   176
\bigskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   177
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   178
\begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-7mm]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   179
def get_csv_url(url: String) : List[String] = {
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   180
  Try(Source.fromURL(url)....).getOrElse(Nil)
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   181
\end{lstlisting}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   182
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   183
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   184
\end{frame}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   185
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   186
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   187
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   188
  \begin{frame}[c]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   189
  \frametitle{Dijkstra on Testing}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   190
  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   191
  \begin{bubble}[10cm]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   192
  ``Program testing can be a very effective way to show the
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   193
  presence of bugs, but it is hopelessly inadequate for showing
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   194
  their absence.''
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   195
  \end{bubble}\bigskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   196
  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   197
  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   198
  \end{frame}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   199
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   200
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   201
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   202
\begin{frame}[c]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   203
\frametitle{\Large Proving Programs to be Correct}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   204
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   205
\begin{bubble}[10cm]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   206
\small
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   207
{\bf Theorem:} There are infinitely many prime 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   208
numbers.\medskip\\
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   209
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   210
{\bf Proof} \ldots\\
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   211
\end{bubble}\bigskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   212
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   213
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   214
similarly\bigskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   215
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   216
\begin{bubble}[10cm]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   217
\small
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   218
{\bf Theorem:} The program is doing what 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   219
it is supposed to be doing.\medskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   220
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   221
{\bf Long, long proof} \ldots\\
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   222
\end{bubble}\bigskip\medskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   223
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   224
\small This can be a gigantic proof. The only hope is to have
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   225
help from the computer. `Program' is here to be understood to be
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   226
quite general (compiler, OS, \ldots).
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   227
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   228
\end{frame}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   229
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   230
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   231
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   232
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   233
\begin{frame}[c]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   234
\frametitle{Can This Be Done?}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   235
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   236
\begin{itemize}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   237
\item in 2011, verification of a small C-compiler (CompCert)
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   238
\begin{itemize}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   239
\item ``if my input program has a certain behaviour, then the compiled machine code has the same behaviour''
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   240
\item is as good as \texttt{gcc -O1}, but much, much less buggy 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   241
\end{itemize}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   242
\end{itemize}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   243
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   244
\begin{center}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   245
  \includegraphics[scale=0.12]{../pics/compcert.png}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   246
\end{center}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   247
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   248
\end{frame}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   249
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   250
265
59779ce322a6 updated
Christian Urban <urbanc@in.tum.de>
parents: 240
diff changeset
   251
%% ~2,237,800 lines of proof in 474
239
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   252
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   253
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   254
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   255
\begin{frame}[c]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   256
\frametitle{Fuzzy Testing C-Compilers}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   257
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   258
\begin{itemize}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   259
\item tested GCC, LLVM and others by randomly generating 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   260
C-programs
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   261
\item found more than 300 bugs in GCC and also
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   262
many in LLVM (some of them highest-level critical)\bigskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   263
\item about CompCert:
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   264
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   265
\begin{bubble}[10cm]\small ``The striking thing about our CompCert
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   266
results is that the middle-end bugs we found in all other
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   267
compilers are absent. As of early 2011, the under-development
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   268
version of CompCert is the only compiler we have tested for
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   269
which Csmith cannot find wrong-code errors. This is not for
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   270
lack of trying: we have devoted about six CPU-years to the
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   271
task.'' 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   272
\end{bubble} 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   273
\end{itemize}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   274
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   275
\end{frame}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   276
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   277
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   278
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   279
\begin{frame}[c]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   280
\frametitle{seL4 / Isabelle}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   281
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   282
\begin{itemize}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   283
\item verified a microkernel operating system ($\approx$8000 lines of C code)\bigskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   284
\item US DoD has competitions to hack into drones; they found that the
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   285
  isolation guarantees of seL4 hold up\bigskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   286
\item CompCert and seL4 sell their code  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   287
\end{itemize}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   288
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   289
\only<2>{
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   290
\begin{textblock}{5}(5.5,1.9)
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   291
  \includegraphics[scale=0.25]{../pics/drone.jpg}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   292
\end{textblock}}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   293
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   294
\end{frame}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   295
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   296
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   297
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   298
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   299
\begin{frame}[c]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   300
  \frametitle{CW9 : Regexes}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   301
  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   302
\begin{center}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   303
  Graphs: $(a^*)^* b$ and strings $\underbrace{\;a\ldots a\;}_{n}$\bigskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   304
  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   305
\begin{tabular}[t]{@{\hspace{-8mm}}c@{\hspace{-4mm}}c@{}}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   306
\raisebox{6mm}{\begin{tikzpicture}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   307
\begin{axis}[
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   308
    xlabel={$n$},
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   309
    x label style={at={(1.05,0.0)}},
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   310
    ylabel={time in secs},
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   311
    enlargelimits=false,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   312
    xtick={0,5,...,30},
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   313
    xmax=33,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   314
    ymax=35,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   315
    ytick={0,5,...,30},
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   316
    scaled ticks=false,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   317
    axis lines=left,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   318
    width=5.5cm,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   319
    height=5cm, 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   320
    legend entries={Python,  Java 8},  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   321
    legend pos=north west,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   322
    legend cell align=left]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   323
\addplot[blue,mark=*, mark options={fill=white}] table {re-python2.data};  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   324
\addplot[cyan,mark=*, mark options={fill=white}] table {re-java.data};
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   325
\end{axis}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   326
\end{tikzpicture}}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   327
  &
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   328
\onslide<1>{\begin{tikzpicture}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   329
  \begin{axis}[
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   330
    xlabel={$n$},
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   331
    x label style={at={(1.05,0.0)}},
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   332
    ylabel={time in secs},
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   333
    enlargelimits=false,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   334
    ymax=35,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   335
    ytick={0,5,...,30},
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   336
    axis lines=left,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   337
    %%scaled ticks=false,
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   338
    width=5.5cm, 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   339
    height=5cm]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   340
%%\addplot[green,mark=square*,mark options={fill=white}] table {re2a.data};    
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   341
\addplot[red,mark=square*,mark options={fill=white}] table {re3a.data};
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   342
\end{axis}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   343
\end{tikzpicture}}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   344
\end{tabular}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   345
\end{center}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   346
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   347
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   348
\small
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   349
\hfill Kuklewicz: most POSIX matchers are buggy\\
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   350
\footnotesize
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   351
\hfill \url{http://www.haskell.org/haskellwiki/Regex_Posix}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   352
\end{frame}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   353
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   354
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   355
\begin{frame}[c]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   356
\frametitle{Where to go on from here?}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   357
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   358
\begin{itemize}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   359
\item Martin Odersky (EPFL)\ldots he is currently throwing out everything
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   360
  and starts again with the dotty compiler for Scala\medskip
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   361
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   362
\item Elm (\url{http://elm-lang.org})\ldots web applications with style\medskip   
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   363
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   364
\item Haskell, Ocaml, Standard ML, Scheme, \ldots 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   365
\end{itemize}  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   366
\end{frame}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   367
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   368
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   369
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   370
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   371
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   372
\begin{frame}[c,fragile]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   373
\frametitle{\alert{Questions?}}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   374
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   375
{\tiny
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   376
\begin{verbatim}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   377
                               *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   378
                              * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   379
                             *   *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   380
                            * * * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   381
                           *       *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   382
                          * *     * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   383
                         *   *   *   *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   384
                        * * * * * * * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   385
                       *               *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   386
                      * *             * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   387
                     *   *           *   *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   388
                    * * * *         * * * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   389
                   *       *       *       *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   390
                  * *     * *     * *     * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   391
                 *   *   *   *   *   *   *   *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   392
                * * * * * * * * * * * * * * * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   393
               *                               *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   394
              * *                             * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   395
             *   *                           *   *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   396
            * * * *                         * * * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   397
           *       *                       *       *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   398
          * *     * *                     * *     * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   399
         *   *   *   *                   *   *   *   *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   400
        * * * * * * * *                 * * * * * * * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   401
       *               *               *               *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   402
      * *             * *             * *             * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   403
     *   *           *   *           *   *           *   *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   404
    * * * *         * * * *         * * * *         * * * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   405
   *       *       *       *       *       *       *       *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   406
  * *     * *     * *     * *     * *     * *     * *     * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   407
 *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   408
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   409
\end{verbatim}}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   410
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   411
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   412
\begin{textblock}{6}(8.5,3.5)
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   413
\begin{bubble}[5cm]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   414
\footnotesize
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   415
\begin{lstlisting}[language=Scala, numbers=none, xleftmargin=-1mm]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   416
++++++++[>+>++++<<-]>++>>
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   417
+<[-[>>+<<-]+>>]>+[-<<<[-
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   418
>[+[-]+>++>>>-<<]<[<]>>++
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   419
++++[<<+++++>>-]+<<++.[-]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   420
<<]>.>+[>>]>+]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   421
\end{lstlisting}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   422
\end{bubble}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   423
\end{textblock}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   424
  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   425
\end{frame}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   426
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   427
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   428
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   429
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   430
\begin{frame}[c]
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   431
\frametitle{Marks for CW6 (Part 1 + 2)}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   432
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   433
Raw marks:
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   434
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   435
\begin{itemize}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   436
\item 6\%: 154 students
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   437
\item 5\%: 66
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   438
\item 4\%: 18
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   439
\item 3\%: 13
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   440
\item 2\%: 2
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   441
\item 1\%: 1
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   442
\item 0\%: 21 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   443
\end{itemize}  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   444
\end{frame}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   445
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   446
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   447
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   448
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   449
\end{document}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   450
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   451
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   452
\end{document}
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   453
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   454
%%% Local Variables:  
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   455
%%% mode: latex
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   456
%%% TeX-master: t
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   457
%%% End: 
0c752ac51cfa updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
   458