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} |
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 |