\documentclass[a4paper]{scrartcl}
%%%
% "Standardvorrat" von Paketen
%%%
\usepackage{fancyhdr}
\pagestyle{plain}
\usepackage{fullpage}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usepackage{enumerate}
\usepackage{listings}
\usepackage[colorlinks=true,linkcolor=black]{hyperref}
\usepackage{amsmath, amsthm, amssymb}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{dsfont}
\usepackage{color}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\usepackage{etoolbox}
\usepackage{bussproofs}
\usepackage{mathtools}
\usepackage{colonequals}
\usepackage{tikz}
 \usetikzlibrary{shapes}
 \usetikzlibrary{fit}
 \usetikzlibrary{shadows}
 \usetikzlibrary{backgrounds}
 \usetikzlibrary{arrows}

\lstset{
  language=Haskell
   ,xleftmargin=2.0cm
   ,basicstyle=\small
   ,commentstyle=\color{lightgray}
   ,stringstyle=\itshape   % string literal style
   ,keepspaces=true       % keeps spaces in text, useful for keeping indentation of code
   ,numbers=left          % possible values are (none, left, right)
   ,identifierstyle={\itshape}
   ,flexiblecolumns={true}
   %,mathescape={true}
   ,captionpos=b
   ,emph={error,List,head,tail}
   ,emphstyle=\slshape
}

%%%
% Die Zeilen bis zum nächsten Kommentarblock können getrost ignoriert werden.
% Es darf jedoch gern mit den Einstellungen experimentiert werden, um z.B.
% einen schöneren Seitenkopf zu erstellen.
%%%
\pagestyle{fancy}
\addtolength{\voffset}{-1.8cm}
\fancyhf{}% sets both header and footer to nothing
\renewcommand{\headrulewidth}{0pt}
\setlength{\headheight}{1.5cm}
\setlength{\textheight}{23cm}
\setlength{\headsep}{1.5cm}

\newcounter{blatt}
\setcounter{blatt}{1}
\lhead{
Theorie der Programmierung SS15 \\
Übungsblatt \theblatt
}
\rfoot{\pagemark}

\setkomafont{title}{\normalfont}
\setkomafont{pageheadfoot}{\normalfont}
\setkomafont{pagenumber}{\normalfont\scshape}
\setkomafont{disposition}{\normalfont\bfseries}

\widowpenalty=300
\clubpenalty=300

\floatname{algorithm}{Algorithmus}
\newcommand{\algorithmautorefname}{Algorithmus}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}

\newcommand{\aufgabe}[3]{
    \newpage
    \subsection*{Aufgabe #1 -- #2\hfill#3}
    \addcontentsline{toc}{subsection}{Blatt \theblatt, Aufgabe #1 -- #2}}

\newcommand{\defeq}{\vcentcolon=}

%%%
% Name hier eintragen
%%
\author{Autor}

\title{Theorie der Programmierung\\
       Sommersemester 2015 \\
       \small Übungsaufgaben}

\begin{document}
%%%
% Für ein Titelblatt und Inhaltsverzeichnis die folgenden zwei Zeilen
% einkommentieren. Nützlich beispielsweise für ein Dokument mit allen Lösungen.
%%%

%\maketitle
%\tableofcontents

%%%
% Hier werden die eigentlichen Lösungsblätter eingebunden. Der Counter muss
% nach jedem Blatt erhöht werden. Soll nur ein einzelnes Übungsblatt pro PDF
% erstellt werden, so kann der Zähler auch mit \setcounter{blatt}{x} auf Blatt
% x gestellt werden.
%%%

\include{blatt1}
\stepcounter{blatt}

%\include{blatt2}
%\stepcounter{blatt}
\end{document}
