\documentclass[a4paper]{article}

\usepackage[british]{babel}
\usepackage[british]{isodate}
\usepackage[hidelinks]{hyperref}
\usepackage{booktabs}
\usepackage{geometry}
\usepackage{tabu}

\title{Research Internship Proposal}
\date{\printdate{22.9.2016}}
\author{Mart Lubbers (s4109503)}

\begin{document}
\pagenumbering{gobble}
\thispagestyle{empty}
\clearpage
\maketitle
\subsection*{Practical information}
\begin{table}[h]
	\centering
	\begin{tabu}{p{8em}X}
		\toprule
		\textbf{Start date} & September 2016\\
		\midrule
		\textbf{End date} & February 2017\\
		\midrule
		\textbf{Research group} & Software Science\\
		\midrule
		\textbf{Supervisors} & Rinus Plasmeijer, Pieter Koopman\\
		\midrule
		\textbf{Topics} & Functional programming, compilers, iTasks, embedded systems\\
		\midrule
		\textbf{Master courses already taken} &
			Advanced Programming, Automated Reasoning,
			Compiler Construction, Design of Embedded Systems,
			ICT in a different culture, Model Checking,
			Natural Computing, Research Seminar Software Science,
			Testing Techniques\\
		\bottomrule
	\end{tabu}
\end{table}

\subsection*{Description of the research activities}
In \emph{Task Oriented Programming} (TOP) a program is built out of pieces of
work called \emph{tasks}~\cite{achten_introduction_2015}. Tasks differ from
function in the way that they return a result. A task's return value can change
over time. Task exist in many forms and they can be composed sequentially and
in parallel. Some possible tasks are asking for user input via a web browser,
setting up a TCP connection to another server or combining several tasks. At
the moment there are several types of leaf tasks. A leaf task is a task that
does not consist of tasks itself. Examples of leaf tasks are  the so called
editors.

This proposal describes the effort to add another type of leaf task that
focusses on microcontrollers. Microcontrollers are often not powerful
enough to run a full-fledged task server and therefore there is the need to
introduce special microcontroller tasks. Effort for this is already made by by
the department~\cite{koopman_tasks_2016}. However, communication between the
\emph{mTask} and the iTasks system is still lacking and exactly that will be the
goal of the project. This requires adding a new type of leaf task that allows
the user to run \emph{mTasks} on microcontrollers. The leaf task should
abstract away from communication techniques and it should be relatively easy to
add techniques. Techniques that are interesting to experiment with is Serial
communication, Bluetooth, \textsc{WiFi}, \textsc{GSM} and \textsc{LoRa}.

Similar work has been done in the department on distributing tasks to so-called
\emph{node-servers}~\cite{oortgiese_task_2016}. It might be possible that the
same communication strategy can be used with a slimmed down taskserver on a
microcontroller.

\bibliographystyle{ieeetr}
\bibliography{p}
\end{document}
