\documentclass{beamer}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{pgf}
%\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps,pgfshade} 
%\usepackage{multimedia}

\usepackage[english]{babel}
\usepackage{movie15}
\usepackage[latin1]{inputenc}
\usepackage{times}
\usepackage{amsmath}
\usepackage{bm} 
\usepackage[T1]{fontenc}
\usepackage[scaled=.90]{helvet}
\usepackage{scalefnt}
\usepackage{tikz}
\usepackage{ textcomp }
\usepackage{soul}
\usepackage{hyperref}
\definecolor{lightblue}{rgb}{.7,.7,1.}
\definecolor{mygreen}{rgb}{0,1.,0}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mode<presentation>
{
  \usetheme{Singapore}
  \setbeamercovered{opaque}
  \usecolortheme{tuebingen}
  \setbeamertemplate{navigation symbols}{}
  \usefonttheme{default}
  \useoutertheme{infolines}
  % \useoutertheme{miniframes}
}

\AtBeginSection[]
{
  \begin{frame}<beamer>
    \begin{center}
      \Huge \insertsectionhead
    \end{center}
    % \frametitle{\insertsectionhead}
    % \tableofcontents[currentsection,hideothersubsections]
  \end{frame}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5

\setbeamertemplate{blocks}[rounded][shadow=true]

\title[]{Scientific Computing -- Grundlagen der Programmierung }
\author[]{Jan Grewe\\Abteilung f\"ur Neuroethologie\\
  Universit\"at T\"ubingen}

\institute[Wissenschaftliche Datenverarbeitung]{}
 \date{03.10.2014 - 07.11.2014}
 %\logo{\pgfuseimage{../../resources/UT_BM_Rot_RGB.pdf}}

\subject{Einf\"uhrung in wissenschaftliche Datenverarbeitung}

%%%%%%%%%% configuration for code
\lstset{
 basicstyle=\ttfamily,
 numbers=left,
 showstringspaces=false,
 language=Matlab,
 commentstyle=\itshape\color{darkgray},
 keywordstyle=\color{blue},
 stringstyle=\color{green},
 backgroundcolor=\color{blue!10},
 breaklines=true,
 breakautoindent=true,
 columns=flexible,
 frame=single,
 captionpos=b,
 xleftmargin=1em,
 xrightmargin=1em,
 aboveskip=10pt
 }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\mycite}[1]{
\begin{flushright}
\tiny \color{black!80} #1
\end{flushright}
}

\input{../../latex/environments.tex}
\makeatother
 
\begin{document} 

\begin{frame}[plain]
  \frametitle{}
  \vspace{-1cm}
  \titlepage % erzeugt Titelseite
\end{frame}

\begin{frame}
  \frametitle{Grundlagen der Programmierung}
  \framesubtitle{Themen Woche 1}
  \begin{enumerate}
  \item MATLAB Entwicklungsumgebung
  \item Variablen und Datentypen
  \item Vektoren und Matrizen
  \item Boolsche Operationen
  \item Was ist ein Programm
  \item Kontrollstrukturen
  \item Vom Problem zum Algorithmus
  \item Skripte und Funktionen
  \item Stil und Kommentare
  \item Graphische Darstellung von Daten
  \item Fortgeschrittene Datenstrukturen
  \item String Parsing
  \item Lesen und schreiben von Dateien, navigieren im Dateisystem
  \end{enumerate}
\end{frame}

\begin{frame}
  \frametitle{Themen Woche 1}
  \begin{figure}
    \centering
    \includegraphics[width=0.8\columnwidth]{./images/wueste}
  \end{figure}
\end{frame}

\begin{frame}
  \frametitle{Themen Woche 1}
  \begin{figure}
    \centering
    \includegraphics[width=0.8\columnwidth]{./images/ski_wueste}
  \end{figure}
\end{frame}

\begin{frame}
  \frametitle{Grundlagen der Programmierung}
  \frametitle{Tagesmen\"u}
  \begin{enumerate}
  \item [] Die MATLAB Entwicklungsumgebung \& Das Hilfesystem
  \item Variablen und Datentypen
  \item Skalare, Vektore und Matrizen
  \item Boolsche Operatoren
  \item Kontrollstrukturen
  \end{enumerate}
\end{frame}

\begin{frame}[plain]
\huge{MATLAB IDE \& das Hilfesystem}
\end{frame}

\begin{frame}[plain]
\huge{1. Variablen}
\end{frame}

\begin{frame}
  \frametitle{Grundlagen der Programmierung}
  \framesubtitle{Variablen}
  \begin{figure}
    \centering
    \includegraphics[width=0.2\columnwidth]{./images/bucket.png}
  \end{figure}
\end{frame}

\begin{frame}
  \frametitle{Grundlagen der Programmierung}
  \framesubtitle{Variablen}
  \huge"Eine Variable ist ein Platz im Speicher."
  \begin{figure}
    \centering
    \includegraphics[width=0.8\columnwidth]{./images/variable.pdf}
  \end{figure}	
\end{frame}

\begin{frame}
  \frametitle{Variablen}
  \framesubtitle{Datentypen}
  \begin{itemize}
  \item \textit{integer} - Ganze zahlen. Hier gibt es mehrere
    Unterarten, die wir in Matlab weitestgehend ignorieren koennen.
  \item \textit{double} - Flie{\ss}kommazahlen.
  \item \textit{complex} - Komplexe Zahlen.
  \item \textit{logical} - Bool'sche Werte, die als wahr
    (\textit{true}) oder falsch (\textit{false}) interpretiert werden.
  \item \textit{char} - ASCII Zeichen
  \end{itemize}
\end{frame}


\begin{frame}
  \frametitle{Variablen}
  \framesubtitle{Datentypen}
  \only<1>{
    \begin{figure}
      \centering
      \includegraphics[width=0.8\columnwidth]{./images/variable.pdf}
    \end{figure}
  }
  \only<2>{	
    \begin{figure}
      \centering
      \includegraphics[width=0.8\columnwidth]{./images/variableB.pdf}
    \end{figure}
  }
\end{frame}

\begin{frame}[fragile]
  \frametitle{Variablen}
  \framesubtitle{Erzeugen von Variablen und Wertezuweisung}
  \scriptsize
  \begin{lstlisting}[label=varListing1]
    >> y = []
     y = 
         []
    >>
    >> x = 38
     x =
         38
    >>	
  \end{lstlisting}
\normalsize
\end{frame}

%\subsection{Calculations with variables}
\begin{frame}[fragile]
  \frametitle{Variablen}
  \framesubtitle{Rechnen mit Variablen}
  \tiny
  \begin{lstlisting}[label=varListing2]
    >> x = 1;
    >> x + 10
      ans = 
           11
    >>
    >> x % x wurde nicht veraendert
      ans =
           1
    >>
    >> y = 2;
    >>
    >> x + y
      ans = 
           3
    >>
    >> z = x + y
      z =
         3
    >>
    >> z = z * 5;
    >> z 
      z = 
         15
  \end{lstlisting}
\end{frame}

%\subsection{\"Ubungen}
\begin{frame}[fragile]
  \frametitle{Variablen}
  \framesubtitle{\"Ubungen}
  \vspace{-0.25cm}
  \begin{enumerate}
  \item Erzeuge zwei Variablen \verb+a, b+ und weise ihnen
    unterschiedliche Werte zu. Schlie{\ss}e die Zeilen mit einem
    Semikolon ab.
  \item Lasse die Werte der Variablen ausgeben.
  \item F\"uhre einfache mathematische Operationen aus (Addition,
    Subtraktion, etc.)  Potenzierung erfolgt \"uber das Dach Symbol
    \verb+^+). Stelle fest, ob sich der der urspruengliche Wert der
    Variable ge\"andert hat.
  \item Benuzte die Kommandozeile um herauszufinden, welche Variablen
    es im Workspace gibt.
  \item Finde in der Hilfe mehr Information \"uber das \verb+clear+ Kommando.
  \item L\"osche eine Variable.
  \item L\"osche alle \"ubrigen Variablen.
  \item Berechne die Fakult\"at von 5 indem eine Variable \verb+x+
    erzeugt wird und ihr der Wert 1 zugewiesen wird. In einzelenen
    Schritten wird x jeweils das Ergebnis des vorherigen Schrittes
    zugewiesen.
  \end{enumerate}
\end{frame}

\begin{frame}[plain]
  \huge{2. Vektoren und Matrizen}
\end{frame}

\begin{frame}
  \frametitle{Vektoren und Matrizen}
  \framesubtitle{Skalare vs. Vektoren}
  \begin{figure}
    \centering
    \includegraphics[width=0.8\columnwidth]{./images/scalarArray.pdf}
  \end{figure}
\end{frame}


\begin{frame}[fragile]
  \frametitle{Vektoren und Matrizen}
  \framesubtitle{Erzeugen von Vektoren}
  \tiny
  \begin{lstlisting}[label=arrayListing1]
    >> a = [0 1 2 3 4 5 6 7 8 9] % a brute-force way to define a vector
     a =
      0  1   2   3   4   5   6   7   8   9
    >>
    >> b = (0:9) % a more convenient way
     b = 
      0  1   2   3   4   5   6   7   8   9
    >>
    >> c = (0:2:10) % define a vector and fill it with number between 0
                    % and 10 in steps of 2
     c = 
      0  2  4  6  8  10
  \end{lstlisting}
\end{frame}

\begin{frame}[fragile]
 \frametitle{Vektoren und Matrizen}
 \framesubtitle{Spalten \& Zeilenvektoren}
 \tiny
 \begin{lstlisting}[label=arrayListing2]
   >> a = [1 2 3 4 5 6 7 8 9 10] % create a row vector
    a =
     1 2 3 4 5 6 7 8 9 10
   >>
   >> b = [1; 2; 3; 4; 5] % a column vector
    b =
     1
     2
     3 
     4
     5
   >>
   >> b = b' % transpose it to a row vector
    b =
     1 2 3 4 5
   >>
 \end{lstlisting}
\end{frame}



\end{document}
