slides/slides01.tex
changeset 990 ef63ae3586b8
parent 985 c7e944977e39
child 995 8a4f09ef6e20
equal deleted inserted replaced
989:aa976b429904 990:ef63ae3586b8
   239 \begin{frame}[t]
   239 \begin{frame}[t]
   240 \frametitle{%  
   240 \frametitle{%  
   241   \begin{tabular}{@ {}c@ {}}
   241   \begin{tabular}{@ {}c@ {}}
   242   \\[-3mm]
   242   \\[-3mm]
   243   \LARGE Compilers and \\[-1mm] 
   243   \LARGE Compilers and \\[-1mm] 
   244   \LARGE Formal Languages\\[-5mm] 
   244   \LARGE Formal Languages\\[-3mm] 
   245   \end{tabular}}
   245   \end{tabular}}
   246 
   246 
   247   %\begin{center}
   247   %\begin{center}
   248   %\includegraphics[scale=0.3]{pics/ante1.jpg}\hspace{5mm}
   248   %\includegraphics[scale=0.3]{pics/ante1.jpg}\hspace{5mm}
   249   %\includegraphics[scale=0.31]{pics/ante2.jpg}\\
   249   %\includegraphics[scale=0.31]{pics/ante2.jpg}\\
   252 
   252 
   253   \normalsize
   253   \normalsize
   254   \begin{center}
   254   \begin{center}
   255   \begin{tabular}{ll}
   255   \begin{tabular}{ll}
   256   Email:  & christian.urban at kcl.ac.uk\\
   256   Email:  & christian.urban at kcl.ac.uk\\
   257   Office Hour: & Fridays 12 -- 14\\
   257   Office Hour: & Fridays 11:30 -- 12:30\\
   258   Location: & N7.07 (North Wing, Bush House)\\
   258   Location: & N7.07 (North Wing, Bush House)\\
   259   Slides \& Progs: & KEATS\\
   259   Slides \& Progs: & KEATS\\
   260   Pollev: & \texttt{\alert{https://pollev.com/cfltutoratki576}}\\  
   260   %Pollev: & \texttt{\alert{https://pollev.com/cfltutoratki576}}\\  
   261   \end{tabular}
   261   \end{tabular}
   262   \end{center}
   262   \end{center}
   263 
   263 
   264   \begin{center}
   264   \begin{center}
   265     \begin{tikzpicture}
   265     \begin{tikzpicture}
   635 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
   635 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%     
   636 
   636 
   637 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   637 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   638 {\setbeamercolor{background canvas}{bg=cream}
   638 {\setbeamercolor{background canvas}{bg=cream}
   639 \begin{frame}[c]
   639 \begin{frame}[c]
       
   640 \frametitle{How to study for CFL?}
       
   641 
       
   642 My recommendation for each week: 
       
   643 
       
   644 \begin{itemize}
       
   645 \item read the handout
       
   646 \item watch the videos
       
   647 \item re-read the handout
       
   648 \item do the HW to be discussed at the SGT
       
   649 \item later on do the CW
       
   650 \end{itemize}
       
   651 
       
   652 
       
   653 \end{frame}}
       
   654 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
       
   655 
       
   656 
       
   657 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   658 {\setbeamercolor{background canvas}{bg=cream}
       
   659 \begin{frame}[c]
   640 \frametitle{Some Housekeeping}
   660 \frametitle{Some Housekeeping}
   641 
   661 
   642 \textbf{Exam will be computer-based, invigilated in some big examination hall:}\bigskip
   662 \textbf{Exam will be computer-based, invigilated in some big examination hall:}\bigskip
   643 
   663 
   644 \begin{itemize}
   664 \begin{itemize}
   645 \item final exam in January (\xout{35\%} \textbf{40\%})
   665 \item final exam in January (\textbf{40\%})
   646 \item coursework (\xout{65\%} \textbf{60\%- very first part is now optional}) 
   666 \item coursework (\textbf{60\%- the first part is optional}) 
   647 \end{itemize}\bigskip\bigskip\pause
   667 \end{itemize}\bigskip\bigskip\pause
   648 
   668 
   649 
   669 
   650 \textbf{Weekly Homework (optional):}
   670 \textbf{Weekly Homework (optional):}
   651 \begin{itemize}
   671 \begin{itemize}
   664 \frametitle{Homework}
   684 \frametitle{Homework}
   665 
   685 
   666 Until 3 years ago: I did not give out solutions; students
   686 Until 3 years ago: I did not give out solutions; students
   667 sent emails to me and I responded to them individually.\bigskip\\
   687 sent emails to me and I responded to them individually.\bigskip\\
   668 
   688 
   669 Now: We will review the homework mainly during the SGTs.\bigskip\\\pause
   689 Now: TAs will review the homework mainly during the SGTs.\bigskip\\\pause
   670 
       
   671 I will still choose the questions from the HW for the exam, but there might be
       
   672 some larger amount of deviation.\bigskip\pause
       
   673 
   690 
   674 Do not harass your TAs for the solutions!
   691 Do not harass your TAs for the solutions!
   675 
   692 
   676 \end{frame}
   693 \end{frame}
   677 }
   694 }
   682 \begin{frame}[c]
   699 \begin{frame}[c]
   683 \frametitle{Students in CFL}
   700 \frametitle{Students in CFL}
   684 
   701 
   685 \begin{center}
   702 \begin{center}
   686 \begin{tikzpicture}
   703 \begin{tikzpicture}
   687   \begin{axis}[symbolic x coords={2016,2017,2018,2019,2020,2021,2022,2023,2024},
   704   \begin{axis}[symbolic x coords={2016,2017,2018,2019,2020,2021,2022,2023,2024,2025},
   688     width  = 1.1\textwidth,
   705     width  = 1.2\textwidth,
   689     height = 5cm,
   706     height = 5cm,
   690     bar width=8mm,
   707     bar width=8mm,
   691     nodes near coords,
   708     nodes near coords,
   692     axis lines = left,
   709     axis lines = left,
   693     text=black,
   710     text=black,
   697     axis line style={-},
   714     axis line style={-},
   698     name=mygraph
   715     name=mygraph
   699     ]
   716     ]
   700 
   717 
   701 \only<1>{\addplot[ybar,style={rred,fill=rred!75,mark=none},text=black] coordinates {
   718 \only<1>{\addplot[ybar,style={rred,fill=rred!75,mark=none},text=black] coordinates {
   702 (2024,136)
   719 (2025,181)
   703 (2023,169)
       
   704 (2022,111)
       
   705 (2021,98)
       
   706 (2020,59)
       
   707 (2019,38)
       
   708 (2018,20)
       
   709 (2017,22)
       
   710 (2016,8)}};
       
   711 \only<2>{\addplot[ybar,style={rred,fill=rred!75,mark=none},text=black] coordinates {
       
   712 (2024,173)
   720 (2024,173)
   713 (2023,169)
   721 (2023,169)
   714 (2022,111)
   722 (2022,111)
   715 (2021,98)
   723 (2021,98)
   716 (2020,59)
   724 (2020,59)
   732 {
   740 {
   733 \setbeamercolor{background canvas}{bg=cream}
   741 \setbeamercolor{background canvas}{bg=cream}
   734 \begin{frame}[c]
   742 \begin{frame}[c]
   735 \frametitle{Some Housekeeping}
   743 \frametitle{Some Housekeeping}
   736 
   744 
   737 \textbf{Coursework (4 parts accounting for 60\%; submission deadline \underline{2nd January}):}\bigskip
   745 \textbf{Coursework (4 parts accounting for 60\%; submission deadline \underline{5th January 2026}):}\bigskip
   738 
   746 
   739 \begin{itemize}
   747 \begin{itemize}
   740 \item matcher \xout{(5\%)}\;\;\textcolor{red}{optional from this year}
   748 \item matcher \xout{(5\%)}\;\;\textcolor{red}{optional}
   741 \item lexer (10\%)
   749 \item lexer (10\%)
   742 \item parser / interpreter (10\%)
   750 \item parser / interpreter (15\%)
   743 \item JVM compiler (15\%)
   751 \item JVM compiler (15\%)
   744 \item LLVM compiler (25\%) 
   752 \item LLVM compiler (20\%) 
   745 \end{itemize}\bigskip\pause
   753 \end{itemize}
   746 
       
   747 you can use \alert{any} programming language you like (Haskell, Rust, Swift)\\\pause
       
   748 you can use any code I show you and is uploaded to KEATS\ldots\textbf{BUT NOTHING ELSE!}
       
   749 
       
   750 \end{frame}
   754 \end{frame}
   751 }
   755 }
   752 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   756 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   753 {
   757 {
   754 \setbeamercolor{background canvas}{bg=cream}
   758 \setbeamercolor{background canvas}{bg=cream}
   755 \begin{frame}[c,fragile]
   759 \begin{frame}[c]
   756 \end{frame}  
   760 \frametitle{Some Housekeeping}
       
   761 
       
   762 \begin{itemize}
       
   763 \item you can use any code I show you and is uploaded to KEATS; therefore 
       
   764   most students use Scala/Ammonite
       
   765 \item but you can use \alert{any} programming language you like (Haskell, Rust, Swift\ldots you have to show me how to run your code)
       
   766 \pause
       
   767 \item \textcolor{red}{\textbf{you can even use AI for CW}}\pause\bigskip 
       
   768 \item \textbf{BUT YOU CANNOT COPY FROM OR COLLABORATE WITH OTHER STUDENTS!}
       
   769 \end{itemize}
       
   770 \end{frame}
   757 }
   771 }
       
   772 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
       
   773 %{
       
   774 %\setbeamercolor{background canvas}{bg=cream}
       
   775 %\begin{frame}[c,fragile]
       
   776 %\end{frame}  
       
   777 %}
   758 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   778 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   759 {
   779 {
   760 \setbeamercolor{background canvas}{bg=cream}
   780 \setbeamercolor{background canvas}{bg=cream}
   761 \begin{frame}[c,fragile]
   781 \begin{frame}[c,fragile]
   762 %%\frametitle{Scala 3}
   782 %%\frametitle{Scala 3}
   763 
   783 
   764 I will show you all my code in Scala 3
   784 I will show you all my code in Scala 3\bigskip
   765 
   785 
   766 \begin{minipage}{1.4\textwidth}
   786 \begin{minipage}{1.4\textwidth}
   767 \begin{lstlisting}[language={},numbers=none,basicstyle=\ttfamily\small]
   787 \begin{lstlisting}[language={},numbers=none,basicstyle=\ttfamily\small]
   768 $ scala-cli
   788 $ scala
   769 Welcome to Scala 3.5.0 (21.0.4, Java OpenJDK 64-Bit Server VM).
   789 Welcome to Scala 3.7.3 (21.0.8, Java OpenJDK 64-Bit Server VM).
   770 Type in expressions for evaluation. Or try :help.
   790 Type in expressions for evaluation. Or try :help.
   771 
   791 
   772 scala> 1 + 2
   792 scala> 1 + 2
   773 res0: Int = 3
   793 res0: Int = 3
   774 \end{lstlisting} %% $
   794 \end{lstlisting} %% $
   775 \end{minipage}\medskip
   795 \end{minipage}\medskip
   776 \pause
   796 \pause
   777 
   797 
   778 Since Scala 3.5.0, scala-cli is included in "plain" Scala
   798 %Since Scala 3.5.0, scala-cli is included in "plain" Scala
   779 
   799 %
   780 \begin{minipage}{1.4\textwidth}
   800 %\begin{minipage}{1.4\textwidth}
   781 \begin{lstlisting}[language={},numbers=none,basicstyle=\ttfamily\small]
   801 %\begin{lstlisting}[language={},numbers=none,basicstyle=\ttfamily\small]
   782 $ scala
   802 %$ scala
   783 Welcome to Scala 3.5.1 (21.0.4, Java OpenJDK 64-Bit Server VM).
   803 %Welcome to Scala 3.5.1 (21.0.4, Java OpenJDK 64-Bit Server VM).
   784 Type in expressions for evaluation. Or try :help.
   804 %Type in expressions for evaluation. Or try :help.
   785 
   805 %
   786 scala> 
   806 %scala> 
   787 \end{lstlisting} %% $
   807 %\end{lstlisting} %% $
   788 \end{minipage}
   808 %\end{minipage}
   789 \end{frame}
   809 \end{frame}
   790 }
   810 }
   791 
   811 
   792 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
   812 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
   793 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
   813 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
   800 
   820 
   801 \begin{minipage}{1.4\textwidth}
   821 \begin{minipage}{1.4\textwidth}
   802 \begin{lstlisting}[language={},numbers=none,basicstyle=\ttfamily\small]
   822 \begin{lstlisting}[language={},numbers=none,basicstyle=\ttfamily\small]
   803 $ amm
   823 $ amm
   804 Loading...
   824 Loading...
   805 Welcome to the Ammonite Repl 3.0.0-M2 (Scala 3.3.3 Java 21.0.4)
   825 Welcome to the Ammonite Repl 3.0.2 (Scala 3.3.5 Java 21.0.8)
   806 scala> 1 + 2
   826 @ 1 + 2
   807 res0: Int = 3
   827 res0: Int = 3
   808 \end{lstlisting} %% $
   828 \end{lstlisting} %% $
   809 \end{minipage}\medskip
   829 \end{minipage}\medskip
   810 \pause
   830 \pause
   811 
   831 
   812 Do not use Amm + Scala 2!
   832 Do not use Amm + Scala 2! Do not use sbt!
   813 
   833 
   814 \begin{minipage}{1.4\textwidth}
   834 \begin{minipage}{1.4\textwidth}
   815 \begin{lstlisting}[language={},numbers=none,basicstyle=\ttfamily\small]
   835 \begin{lstlisting}[language={},numbers=none,basicstyle=\ttfamily\small]
   816 $ amm2
   836 $ amm2
   817 Loading...
   837 Loading...
   818 Welcome to the Ammonite Repl 2.5.9 (Scala 2.13.11 Java 17.0.7)
   838 Welcome to the Ammonite Repl 2.5.9 (Scala 2.13.11 Java 17.0.7)
   819 scala> 
   839 @ 
   820 \end{lstlisting} %% $
   840 \end{lstlisting} %% $
   821 \end{minipage}
   841 \end{minipage}
   822 \end{frame}
   842 \end{frame}
   823 }
   843 }
   824 
   844 
   825 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
   845 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
   826 {
   846 {
   827 \setbeamercolor{background canvas}{bg=cream}
   847 \setbeamercolor{background canvas}{bg=cream}
   828 \begin{frame}[c]
   848 \begin{frame}[c]
   829 \frametitle{For Install Problems}
   849 \frametitle{For Install Problems}
   830 
   850  
   831 \begin{itemize}
   851 \begin{itemize}
   832 \item Harry Dilnot (harry.dilnot@kcl.ac.uk) \\
   852 \item Flavio Melinte Citea\\ (flavio.melinte\_citea@kcl.ac.uk)\bigskip \\
   833   \;\;Windows expert
   853 \item Zishan Rahman\\ (zishan.rahman@kcl.ac.uk) 
   834 \item Oliver Iliffe (oliver.iliffe@kcl.ac.uk) 
       
   835 \end{itemize}
   854 \end{itemize}
   836   
   855   
   837 \end{frame}
   856 \end{frame}
   838 }
   857 }
   839 
   858 
  2034 \begin{frame}[c]
  2053 \begin{frame}[c]
  2035 \frametitle{\begin{tabular}{c}\\[1cm]\alert{Questions?}\end{tabular}}
  2054 \frametitle{\begin{tabular}{c}\\[1cm]\alert{Questions?}\end{tabular}}
  2036 
  2055 
  2037 
  2056 
  2038 \begin{tabular}{lll}
  2057 \begin{tabular}{lll}
  2039   SGT TAs: & Flavio Melinte Citea & (was a KURF two summers ago)\\
  2058   SGT TAs:  & Flavio Melinte Citea\\
  2040            & Zishan Rahman\\
  2059             & Zoltan Meszaros\bigskip\\
  2041            & Harry Dilnot\\
  2060 Amm Helpers & Flavio Melinte Citea & (flavio.melinte\_citea@kcl.ac.uk)\\
  2042            & Opale Sjostedt\medskip\\
  2061             & Zishan Rahman & (zishan.rahman@kcl.ac.uk)\medskip\\
  2043   Amm Helpers & Harry Dilnot & (harry.dilnot@kcl.ac.uk)\\
       
  2044            & Oliver Iliffe & (oliver.iliffe@kcl.ac.uk)\medskip\\
       
  2045            & \multicolumn{2}{l}{\hspace{5mm}(was a KURF last summer)}\\
       
  2046 \end{tabular}  
  2062 \end{tabular}  
  2047 \mbox{}
  2063 \mbox{}
  2048 \end{frame}
  2064 \end{frame}
  2049 
  2065 
  2050 \begin{frame}[c]
  2066 \begin{frame}[c]