diff --git a/10/uebungen10_en.pdf b/10/uebungen10_en.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..9fff52e4d784cd64d0954fb481ddddb4c6ee41c5
Binary files /dev/null and b/10/uebungen10_en.pdf differ
diff --git a/10/uebungen10_en.tex b/10/uebungen10_en.tex
new file mode 100644
index 0000000000000000000000000000000000000000..099bd7869b139a4fe2f0d3f06adb6b86f53f4c0d
--- /dev/null
+++ b/10/uebungen10_en.tex
@@ -0,0 +1,358 @@
+%Original Template von Nicolas Lehman, angepasst von Wolfgang Mulzer und Katharina Klost
+
+ % Dokumentenklasse
+\documentclass[
+% globale Schriftgröße
+    10pt,
+% setzt Absatzabstand hoch
+    parskip=half-,
+% Format
+    paper=a4,
+% lädt Sprachpakete
+    english,ngerman,
+]{scrartcl}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+
+% //////////////////// Pakete laden ////////////////////
+\usepackage{amsmath}
+% modifiziert amsmath
+\usepackage{mathtools}
+% mathematische Symbole, für \ceckmarks
+\usepackage{amssymb}
+% für proof
+\usepackage{amsthm}
+% für \mathscr
+\usepackage{mathrsfs}
+\usepackage{latexsym}
+% für bessere Worttrennung
+\usepackage{microtype}
+% Spracheinstellung
+\usepackage[ngerman]{babel}
+% für Quellcode
+\usepackage{verbatim}
+\usepackage{listings}
+% für Umlaute und Sonderzeichen in der Tex-Datei
+\usepackage[utf8]{inputenc}
+\usepackage{graphicx}
+% für Tabellen mit gleicher Spaltenbreite und automatischen Umbrüchen
+\usepackage{tabularx}
+\usepackage{fullpage}
+% für multirow in tabulars
+\usepackage{multirow}
+\usepackage{rotate}
+% um Farben zu benutzen, kann mehr als das Paket color
+\usepackage[cmyk,table]{xcolor}
+% Verlinkungen
+\usepackage[
+% farbige Schrift, statt farbiger Rahmen
+    colorlinks,
+% verlinkt im Abb.Verzeichnis Seitenzahl statt Bildunterschrift
+    linktocpage,
+% setzt Farbe der Links auf blau
+    linkcolor=blue
+]{hyperref}
+% nur für digitale Anwendungen, url = "http://www.example.com"
+% für Webadressen wie e-mail usw.: "\url{http://www.example.com}"
+\usepackage{url}
+% für versch. Aufzählungezeichen wie z.B. a)
+\usepackage{enumitem}
+% folgt ein Leerzeichen nach einem \Befehl, wird es nicht verschluckt
+\usepackage{xspace}
+% für das Durchstreichen u.a. in Matheformeln mit \cancel
+\usepackage{cancel}
+% für \forloop und \whiledo
+\usepackage{ifthen}
+
+% //////////////////// Syntaxhervorhebung ////////////////////
+\lstloadlanguages{Python, Haskell, [LaTeX]TeX, Java}
+\lstset{%
+% \scriptsize: die Fontgröße für den Quelltext
+   basicstyle=\footnotesize\ttfamily,
+% legt Farbe der Box fest
+   backgroundcolor = \color{bgcolour},
+% automatische Umbrüche nur nach Leerzeichen?
+   breakatwhitespace=false,
+% automatische Zeilenumbrüche?
+   breaklines=true,
+% die Überschrift steht oben, t = top
+   captionpos=t,
+% Formatierung der Kommentare
+   commentstyle=\color{codeblue}\ttfamily,
+% einfacher Rahmen um den Quelltext
+   frame=single,
+% Behalte Leerzeichen im Quelltext. Nützlich, um
+% Einrückungen zu erhalten (benötigt eventuell columns=flexible)
+   keepspaces=true,
+% Formatierung der Schlüsselwörter
+   keywordstyle=\bfseries\ttfamily\color{codepurple},
+% Wohin mit den Zeilennummern?
+% mögliche Werte sind: none, left, right
+   numbers=left,
+% Formatierung der Zeilennummern
+   numberstyle=\tiny\color{codegreen},
+% Abstand zwischen Zeilennummern und Quelltext
+   numbersep=5pt,
+% nummeriert nur jede i-te Zeile
+   stepnumber=1,
+% Zeige alle Leerzeichen mit Hilfe von speziellen Unterstrichen;
+% überschreibt 'showstringspaces'
+   showspaces=false,
+% unterstreiche Leerzeichen nur in Zeichenketten
+   showstringspaces=false,
+% Zeige Tabulatoren in Zeichenketten mit Hilfe von speziellen
+% Unterstrichen
+   showtabs=false,
+   flexiblecolumns=false,
+% Schrittweite zwischen Zeilennummern.
+% Der Wert 1 bedeutet, dass jede Zeile nummeriert wird.
+   tabsize=1,
+% Formatierung der Zeichenketten.
+   stringstyle=\color{orange}\ttfamily,
+% leere Zeilen werden nicht nummeriert
+   numberblanklines=false,
+% Abstand zum linken Seitenrand
+   xleftmargin=1.2em,
+% Abstand zum rechten Seitenrand
+   xrightmargin=0.4em,
+   aboveskip=2ex,
+}
+
+\lstdefinestyle{py}{%
+   language=Python,
+}
+\lstdefinestyle{hs}{%
+   language=Haskell,
+}
+\lstdefinestyle{tex}{%
+    language=[LaTeX]TeX,
+% Um LaTex im Quelltext einzufügen
+    escapeinside={\%*}{*)},
+% Hervorhebung der TeX-Schlüsselwörter
+    texcsstyle=*\bfseries\color{blue},
+    morekeywords={*,$,\{,\},\[,\],lstinputlisting,includegraphics,
+        rowcolor,columncolor,listoffigures,lstlistoflistings,
+        subsection,subsubsection,textcolor,tableofcontents,colorbox,
+        fcolorbox,definecolor,cellcolor,url,linktocpage,subtitle,
+        subject,maketitle,usetikzlibrary,node,path,addbibresource,
+        printbibliography},
+    numbers=none,
+    numbersep=0pt,
+    xleftmargin=0.4em,
+}
+
+\lstdefinestyle{java}{%
+    language=Java,
+    extendedchars=true,
+}
+
+% füge einen x64-Assembler Dialekt hinzu
+\lstdefinelanguage[x64]{Assembler}
+% basiert auf dem "x86masm" Dialekt
+   [x86masm]{Assembler}
+ % zusätzliche Schlüsselwörter
+   {morekeywords={CDQE,CQO,CMPSQ,CMPXCHG16B,JRCXZ,LODSQ,MOVSXD, %
+                  POPFQ,PUSHFQ,SCASQ,STOSQ,IRETQ,RDTSCP,SWAPGS, %
+                  rax,rdx,rcx,rbx,rsi,rdi,rsp,rbp, %
+                  r8,r8d,r8w,r8b,r9,r9d,r9w,r9b}
+}
+
+\lstdefinestyle{c}{
+    language=c,
+    extendedchars=true,
+}
+
+% //////////////////// eigene Anweisungen ////////////////////
+% benötigt package xspace
+\newcommand\FU{Freie Universität Berlin\xspace}
+\newcommand\gdw{g.\,d.\,w.\xspace}
+\newcommand\oBdA{o.\,B.\,d.\,A.\xspace}
+\newcommand\N{\mathbb{N}\xspace}
+\newcommand\Q{\mathbb{Q}\xspace}
+\newcommand\R{\mathbb{R}\xspace}
+\newcommand\Z{\mathbb{Z}\xspace}
+\newcommand\ohneNull{\ensuremath{\backslash\lbrace 0\rbrace}}% \{0}
+% Schreibt Befehl \dh in \dhALT um
+\let\dhALT\dh
+%renew überschreibt command \dh
+\renewcommand\dh{d.\,h.\xspace}
+\newcommand{\from}{\ensuremath{\colon}}
+\newcommand{\floor}[1]{\lfloor{#1}\rfloor}
+\newcommand{\ceil}[1]{\lceil{#1}\rceil}
+\newcommand{\abbrev}[2]{\expandafter\newcommand\csname
+                        #1\endcsname{#2\xspace}}
+\newcommand{\cclasss}[2]{\abbrev{#1}{\textsf{#2}}}
+\newcommand{\cclass}[1]{\cclasss{#1}{#1}}
+\cclasss{ccP}{P}
+\cclass{NP}
+\cclass{LOGSPACE}
+\cclass{NL}
+
+% //////////////// mathematische Funktionen ////////////////////
+\DeclareMathOperator{\True}{True}
+\DeclareMathOperator{\False}{False}
+
+% //////////////////// eigene Theoreme ////////////////////
+\newtheorem{theorem}{Satz}
+\newtheorem{corollary}[theorem]{Korollar}
+\newtheorem{lemma}[theorem]{Lemma}
+\newtheorem{observation}[theorem]{Beobachtung}
+\newtheorem{definition}[theorem]{Definition}
+\newtheorem{Literatur}[theorem]{Literatur}
+
+% konfiguriert proof
+\makeatletter
+\newenvironment{Proof}[1][\proofname]{\par
+  \pushQED{\qed}%
+  \normalfont \topsep6\p@\@plus6\p@\relax
+  \trivlist
+  \item[\hskip\labelsep
+        \bfseries
+    #1\@addpunct{.}]\ignorespaces
+}{%
+  \popQED\endtrivlist\@endpefalse
+}
+\makeatother
+
+% //////////////////// eigene Farben ////////////////////
+\let\definecolor=\xdefinecolor
+\definecolor{FUgreen}{RGB}{153,204,0}
+\definecolor{FUblue}{RGB}{0,51,102}
+
+\definecolor{middlegray}{rgb}{0.5,0.5,0.5}
+\definecolor{lightgray}{rgb}{0.8,0.8,0.8}
+\definecolor{orange}{rgb}{0.8,0.3,0.3}
+\definecolor{azur}{rgb}{0,0.7,1}
+\definecolor{yac}{rgb}{0.6,0.6,0.1}
+\definecolor{Pink}{rgb}{1,0,0.6}
+
+\definecolor{bgcolour}{rgb}{0.97,0.97,0.97}
+\definecolor{codegreen}{rgb}{0,0.6,0}
+\definecolor{codegray}{rgb}{0.35,0.35,0.35}
+\definecolor{codepurple}{rgb}{0.58,0,0.82}
+\definecolor{codeblue}{rgb}{0.4,0.5,1}
+
+% //////////////////// eigene Einstellungen ////////////////////
+
+% verhindert Einrückung der 1. Zeile eines Absatzes
+\parindent 0pt
+% <-- Nummer des Übungszettels
+\newcommand{\ubungNo}{10}
+% <-- Name der Lehrveranstaltung eintragen
+\newcommand{\veranstaltung}{Functional Programming}
+% <-- z.B. SoSo 17, WiSe 17/18
+\newcommand{\semester}{WiSe 23/24}
+% % <-- Hier Anzahl der Aufgaben eintragen
+\newcommand{\aufgNo}{3}
+
+% https://tex.stackexchange.com/a/117538
+\renewcommand\lstlistingname{Example}
+
+\usepackage{tikz}
+
+% /////////////////////// BEGIN DOKUMENT /////////////////////////
+\begin{document}
+
+\setkomafont{section}{\large}
+
+% ////////////// Daten //////////////
+\begin{center}
+
+{\veranstaltung, \semester}\par
+{\Large Tutorial Tasks \ubungNo}\par
+\end{center}
+\vspace{-3ex}             % Abstand
+\rule{\linewidth}{0.8pt}  % horizontale Linie
+\vspace{-3ex}             % Abstand
+
+% /////////////////////// Aufgabe 1 /////////////////////////
+%alter Zettel 8 Bäume zeichnen
+%einfügen löschen, kleinstes Elem
+
+\section*{Task 1: Perform algorithms by hand}
+
+
+\begin{enumerate}
+
+    \item Rewrite the following equations in reverse Polish notation and solve by hand:
+
+    \begin{enumerate}[label=(\roman*)]
+
+       \item $(9-3) + \log (8)$
+
+       \item $(10/4) - \sqrt{ 4 }$
+
+    \end{enumerate}
+
+    \item Use the algorithm from the lecture to check by hand whether \texttt{[]([({}) []])} and \texttt{[][()){}]} are valid bracket expressions.
+
+\end{enumerate}
+
+
+\section*{Aufgabe 2: Module}
+
+\begin{enumerate}
+
+   \item Create a module \lstinline{Queue} that exports the algebraic data type \lstinline{Queue} and the functions \lstinline{isEmpty}, \lstinline{dequeue} and \lstinline{enqueue}. \par
+
+      The functions in question are attached below, otherwise the example from the live code of the lecture (\lstinline{FQueue}) should be used.\par
+
+Add the functions
+
+\begin{enumerate}[label= (\roman*)]
+
+\item \lstinline{hasElem :: Queuelike a => b -> a b -> Bool} (checks whether the passed value is contained in the \lstinline{Queue})
+
+\item \lstinline{count :: Queuelike a => b -> a b -> Int} (counts how often the passed value is contained in the \lstinline{queue})
+
+\end{enumerate}
+
+and export them.
+
+\begin{lstlisting}[language=Haskell]
+-- Type class for Queues
+class Queuelike s where
+  enqueue :: a -> s a -> s a
+  dequeue :: s a -> Maybe (a, s a)
+  isEmpty :: s a -> Bool
+
+data Queue a = Q [a] [a] deriving Show
+--(Q inp out) the first list is used for inserting elements, the second one for removing.
+
+instance Queuelike Queue where
+  enqueue x (Q inp out ) = Q (x:inp) out
+
+  dequeue (Q [] [])       = Nothing
+  dequeue (Q inp [])      = dequeue (Q [] (reverse inp))
+  dequeue (Q inp (x:out)) = Just (x, Q inp out)
+
+  isEmpty (Q [] []) = True
+  isEmpty _         = False
+\end{lstlisting}
+
+\newpage
+\item Import the module into a new Haskell file and write the following functions that simulate a checkout queue in a shop.
+
+In the queue, you queue people with shopping trolleys. Each shopping trolley contains different products with assigned prices.
+
+
+
+
+\begin{enumerate}[label= (\roman*)]
+
+    \item Write suitable type synonyms or algebraic data types that represent a shopping trolley and the queue of shopping trolleys.
+
+    \item Write a function \lstinline{anstellen} in which a shopping trolley is added to the checkout queue.
+
+    \item Write a function \lstinline{cash} that determines the total price of the goods for the shopping trolley that was queued first.
+
+    The return of \lstinline{kassieren} should be a tuple of the total price and the new checkout queue.
+
+\end{enumerate}
+
+\end{enumerate}
+
+ 
+% /////////////////////// END DOKUMENT /////////////////////////
+\end{document}