275 \begin{frame}[c] |
275 \begin{frame}[c] |
276 \frametitle{Lectures 1 - 5} |
276 \frametitle{Lectures 1 - 5} |
277 |
277 |
278 transforming strings into structured data\\[10mm] |
278 transforming strings into structured data\\[10mm] |
279 |
279 |
280 \alert<2>{\LARGE\bf Lexing} \onslide<2>{\hfill{}based on regular expressions}\medskip\\ |
280 {\LARGE\bf Lexing} {\hfill{}based on regular expressions}\medskip\\ |
281 \hspace{5mm}(recognising ``words'')\\[6mm] |
281 \hspace{5mm}(recognising ``words'')\\[6mm] |
282 |
282 |
283 {\LARGE\bf Parsing}\medskip\\ |
283 {\LARGE\bf Parsing}\medskip\\ |
284 \hspace{5mm}(recognising ``sentences'') |
284 \hspace{5mm}(recognising ``sentences'') |
285 |
285 |
525 \end{frame} |
525 \end{frame} |
526 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
526 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
527 |
527 |
528 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
528 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
529 \begin{frame}[t] |
529 \begin{frame}[t] |
530 \frametitle{\begin{tabular}{c}Regular Expressions\end{tabular}} |
530 \frametitle{Regular Expressions} |
531 |
531 |
532 Their inductive definition: |
532 Their inductive definition: |
533 |
533 |
534 |
534 |
535 \begin{textblock}{6}(2,7.5) |
535 \begin{textblock}{6}(2,7.5) |
553 |
553 |
554 \end{frame} |
554 \end{frame} |
555 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
555 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
556 |
556 |
557 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
557 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
558 \begin{frame}[t] |
558 %\begin{frame}[t] |
559 \frametitle{Regular Expressions} |
559 %\frametitle{Regular Expressions} |
560 |
560 % |
561 \small |
561 %\small |
562 In Scala:\bigskip |
562 %In Scala:\bigskip |
563 |
563 % |
564 \footnotesize |
564 %\footnotesize |
565 \lstinputlisting{../progs/app51.scala} |
565 %\lstinputlisting{../progs/app51.scala} |
566 |
566 % |
567 |
567 % |
568 \end{frame} |
568 %\end{frame} |
569 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
569 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
570 |
570 |
571 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
571 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
572 \begin{frame}[t] |
572 \begin{frame}[t] |
573 \frametitle{Strings} |
573 \frametitle{Strings} |
704 \begin{column}{.5\textwidth} |
704 \begin{column}{.5\textwidth} |
705 \underline{\bf Strand 1}\medskip |
705 \underline{\bf Strand 1}\medskip |
706 \begin{itemize} |
706 \begin{itemize} |
707 \item four programming tasks: |
707 \item four programming tasks: |
708 \begin{itemize} |
708 \begin{itemize} |
709 \item matcher (4\%, 20.10.) |
709 \item matcher (4\%, 19.10.) |
710 \item lexer (5\%, 03.11.) |
710 \item lexer (5\%, 03.11.) |
711 \item parser (5\%, 24.11.) |
711 \item parser (5\%, 23.11.) |
712 \item compiler (6\%, 13.12.) |
712 \item compiler (6\%, 7.12.) |
713 \end{itemize} |
713 \end{itemize} |
714 \end{itemize} |
714 \end{itemize} |
715 \end{column} |
715 \end{column} |
716 |
716 |
717 \hspace{-45pt}\vrule{}\hspace{10pt} |
717 \hspace{-45pt}\vrule{}\hspace{10pt} |
718 \begin{column}{.5\textwidth} |
718 \begin{column}{.5\textwidth} |
719 \underline{\bf Strand 2}\smallskip\begin{itemize} |
719 \underline{\bf Strand 2}\smallskip\begin{itemize} |
720 \item one task: prove the correctness of a regular expression matcher in |
720 \item one task: prove the correctness of a regular expression matcher in |
721 the Isabelle theorem prover |
721 the Isabelle theorem prover |
722 \item 20\%, submission 13.12. |
722 \item 20\%, submission 7.12. |
723 \end{itemize} |
723 \end{itemize} |
724 \end{column} |
724 \end{column} |
725 \end{columns}\medskip |
725 \end{columns}\medskip |
726 |
726 |
727 \small |
727 \small |
728 \begin{itemize} |
728 \begin{itemize} |
729 \item Solving more than one strand will {\bf not} give you more |
729 \item Solving more than one strand will {\bf not} give you more |
730 marks.\\[-2mm] |
730 marks. |
731 \item The exam will contain in much, much smaller form |
731 |
732 elements from both (but will also be in lectures and HW). |
732 \end{itemize} |
733 \end{itemize} |
733 |
734 |
734 \end{frame} |
735 \end{frame} |
735 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
736 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
736 |
|
737 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
738 \begin{frame}[c] |
|
739 \frametitle{Lecture Capture} |
|
740 |
|
741 \begin{itemize} |
|
742 \item Hope it works\ldots\medskip\pause |
|
743 \item It is important to use lecture capture wisely: |
|
744 \begin{itemize} |
|
745 \item Lecture recordings are a study and revision aid. |
|
746 \item Statistically, there is a clear and direct link between attendance and |
|
747 attainment: Students who do not attend lectures, do less well in exams. |
|
748 \end{itemize} |
|
749 |
|
750 \item Attending a lecture is more than watching it online -- if you do not |
|
751 attend, you miss out! |
|
752 |
|
753 \end{itemize} |
|
754 |
|
755 \end{frame} |
|
756 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
757 |
737 |
758 |
738 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
759 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
739 \begin{frame}[c] |
760 \begin{frame}[c] |
740 \frametitle{\begin{tabular}{c}\\[3cm]\alert{Questions?}\end{tabular}} |
761 \frametitle{\begin{tabular}{c}\\[3cm]\alert{Questions?}\end{tabular}} |
741 |
762 |