Jelajahi Sumber

Programmierparadigmen

Martin Thoma 11 tahun lalu
induk
melakukan
80640f870c

+ 13 - 0
documents/Programmierparadigmen/Abkuerzungen.tex

@@ -0,0 +1,13 @@
+\chapter*{Abkürzungsverzeichnis\markboth{Abkürzungsverzeichnis}{Abkürzungsverzeichnis}}
+\addcontentsline{toc}{chapter}{Abkürzungsverzeichnis}
+\begin{acronym}
+    \acro{Beh.}{Behauptung}
+    \acro{Bew.}{Beweis}
+    \acro{bzw.}{beziehungsweise}
+    \acro{ca.}{circa}
+    \acro{d. h.}{das heißt}
+    \acro{etc.}{et cetera}
+    \acro{Vor.}{Voraussetzung}
+    \acro{z. B.}{zum Beispiel}
+    \acro{z. z.}{zu zeigen}
+\end{acronym}

+ 7 - 0
documents/Programmierparadigmen/Arbeitszeit.md

@@ -0,0 +1,7 @@
+Nur mal aus Interesse versuche ich zu verfolgen, wie viel Zeit
+in dem Erstellen dieses Skripts steckt:
+
+|Datum      | Uhrzeit       | Autor | Bemerkung
+|-----------|---------------|----------------------------------------
+|01.02.2014 | 13:30 - 13:45 | Thoma | Initialisierung; Grobe Struktur
+

+ 6 - 0
documents/Programmierparadigmen/Bildquellen.tex

@@ -0,0 +1,6 @@
+\chapter*{Bildquellen\markboth{Bildquellen}{Bildquellen}}
+\addcontentsline{toc}{chapter}{Bildquellen}
+
+\begin{itemize}
+    \item[Abb. \ref{fig:s2}] $S^2$: Tom Bombadil, \href{http://tex.stackexchange.com/a/42865/5645}{tex.stackexchange.com/a/42865}
+\end{itemize}

+ 7 - 0
documents/Programmierparadigmen/C.tex

@@ -0,0 +1,7 @@
+\chapter{C}
+\index{C|(}
+\section{Syntax}
+\section{Beispiele}
+
+\index{C|)}
+

+ 8 - 0
documents/Programmierparadigmen/Haskell.tex

@@ -0,0 +1,8 @@
+\chapter{Haskell}
+\index{Haskell|(}
+\section{Syntax}
+\section{Beispiele}
+\inputminted[linenos, numbersep=5pt, tabsize=4, frame=lines, label=fibonacci.hs]{haskell}{scripts/haskell/fibonacci.hs}
+
+\index{Haskell|)}
+

+ 16 - 0
documents/Programmierparadigmen/Makefile

@@ -0,0 +1,16 @@
+DOKUMENT = Programmierparadigmen
+
+make:
+	pdflatex -shell-escape $(DOKUMENT).tex -output-format=pdf # aux-Dateien für makeindex / makeglossaries
+	makeindex $(DOKUMENT)
+	pdflatex -shell-escape $(DOKUMENT).tex -output-format=pdf # Stichwortverzeichnis einbinden
+	pdflatex -shell-escape $(DOKUMENT).tex -output-format=pdf # Symbolverzeichnis einbinden
+	make clean
+
+ebook:
+	latexml --dest=$(DOKUMENT).xml $(DOKUMENT).tex
+	latexmlpost -dest=$(DOKUMENT).html $(DOKUMENT).xml
+	ebook-convert $(DOKUMENT).html $(DOKUMENT).epub --language de --no-default-epub-cover
+
+clean:
+	rm -rf  $(TARGET) *.class *.html *.log *.aux *.out *.thm *.idx *.toc *.ind *.ilg figures/torus.tex *.glg *.glo *.gls *.ist *.xdy *.pyg

+ 106 - 0
documents/Programmierparadigmen/Programmierparadigmen.tex

@@ -0,0 +1,106 @@
+\documentclass[DIV15,BCOR12mm]{scrbook}
+\newif\ifAFive\AFivetrue
+\ifAFive
+  \KOMAoptions{paper=a5,twoside=true}
+\else
+  \KOMAoptions{paper=a4,twoside=false}
+\fi
+\usepackage{etoolbox}
+\usepackage{amsmath,amssymb}% math symbols / fonts
+\usepackage{mathtools}      % \xRightarrow
+\usepackage{nicefrac}       % \nicefrac
+\usepackage[utf8]{inputenc} % this is needed for umlauts
+\usepackage[ngerman]{babel} % this is needed for umlauts
+\usepackage[T1]{fontenc}    % this is needed for correct output of umlauts in pdf
+\usepackage[framed,amsmath,thmmarks,hyperref]{ntheorem}
+\usepackage{framed}
+\usepackage{marvosym}
+\usepackage{makeidx}        % for automatically generation of an index
+\usepackage{xcolor}
+\usepackage[bookmarks,bookmarksnumbered,hypertexnames=false,pdfpagelayout=OneColumn,colorlinks,hyperindex=false]{hyperref} % has to be after makeidx
+\usepackage{breakurl} % allow line breaks in \href{ ... }
+\ifAFive
+  \hypersetup{hidelinks=true}
+% no \else branch needed in this case
+\fi
+\usepackage{enumitem}       % Better than \usepackage{enumerate}, because it allows to set references
+\usepackage{tabto}
+\usepackage{braket}         % needed for \Set
+\usepackage{csquotes}       % \enquote{}
+\usepackage{subfig}         % multiple figures in one
+\usepackage{parskip}        % nicer paragraphs
+\usepackage{xifthen}        % \isempty
+\usepackage{changepage}     % for the adjustwidth environment
+\usepackage{pst-solides3d}
+\usepackage[colorinlistoftodos]{todonotes}
+\usepackage{pgfplots}
+\pgfplotsset{compat=1.7}
+\usepackage[arrow, matrix, curve]{xy}
+\usepackage{caption}        % get newlines within captions
+\usepackage{tikz}           % draw
+\usepackage{tikz-3dplot}    % draw
+\usepackage{tkz-fct}        % draw
+\usepackage{tkz-euclide}    % draw
+\usetkzobj{all}             % tkz-euclide
+\usetikzlibrary{3d,calc,intersections,er,arrows,positioning,shapes.misc,patterns,fadings,decorations.pathreplacing}
+\usepackage{tqft}
+\usepackage{xspace}   % for new commands; decides weather I want to insert a space after the command
+\usepackage[german,nameinlink]{cleveref} % has to be after hyperref, ntheorem, amsthm
+\usepackage{acronym}
+\usepackage{minted} % needed for the inclusion of source code
+\usepackage{shortcuts}
+
+\usepackage{fancyhdr}
+\pagestyle{fancy}
+\renewcommand{\chaptermark}[1]%
+{\markboth{\MakeUppercase{\thechapter.\ #1}}{}}
+\renewcommand{\sectionmark}[1]%
+{\markright{\MakeUppercase{\thesection.\ #1}}}
+\renewcommand{\headrulewidth}{0.5pt}
+\renewcommand{\footrulewidth}{0pt}
+\newcommand{\helv}{%
+\fontfamily{phv}\fontseries{b}\fontsize{9}{11}\selectfont}
+\fancyhf{}
+\fancyhead[LE,RO]{\helv \thepage}
+\fancyhead[LO]{\helv \rightmark}
+\fancyhead[RE]{\helv \leftmark}
+\fancypagestyle{plain}{%
+\fancyhead{}
+\renewcommand{\headrulewidth}{0pt}
+}
+
+\hypersetup{ 
+  pdfauthor   = {Martin Thoma}, 
+  pdfkeywords = {Programmierparadigmen}, 
+  pdftitle    = {Programmierparadigmen} 
+}
+
+\makeindex
+\allowdisplaybreaks
+\usepackage{microtype}
+
+\begin{document}
+\pagenumbering{roman}
+\setcounter{page}{1}
+\input{titlepage}
+\input{Vorwort}
+\tableofcontents
+
+\pagenumbering{arabic}
+\setcounter{page}{1}
+\input{Haskell}
+\input{Scala}
+\input{X10}
+\input{C}
+
+\appendix
+\input{Bildquellen}
+\clearpage
+\input{Abkuerzungen}
+\clearpage
+\input{Symbolverzeichnis} 
+\clearpage
+\addcontentsline{toc}{chapter}{Stichwortverzeichnis}
+\renewcommand{\indexname}{Stichwortverzeichnis}
+\printindex
+\end{document}

+ 3 - 0
documents/Programmierparadigmen/Readme.md

@@ -0,0 +1,3 @@
+Dies ist ein **inoffizielles, von Studenten erstelltes Skript**
+zur Vorlesung "Programmierparadigmen" am KIT bei
+Herrn Prof. Dr. Snelting (WS 2013/2014).

+ 7 - 0
documents/Programmierparadigmen/Scala.tex

@@ -0,0 +1,7 @@
+\chapter{Scala}
+\index{Scala|(}
+\section{Syntax}
+\section{Beispiele}
+
+\index{Scala|)}
+

+ 24 - 0
documents/Programmierparadigmen/Symbolverzeichnis.tex

@@ -0,0 +1,24 @@
+\twocolumn
+\chapter*{Symbolverzeichnis\markboth{Symbolverzeichnis}{Symbolverzeichnis}}
+\addcontentsline{toc}{chapter}{Symbolverzeichnis}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Mengenoperationen                                                 %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section*{Mengenoperationen}
+$A^C\;\;\;$ Komplement der Menge $A$\\
+$\mathcal{P}(M)\;\;\;$ Potenzmenge von $M$\\
+$\overline{M}\;\;\;$ Abschluss der Menge $M$\\
+$\partial M\;\;\;$ Rand der Menge $M$\\
+$M^\circ\;\;\;$ Inneres der Menge $M$\\
+$A \times B\;\;\;$ Kreuzprodukt zweier Mengen\\
+$A \subseteq B\;\;\;$ Teilmengenbeziehung\\
+$A \subsetneq B\;\;\;$ echte Teilmengenbeziehung\\
+$A \setminus B\;\;\;$ $A$ ohne $B$\\
+$A \cup B\;\;\;$ Vereinigung\\
+$A \dcup B\;\;\;$ Disjunkte Vereinigung\\
+$A \cap B\;\;\;$ Schnitt\\
+
+\section*{Geometrie}
+$AB\;\;\;$ Gerade durch die Punkte $A$ und $B$\\
+$\overline{AB}\;\;\;$ Strecke mit Endpunkten $A$ und $B$\\
+$\triangle ABC\;\;\;$ Dreieck mit Eckpunkten $A, B, C$\\

+ 10 - 0
documents/Programmierparadigmen/Vorwort.tex

@@ -0,0 +1,10 @@
+\chapter*{Vorwort}
+Dieses Skript wird/wurde im Wintersemester 2013/2014 geschrieben
+von Martin Thoma geschrieben.
+
+\section*{Was ist Programmierparadigmen?}
+
+TODO
+
+\section*{Erforderliche Vorkenntnisse}
+TODO

+ 7 - 0
documents/Programmierparadigmen/X10.tex

@@ -0,0 +1,7 @@
+\chapter{X10}
+\index{X10|(}
+\section{Syntax}
+\section{Beispiele}
+
+\index{X10|)}
+

+ 3 - 0
documents/Programmierparadigmen/figures/todo.tex

@@ -0,0 +1,3 @@
+\begin{tikzpicture}
+    \path (0,0)  edge [bend angle=10,bend right] node[label=TODO] {} (-1,-1.5);
+\end{tikzpicture}

+ 1 - 0
documents/Programmierparadigmen/scripts/haskell/fibonacci.hs

@@ -0,0 +1 @@
+fibs = 0 : 1 : zipWith (+) fibs (tail fibs)

+ 147 - 0
documents/Programmierparadigmen/shortcuts.sty

@@ -0,0 +1,147 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% make the index link to the correct part of the page               %
+% http://tex.stackexchange.com/q/74493/5645                         %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcounter{indexanchor}
+\newcommand*{\xindex}[1]{%
+  \stepcounter{indexanchor}% make anchor unique
+  \def\theindexterm{#1}%
+  \edef\doindexentry{\noexpand\index
+    {\expandonce\theindexterm|indexanchor{index-\theindexanchor}}}%
+  \raisebox{\baselineskip}{\hypertarget{index-\theindexanchor}%
+    {\doindexentry}}%
+}
+\newcommand*{\indexanchor}[2]{\hyperlink{#1}{#2}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Aufgaben-Environment                                              %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcounter{aufgabe}
+\newenvironment{aufgabe}[1][]{\refstepcounter{aufgabe}%
+  \ifthenelse{\isempty{#1}}%
+    {\subsection*{Aufgabe~\theaufgabe}}% if #1 is empty
+    {\subsection*{Aufgabe~\theaufgabe~(#1)}}% if #1 is not empty
+    \begin{adjustwidth}{1cm}{}}%
+    {\end{adjustwidth}}
+
+\newenvironment{solution}[1][]{%
+    \subsection*{Lösung zu Aufgabe~#1}%
+    \begin{adjustwidth}{1cm}{}}%
+    {\end{adjustwidth}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Define theorems                                                   %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\thmfoot}{}
+\theoremstyle{break}
+\setlength\theoremindent{0.7cm}
+\theoremheaderfont{\kern-0.7cm\normalfont\bfseries} 
+\theorembodyfont{\normalfont} % nicht mehr kursiv
+\theoremseparator{\thmfoot}
+
+\newframedtheorem{satz}{Satz}[chapter]
+\newframedtheorem{lemma}[satz]{Lemma}
+\newframedtheorem{proposition}[satz]{Proposition}
+\newtheorem{korollar}[satz]{Korollar}
+\newtheorem{folgerung}[satz]{Folgerung}
+\newtheorem{definition}{Definition}
+\newtheorem{beispiel}{Beispiel}
+\newtheorem{bemerkung}{Bemerkung}
+\theoremstyle{nonumberplain}
+\newtheorem{beweis}{Beweis:}
+\newtheorem{behauptung}{Beh.:}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\fB{\mathfrak{B}}%Für Basis
+\def\fT{\mathfrak{T}}%Für Topologie
+\renewcommand{\qed}{\hfill\blacksquare}
+\newcommand{\qedwhite}{\hfill \ensuremath{\Box}}
+\newcommand{\powerset}[1]{\mathcal{P}(#1)}
+\def\praum{\ensuremath{\mathcal{P}}}
+\def\mdp{\ensuremath{\mathbb{P}}}
+\def\mdc{\ensuremath{\mathbb{C}}}
+\def\mdr{\ensuremath{\mathbb{R}}}
+\def\mdq{\ensuremath{\mathbb{Q}}}
+\def\mdz{\ensuremath{\mathbb{Z}}}
+\def\mdn{\ensuremath{\mathbb{N}}}
+\def\mdh{\ensuremath{\mathbb{H}}}
+\def\gdw{\ensuremath{\Leftrightarrow}}
+
+\def\atlas{\ensuremath{\mathcal{A}}}
+\DeclareMathOperator{\rang}{rg}
+
+\def\GL{\ensuremath{\mathrm{GL}}}
+\def\SL{\ensuremath{\mathrm{SL}}}
+\def\PSL{\ensuremath{\mathrm{PSL}}}
+\newcommand\mapsfrom{\mathrel{\reflectbox{\ensuremath{\mapsto}}}}
+\newcommand\dcup{\mathbin{\dot{\cup}}}
+\newcommand{\id}{\textnormal{id}}
+\DeclareMathOperator{\Deck}{Deck}
+\DeclareMathOperator{\Fix}{Fix}
+\DeclareMathOperator{\Iso}{Iso}
+\DeclareMathOperator{\grad}{grad}
+\DeclareMathOperator{\Perm}{Perm}
+\DeclareMathOperator{\Sym}{Sym}
+\DeclareMathOperator{\Homoo}{\textnormal{Homöo}}
+\DeclareMathOperator{\Diffeo}{Diffeo}
+\DeclareMathOperator{\conv}{conv}
+\DeclareMathOperator{\IWS}{IWS}
+\DeclareMathOperator{\DV}{DV}
+\DeclareMathOperator{\Rg}{Rg}
+\DeclareMathOperator{\Bild}{Bild}
+\newcommand{\iu}{{i\mkern1mu}} % imaginary unit
+%\DeclareMathOperator{\Re}{Re}
+%\DeclareMathOperator{\Im}{Im}
+
+%%%Text %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand\obda{o.~B.~d.~A.\xspace}
+\newcommand\Obda{O.~B.~d.~A.\xspace}
+\newcommand{\ts}[1]{\textnormal{#1}} % textual subscript
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% http://tex.stackexchange.com/a/101138/5645
+\newcommand\rtilde[1]{\widetilde{\mathit{#1}}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\crefname{satz}{\textup{Satz}}{\textup{Sätze}}
+\crefname{proposition}{\textup{Proposition}}{\textup{Propositionen}}
+\crefname{lemma}{\textup{Lemma}}{\textup{Lemmata}}
+\crefname{korollar}{\textup{Korollar}}{\textup{Korollare}}
+\crefname{folgerung}{\textup{Folgerung}}{\textup{Folgerungen}}
+\crefname{definition}{\textup{Definition}}{\textup{Definitionen}}
+\crefname{behauptung}{\textup{Behauptung}}{\textup{Behauptungen}}
+\crefname{beispiel}{\textup{Beispiel}}{\textup{Beispiele}}
+\crefname{aufgabe}{\textup{Aufgabe}}{\textup{Aufgaben}}
+\crefname{bemerkung}{\textup{Bemerkung}}{\textup{Bemerkungen}}
+%\let\OldAngle\angle
+%\let\angle\sphericalangle
+
+\newlist{defenum}{enumerate}{1}
+\setlist[defenum]{label=\alph*),ref=\textup{\thedefinition.\alph*}}
+\crefalias{defenumi}{definition}
+
+\newlist{bemenum}{enumerate}{1}
+\setlist[bemenum]{label=\alph*),ref=\textup{\thebemerkung.\alph*}}
+\crefalias{bemenumi}{bemerkung}
+
+\newlist{bspenum}{enumerate}{1}
+\setlist[bspenum]{label=\arabic*),ref=\textup{\thebeispiel.\arabic*}}
+\crefalias{bspenumi}{beispiel} 
+
+\newlist{propenum}{enumerate}{1}
+\setlist[propenum]{label=\alph*), ref=\textup{\theproposition~(\alph*)}}
+\crefalias{propenumi}{proposition} 
+
+\newlist{aufgabeenum}{enumerate}{1}
+\setlist[aufgabeenum]{label=(\alph*),ref=\textup{\theaufgabe~(\alph*)}}
+\crefalias{aufgabeenumi}{aufgabe}
+
+% Commands for local abbreviations
+\newcommand\crefabbr[1]{%
+\begingroup
+  \crefname{bemerkung}{\textup{Bem.}}{\textup{Bem.}}%
+  \crefname{definition}{\textup{Def.}}{\textup{Def.}}\cref{#1}
+\endgroup%
+}
+\newcommand\Crefabbr[1]{%
+\begingroup
+  \Crefname{bemerkung}{\textup{Bem.}}{\textup{Bem.}}%
+  \Crefname{definition}{\textup{Def.}}{\textup{Def.}}\Cref{#1}
+\endgroup%
+}

+ 18 - 0
documents/Programmierparadigmen/titlepage.tex

@@ -0,0 +1,18 @@
+\begin{titlepage}
+\thispagestyle{empty}
+\ifAFive
+    \par\vspace{4cm}
+\else
+    \par\vspace{10cm}
+\fi
+\begin{center}
+{\Large \textbf{Programmierparadigmen}}
+\vfill
+
+%\includegraphics[width=0.9\linewidth]{figures/Torus.pdf}
+\vfill
+\hrulefill
+\end{center}
+\ \\[-5ex]
+0. Auflage, \today \hfill Martin Thoma
+\end{titlepage}