From 857373c125c5dc97d3b76bb6102dec03ab88f4a5 Mon Sep 17 00:00:00 2001
From: Jan Benda <jan.benda@uni-tuebingen.de>
Date: Sun, 25 Oct 2015 22:22:54 +0100
Subject: [PATCH] Started working on pointprocesses

---
 bootstrap/lecture/Makefile                    |  15 +-
 likelihood/lecture/Makefile                   |  15 +-
 pointprocesses/exercises/Makefile             |  35 ++
 pointprocesses/exercises/instructions.tex     |  11 +
 pointprocesses/exercises/pointprocesses01.tex | 202 +++++++
 pointprocesses/exercises/poisson.pdf          | Bin 81657 -> 0 bytes
 pointprocesses/exercises/poisson.tex          | 160 ------
 pointprocesses/lecture/Makefile               | 154 ++---
 .../lecture/pointprocesses-slides.tex         | 412 ++++++++++++++
 pointprocesses/lecture/pointprocesses.tex     | 530 +++++-------------
 .../lecture/pointprocessscetchA.eps           |   4 +-
 .../lecture/pointprocessscetchA.pdf           | Bin 2765 -> 2765 bytes
 .../lecture/pointprocessscetchB.eps           |   4 +-
 .../lecture/pointprocessscetchB.pdf           | Bin 4673 -> 4673 bytes
 scientificcomputing-script.tex                |   9 +-
 statistics/lecture/Makefile                   |  15 +-
 statistics/lecture/boxwhisker.py              |   2 +-
 statistics/lecture/correlation.py             |   4 +-
 statistics/lecture/diehistograms.py           |   3 +-
 statistics/lecture/median.py                  |   3 +-
 statistics/lecture/nonlincorrelation.py       |   2 +-
 statistics/lecture/pdfhistogram.py            |   2 +-
 statistics/lecture/pdfprobabilities.py        |   3 +-
 statistics/lecture/quartile.py                |   3 +-
 24 files changed, 896 insertions(+), 692 deletions(-)
 create mode 100644 pointprocesses/exercises/Makefile
 create mode 100644 pointprocesses/exercises/instructions.tex
 create mode 100644 pointprocesses/exercises/pointprocesses01.tex
 delete mode 100644 pointprocesses/exercises/poisson.pdf
 delete mode 100644 pointprocesses/exercises/poisson.tex
 create mode 100644 pointprocesses/lecture/pointprocesses-slides.tex

diff --git a/bootstrap/lecture/Makefile b/bootstrap/lecture/Makefile
index f7f02ba..de4182d 100644
--- a/bootstrap/lecture/Makefile
+++ b/bootstrap/lecture/Makefile
@@ -1,22 +1,29 @@
 BASENAME=bootstrap
+
 PYFILES=$(wildcard *.py)
 PYPDFFILES=$(PYFILES:.py=.pdf)
 
-pdf : $(BASENAME)-chapter.pdf $(PYPDFFILES)
+all : pdf 
+
+# script:
+pdf : $(BASENAME)-chapter.pdf
 
-$(BASENAME)-chapter.pdf : $(BASENAME)-chapter.tex $(BASENAME).tex
+$(BASENAME)-chapter.pdf : $(BASENAME)-chapter.tex $(BASENAME).tex $(PYPDFFILES)
 	pdflatex -interaction=scrollmode $< | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $< || true
 
 $(PYPDFFILES) : %.pdf : %.py
 	python $<
 
 clean :
-	rm -f *~ $(BASENAME)-chapter.aux $(BASENAME)-chapter.log $(BASENAME)-chapter.out $(BASENAME).aux $(BASENAME).log
+	rm -f *~ 
+	rm -f $(BASENAME).aux $(BASENAME).log
+	rm -f $(BASENAME)-chapter.aux $(BASENAME)-chapter.log $(BASENAME)-chapter.out
+	rm -f $(PYPDFFILES) $(GPTTEXFILES)
 
 cleanall : clean
 	rm -f $(BASENAME)-chapter.pdf
 
-watch :
+watchpdf :
 	while true; do ! make -q pdf && make pdf; sleep 0.5; done
 
 
diff --git a/likelihood/lecture/Makefile b/likelihood/lecture/Makefile
index 4e6367b..42b8e3d 100644
--- a/likelihood/lecture/Makefile
+++ b/likelihood/lecture/Makefile
@@ -1,22 +1,29 @@
 BASENAME=likelihood
+
 PYFILES=$(wildcard *.py)
 PYPDFFILES=$(PYFILES:.py=.pdf)
 
-pdf : $(BASENAME)-chapter.pdf $(PYPDFFILES)
+all : pdf 
+
+# script:
+pdf : $(BASENAME)-chapter.pdf
 
-$(BASENAME)-chapter.pdf : $(BASENAME)-chapter.tex $(BASENAME).tex
+$(BASENAME)-chapter.pdf : $(BASENAME)-chapter.tex $(BASENAME).tex $(PYPDFFILES)
 	pdflatex -interaction=scrollmode $< | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $< || true
 
 $(PYPDFFILES) : %.pdf : %.py
 	python $<
 
 clean :
-	rm -f *~ $(BASENAME)-chapter.aux $(BASENAME)-chapter.log $(BASENAME)-chapter.out $(BASENAME).aux $(BASENAME).log
+	rm -f *~ 
+	rm -f $(BASENAME).aux $(BASENAME).log
+	rm -f $(BASENAME)-chapter.aux $(BASENAME)-chapter.log $(BASENAME)-chapter.out
+	rm -f $(PYPDFFILES) $(GPTTEXFILES)
 
 cleanall : clean
 	rm -f $(BASENAME)-chapter.pdf
 
-watch :
+watchpdf :
 	while true; do ! make -q pdf && make pdf; sleep 0.5; done
 
 
diff --git a/pointprocesses/exercises/Makefile b/pointprocesses/exercises/Makefile
new file mode 100644
index 0000000..0b63fb9
--- /dev/null
+++ b/pointprocesses/exercises/Makefile
@@ -0,0 +1,35 @@
+BASENAME=pointprocesses
+TEXFILES=$(wildcard $(BASENAME)??.tex)
+EXERCISES=$(TEXFILES:.tex=.pdf)
+SOLUTIONS=$(EXERCISES:pointprocesses%=pointprocesses-solutions%)
+
+.PHONY: pdf exercises solutions watch watchexercises watchsolutions clean
+
+pdf : $(SOLUTIONS) $(EXERCISES)
+
+exercises : $(EXERCISES)
+
+solutions : $(SOLUTIONS)
+
+$(SOLUTIONS) : pointprocesses-solutions%.pdf : pointprocesses%.tex instructions.tex
+	{ echo "\\documentclass[answers,12pt,a4paper,pdftex]{exam}"; sed -e '1d' $<; } > $(patsubst %.pdf,%.tex,$@)
+	pdflatex -interaction=scrollmode $(patsubst %.pdf,%.tex,$@) | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $(patsubst %.pdf,%.tex,$@) || true
+	rm $(patsubst %.pdf,%,$@).[!p]*
+
+$(EXERCISES) : %.pdf : %.tex instructions.tex
+	pdflatex -interaction=scrollmode $< | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $< || true
+
+watch :
+	while true; do ! make -q pdf && make pdf; sleep 0.5; done
+
+watchexercises :
+	while true; do ! make -q exercises && make exercises; sleep 0.5; done
+
+watchsolutions :
+	while true; do ! make -q solutions && make solutions; sleep 0.5; done
+
+clean :
+	rm -f *~ *.aux *.log *.out
+
+cleanup : clean
+	rm -f $(SOLUTIONS) $(EXERCISES)
diff --git a/pointprocesses/exercises/instructions.tex b/pointprocesses/exercises/instructions.tex
new file mode 100644
index 0000000..96ac4bc
--- /dev/null
+++ b/pointprocesses/exercises/instructions.tex
@@ -0,0 +1,11 @@
+\vspace*{-6.5ex}
+\begin{center}
+\textbf{\Large Einf\"uhrung in die wissenschaftliche Datenverarbeitung}\\[1ex]
+{\large Jan Grewe, Jan Benda}\\[-3ex]
+Abteilung Neuroethologie \hfill --- \hfill Institut f\"ur Neurobiologie \hfill --- \hfill \includegraphics[width=0.28\textwidth]{UT_WBMW_Black_RGB} \\
+\end{center}
+
+\ifprintanswers%
+\else
+
+\fi
diff --git a/pointprocesses/exercises/pointprocesses01.tex b/pointprocesses/exercises/pointprocesses01.tex
new file mode 100644
index 0000000..b4d927c
--- /dev/null
+++ b/pointprocesses/exercises/pointprocesses01.tex
@@ -0,0 +1,202 @@
+\documentclass[12pt,a4paper,pdftex]{exam}
+
+\usepackage[german]{babel}
+\usepackage{pslatex}
+\usepackage[mediumspace,mediumqspace,Gray]{SIunits}      % \ohm, \micro
+\usepackage{xcolor}
+\usepackage{graphicx}
+\usepackage[breaklinks=true,bookmarks=true,bookmarksopen=true,pdfpagemode=UseNone,pdfstartview=FitH,colorlinks=true,citecolor=blue]{hyperref}
+
+%%%%% layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage[left=20mm,right=20mm,top=25mm,bottom=25mm]{geometry}
+\pagestyle{headandfoot}
+\ifprintanswers
+\newcommand{\stitle}{: L\"osungen}
+\else
+\newcommand{\stitle}{}
+\fi
+\header{{\bfseries\large \"Ubung 6\stitle}}{{\bfseries\large Statistik}}{{\bfseries\large 27. Oktober, 2015}}
+\firstpagefooter{Prof. Dr. Jan Benda}{Phone: 29 74573}{Email:
+jan.benda@uni-tuebingen.de}
+\runningfooter{}{\thepage}{}
+
+\setlength{\baselineskip}{15pt}
+\setlength{\parindent}{0.0cm}
+\setlength{\parskip}{0.3cm}
+\renewcommand{\baselinestretch}{1.15}
+
+%%%%% listings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage{listings}
+\lstset{
+  language=Matlab,
+  basicstyle=\ttfamily\footnotesize,
+  numbers=left,
+  numberstyle=\tiny,
+  title=\lstname,
+  showstringspaces=false,
+  commentstyle=\itshape\color{darkgray},
+  breaklines=true,
+  breakautoindent=true,
+  columns=flexible,
+  frame=single,
+  xleftmargin=1em,
+  xrightmargin=1em,
+  aboveskip=10pt
+}
+
+%%%%% math stuff: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage{bm} 
+\usepackage{dsfont}
+\newcommand{\naZ}{\mathds{N}}
+\newcommand{\gaZ}{\mathds{Z}}
+\newcommand{\raZ}{\mathds{Q}}
+\newcommand{\reZ}{\mathds{R}}
+\newcommand{\reZp}{\mathds{R^+}}
+\newcommand{\reZpN}{\mathds{R^+_0}}
+\newcommand{\koZ}{\mathds{C}}
+
+%%%%% page breaks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\continue}{\ifprintanswers%
+\else
+\vfill\hspace*{\fill}$\rightarrow$\newpage%
+\fi}
+\newcommand{\continuepage}{\ifprintanswers%
+\newpage
+\else
+\vfill\hspace*{\fill}$\rightarrow$\newpage%
+\fi}
+\newcommand{\newsolutionpage}{\ifprintanswers%
+\newpage%
+\else
+\fi}
+
+%%%%% new commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\qt}[1]{\textbf{#1}\\}
+\newcommand{\pref}[1]{(\ref{#1})}
+\newcommand{\extra}{--- Zusatzaufgabe ---\ \mbox{}}
+\newcommand{\code}[1]{\texttt{#1}}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document}
+
+\input{instructions}
+
+
+\begin{questions}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\question \qt{Homogeneous Poisson process}
+We use the Poisson process to generate spike trains on which we can test and imrpove some 
+standard analysis functions.
+
+A homogeneous Poisson process of rate $\lambda$ (measured in Hertz) is a point process
+where the probability of an event is independent of time $t$ and independent of previous events.
+The probability $P$ of an event within a bin of width $\Delta t$ is 
+\[ P = \lambda \cdot \Delta t \]
+for sufficiently small $\Delta t$.
+\begin{parts}
+  
+  \part Write a function that generates $n$ homogeneous Poisson spike trains of a given duration $T_{max}$
+  with rate $\lambda$.
+  \begin{solution}
+    \lstinputlisting{hompoissonspikes.m}
+  \end{solution}
+  
+  \part Using this function, generate a few trials and display them in a raster plot.
+  \begin{solution}
+    \lstinputlisting{../code/spikeraster.m}
+    \begin{lstlisting}
+      spikes = hompoissonspikes( 10, 100.0, 0.5 );
+      spikeraster( spikes )
+    \end{lstlisting}
+    \mbox{}\\[-3ex]
+    \colorbox{white}{\includegraphics[width=0.7\textwidth]{poissonraster100hz}}
+  \end{solution}
+  
+  \part Write a function that extracts a single vector of interspike intervals
+  from the spike times returned by the first function.
+  \begin{solution}
+    \lstinputlisting{../code/isis.m}
+  \end{solution}
+  
+  \part Write a function that plots the interspike-interval histogram
+  from a vector of interspike intervals. The function should also
+  compute the mean, the standard deviation, and the CV of the intervals
+  and display the values in the plot.
+  \begin{solution}
+    \lstinputlisting{../code/isihist.m}
+  \end{solution}
+  
+  \part Compute histograms for Poisson spike trains with rate
+  $\lambda=100$\,Hz. Play around with $T_{max}$ and $n$ and the bin width
+  (start with 1\,ms) of the histogram.
+  How many
+  interspike intervals do you approximately need to get a ``nice''
+  histogram? How long do you need to record from the neuron?
+  \begin{solution}
+    About 5000 intervals for 25 bins. This corresponds to a $5000 / 100\,\hertz = 50\,\second$ recording
+    of a neuron firing with 100\,\hertz.
+  \end{solution}
+  
+  \part Compare the histogram with the true distribution of intervals $T$ of the Poisson process
+  \[ p(T) = \lambda e^{-\lambda T} \]
+  for various rates $\lambda$.
+  \begin{solution}
+    \lstinputlisting{hompoissonisih.m}
+    \colorbox{white}{\includegraphics[width=0.48\textwidth]{poissonisih100hz}}
+    \colorbox{white}{\includegraphics[width=0.48\textwidth]{poissonisih20hz}}
+  \end{solution}
+  
+  \part What happens if you make the bin width of the histogram smaller than $\Delta t$ 
+  used for generating the Poisson spikes?
+  \begin{solution}
+    The bins between the discretization have zero entries. Therefore
+    the other ones become higher than they should be.
+  \end{solution}
+  
+  \part Plot the mean interspike interval, the corresponding standard deviation, and the CV
+  as a function of the rate $\lambda$ of the Poisson process.
+  Compare the ../code with the theoretical expectations for the dependence on $\lambda$.
+  \begin{solution}
+    \lstinputlisting{hompoissonisistats.m}
+    \colorbox{white}{\includegraphics[width=0.98\textwidth]{poissonisistats}}
+  \end{solution}
+  
+  \part Write a function that computes serial correlations for the interspike intervals
+  for a range of lags.
+  The serial correlations $\rho_k$ at lag $k$ are defined as
+  \[ \rho_k = \frac{\langle (T_{i+k} - \langle T \rangle)(T_i - \langle T \rangle) \rangle}{\langle (T_i - \langle T \rangle)^2\rangle} = \frac{{\rm cov}(T_{i+k}, T_i)}{{\rm var}(T_i)} \]
+  Use this function to show that interspike intervals of Poisson spikes are independent.
+  \begin{solution}
+    \lstinputlisting{../code/isiserialcorr.m}
+    \colorbox{white}{\includegraphics[width=0.98\textwidth]{poissonserial100hz}}
+  \end{solution}
+  
+  \part Write a function that generates from spike times 
+  a histogram of spike counts in a count window of given duration $W$.
+  The function should also plot the Poisson distribution
+  \[ P(k) = \frac{(\lambda W)^ke^{\lambda W}}{k!} \]
+  for the rate $\lambda$ determined from the spike trains.
+  \begin{solution}
+    \lstinputlisting{../code/counthist.m}
+    \colorbox{white}{\includegraphics[width=0.48\textwidth]{poissoncounthistdist100hz10ms}}
+    \colorbox{white}{\includegraphics[width=0.48\textwidth]{poissoncounthistdist100hz100ms}}
+  \end{solution}
+  
+  \part Write a function that computes mean count, variance of count and the corresponding Fano factor
+  for a range of count window durations. The function should generate tow plots: one plotting
+  the count variance against the mean, the other one the Fano factor as a function of the window duration.
+  \begin{solution}
+    \lstinputlisting{../code/fano.m}
+    \colorbox{white}{\includegraphics[width=0.98\textwidth]{poissonfano100hz}}
+  \end{solution}
+  
+\end{parts}
+
+\end{questions}
+
+\end{document}
\ No newline at end of file
diff --git a/pointprocesses/exercises/poisson.pdf b/pointprocesses/exercises/poisson.pdf
deleted file mode 100644
index aa1756efbb4f7fffd1a470ca915d37be76c086ed..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 81657
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

diff --git a/pointprocesses/exercises/poisson.tex b/pointprocesses/exercises/poisson.tex
deleted file mode 100644
index 4b8f0f0..0000000
--- a/pointprocesses/exercises/poisson.tex
+++ /dev/null
@@ -1,160 +0,0 @@
-\documentclass[addpoints,10pt]{exam}
-\usepackage{url}
-\usepackage{color}
-\usepackage{hyperref}
-\usepackage{graphicx}
-
-\pagestyle{headandfoot}
-\runningheadrule
-\firstpageheadrule
-
-\firstpageheader{Scientific Computing}{Homogeneous Poisson process}{Oct 27, 2014}
-%\runningheader{Homework 01}{Page \thepage\ of \numpages}{23. October 2014}
-\firstpagefooter{}{}{}
-\runningfooter{}{}{}
-\pointsinmargin
-\bracketedpoints
-
-%\printanswers
-\shadedsolutions
-
-\usepackage[mediumspace,mediumqspace,Gray]{SIunits}      % \ohm, \micro
-
-%%%%% listings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\usepackage{listings}
-\lstset{
- basicstyle=\ttfamily,
- numbers=left,
- showstringspaces=false,
- language=Matlab,
- breaklines=true,
- breakautoindent=true,
- columns=flexible,
- frame=single,
- captionpos=t,
- xleftmargin=2em,
- xrightmargin=1em,
- aboveskip=10pt,
- %title=\lstname,
- title={\protect\filename@parse{\lstname}\protect\filename@base.\protect\filename@ext}
- }
-
-
-\begin{document}
-
-\sffamily
-%%%%%%%%%%%%%% Questions %%%%%%%%%%%%%%%%%%%%%%%%%
-
-\begin{questions}
-  \question \textbf{Homogeneous Poisson process}
-  We use the Poisson process to generate spike trains on which we can test and imrpove some 
-  standard analysis functions.
-
-  A homogeneous Poisson process of rate $\lambda$ (measured in Hertz) is a point process
-  where the probability of an event is independent of time $t$ and independent of previous events.
-  The probability $P$ of an event within a bin of width $\Delta t$ is 
-  \[ P = \lambda \cdot \Delta t \]
-  for sufficiently small $\Delta t$.
-  \begin{parts}
-
-    \part Write a function that generates $n$ homogeneous Poisson spike trains of a given duration $T_{max}$
-    with rate $\lambda$.
-    \begin{solution}
-      \lstinputlisting{hompoissonspikes.m}
-    \end{solution}
-
-    \part Using this function, generate a few trials and display them in a raster plot.
-    \begin{solution}
-      \lstinputlisting{simulations/spikeraster.m}
-      \begin{lstlisting}
-spikes = hompoissonspikes( 10, 100.0, 0.5 );
-spikeraster( spikes )
-      \end{lstlisting}
-      \mbox{}\\[-3ex]
-      \colorbox{white}{\includegraphics[width=0.7\textwidth]{poissonraster100hz}}
-    \end{solution}
-
-    \part Write a function that extracts a single vector of interspike intervals
-    from the spike times returned by the first function.
-    \begin{solution}
-      \lstinputlisting{simulations/isis.m}
-    \end{solution}
-
-    \part Write a function that plots the interspike-interval histogram
-    from a vector of interspike intervals. The function should also
-    compute the mean, the standard deviation, and the CV of the intervals
-    and display the values in the plot.
-    \begin{solution}
-      \lstinputlisting{simulations/isihist.m}
-    \end{solution}
-
-    \part Compute histograms for Poisson spike trains with rate
-    $\lambda=100$\,Hz. Play around with $T_{max}$ and $n$ and the bin width
-    (start with 1\,ms) of the histogram.
-    How many
-    interspike intervals do you approximately need to get a ``nice''
-    histogram? How long do you need to record from the neuron?
-    \begin{solution}
-      About 5000 intervals for 25 bins. This corresponds to a $5000 / 100\,\hertz = 50\,\second$ recording
-      of a neuron firing with 100\,\hertz.
-    \end{solution}
-
-    \part Compare the histogram with the true distribution of intervals $T$ of the Poisson process
-    \[ p(T) = \lambda e^{-\lambda T} \]
-    for various rates $\lambda$.
-    \begin{solution}
-      \lstinputlisting{hompoissonisih.m}
-      \colorbox{white}{\includegraphics[width=0.48\textwidth]{poissonisih100hz}}
-      \colorbox{white}{\includegraphics[width=0.48\textwidth]{poissonisih20hz}}
-    \end{solution}
-
-    \part What happens if you make the bin width of the histogram smaller than $\Delta t$ 
-    used for generating the Poisson spikes?
-    \begin{solution}
-      The bins between the discretization have zero entries. Therefore
-      the other ones become higher than they should be.
-    \end{solution}
-
-    \part Plot the mean interspike interval, the corresponding standard deviation, and the CV
-    as a function of the rate $\lambda$ of the Poisson process.
-    Compare the simulations with the theoretical expectations for the dependence on $\lambda$.
-    \begin{solution}
-      \lstinputlisting{hompoissonisistats.m}
-      \colorbox{white}{\includegraphics[width=0.98\textwidth]{poissonisistats}}
-    \end{solution}
-
-    \part Write a function that computes serial correlations for the interspike intervals
-    for a range of lags.
-    The serial correlations $\rho_k$ at lag $k$ are defined as
-    \[ \rho_k = \frac{\langle (T_{i+k} - \langle T \rangle)(T_i - \langle T \rangle) \rangle}{\langle (T_i - \langle T \rangle)^2\rangle} = \frac{{\rm cov}(T_{i+k}, T_i)}{{\rm var}(T_i)} \]
-    Use this function to show that interspike intervals of Poisson spikes are independent.
-    \begin{solution}
-      \lstinputlisting{simulations/isiserialcorr.m}
-      \colorbox{white}{\includegraphics[width=0.98\textwidth]{poissonserial100hz}}
-    \end{solution}
-
-    \part Write a function that generates from spike times 
-    a histogram of spike counts in a count window of given duration $W$.
-    The function should also plot the Poisson distribution
-    \[ P(k) = \frac{(\lambda W)^ke^{\lambda W}}{k!} \]
-    for the rate $\lambda$ determined from the spike trains.
-    \begin{solution}
-      \lstinputlisting{simulations/counthist.m}
-      \colorbox{white}{\includegraphics[width=0.48\textwidth]{poissoncounthistdist100hz10ms}}
-      \colorbox{white}{\includegraphics[width=0.48\textwidth]{poissoncounthistdist100hz100ms}}
-    \end{solution}
-
-    \part Write a function that computes mean count, variance of count and the corresponding Fano factor
-    for a range of count window durations. The function should generate tow plots: one plotting
-    the count variance against the mean, the other one the Fano factor as a function of the window duration.
-    \begin{solution}
-      \lstinputlisting{simulations/fano.m}
-      \colorbox{white}{\includegraphics[width=0.98\textwidth]{poissonfano100hz}}
-    \end{solution}
-
-  \end{parts}
-  
-\end{questions}
-
-
-\end{document}
diff --git a/pointprocesses/lecture/Makefile b/pointprocesses/lecture/Makefile
index 7a243a5..4ac656e 100644
--- a/pointprocesses/lecture/Makefile
+++ b/pointprocesses/lecture/Makefile
@@ -1,142 +1,70 @@
 BASENAME=pointprocesses
 
-TEXFILE=$(BASENAME).tex
-DVIFILE=$(BASENAME).dvi
-PSFILE=$(BASENAME).ps
-PDFFILE=$(BASENAME).pdf
-
-FOILSFILE=foils.pdf
-THUMBNAILSFILE=thumbnails.pdf
-
-HTMLBASENAME=$(BASENAME)h
-HTMLTEXFILE=$(BASENAME)h.tex
-HTMLDIR=$(BASENAME)h
+PYFILES=$(wildcard *.py)
+PYPDFFILES=$(PYFILES:.py=.pdf)
 
 GPTFILES=$(wildcard *.gpt)
 GPTTEXFILES=$(GPTFILES:.gpt=.tex)
 
 
-all: ps pdf talk again watchps watchpdf foils thumbs html html1 epsfigs clean cleanup cleanplots help
-.PHONY: epsfigs
+all: pdf slides thumbs
+
+# script:
+pdf : $(BASENAME)-chapter.pdf
+$(BASENAME)-chapter.pdf : $(BASENAME)-chapter.tex $(BASENAME).tex $(GPTTEXFILES) $(PYPDFFILES)
+	pdflatex -interaction=scrollmode $< | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $< || true
 
 
+# slides:
+slides: $(BASENAME)-slides.pdf
+$(BASENAME)-slides.pdf : $(BASENAME)-slides.tex $(GPTTEXFILES) $(PYPDFFILES)
+	pdflatex -interaction=scrollmode $< | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $< || true
+
 # thumbnails:
-thumbs: $(THUMBNAILSFILE)
-$(THUMBNAILSFILE): $(TEXFILE) $(GPTTEXFILES)
+thumbs: $(BASENAME)-handout.pdf
+$(BASENAME)-handout.pdf: $(BASENAME)-slides.tex $(GPTTEXFILES)
 	sed -e 's/setboolean{presentation}{true}/setboolean{presentation}{false}/; s/usepackage{crop}/usepackage[frame]{crop}/' $< > thumbsfoils.tex
 	pdflatex thumbsfoils | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex thumbsfoils || true
-	pdfnup --nup 2x4 --no-landscape --paper a4paper --trim "-1cm -1cm -1cm -1cm" --outfile $@ thumbsfoils.pdf '1-19'
+	pdfnup --nup 2x4 --no-landscape --paper a4paper --trim "-1cm -1cm -1cm -1cm" --outfile $@ thumbsfoils.pdf # 1-19
 	rm thumbsfoils.*
 
-# transparencies:
-foils: $(FOILSFILE)
-$(FOILSFILE): $(TEXFILE) $(GPTTEXFILES)
-	sed -e 's/setboolean{presentation}{true}/setboolean{presentation}{false}/' $< > tfoils.tex
-	pdflatex tfoils | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex tfoils || true
-	pdfnup --nup 1x2 --orient portrait --trim "-1mm -1mm -1mm -1mm" --frame true --delta "1cm 1cm" --paper a4paper --outfile tfoils2.pdf tfoils.pdf
-	pdfnup --nup 1x1 --orient portrait --trim "-2cm -2cm -2cm -2cm" --paper a4paper --outfile $@ tfoils2.pdf 
-	rm tfoils.* tfoils2.pdf
-
-# talk:
-talk: $(PDFFILE)
-pdf: $(PDFFILE)
-$(PDFFILE): $(TEXFILE) $(GPTTEXFILES)
-	pdflatex -interaction=scrollmode $< | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $< || true
-# batchmode (no output, no stop on error)
-# nonstopmode / scrollmode (no stop on error)
-# errorstopmode (stop on error)
-
-
-again :
-	pdflatex $(TEXFILE)
-
 watchpdf :
 	while true; do ! make -q pdf && make pdf; sleep 0.5; done
 
-# html
-html : $(HTMLTEXFILE) $(GPTTEXFILES)
-	rm -f $(HTMLDIR)/*
-	htlatex $<
-	mkdir -p $(HTMLDIR)
-	mv $(HTMLBASENAME).html $(HTMLDIR)
-	mv $(HTMLBASENAME)*.* $(HTMLDIR)
-	mv z*.gif $(HTMLDIR)
-	cd $(HTMLDIR); for i in *.gif; do convert -page +0+0 $$i tmp.gif; mv tmp.gif $$i; done; rmtex $(HTMLBASENAME)
-
-#$(HTMLTEXFILE) : $(TEXFILE) Makefile
-#	sed 's/setboolean{html}{false}/setboolean{html}{true}/; s/\\colorbox{white}{\(.*\)}/\1/g' $< > $@
-
-html1 : $(HTMLTEXFILE) $(GPTTEXFILES)
-	latex2html -dir $(HTMLDIR) -mkdir -subdir -nonavigation -noinfo -image_type png -notransparent -white -split 0 $<
-	sed 's-<I>Date:</I>--' $(HTMLDIR)/$(HTMLDIR).html > tmp.html
-	cp tmp.html $(HTMLDIR)/index.html
-	mv tmp.html $(HTMLDIR)/$(HTMLDIR).html
-
-$(HTMLTEXFILE) : $(TEXFILE)
-	sed '/^%nohtml/,/^%endnohtml/d; s/\\colorbox{white}{\(.*\)}/\1/g' $< > $@
-
-
-# eps of all figures:
-epsfigs:
-	mkdir -p epsfigs; \
-	for i in $(GPTFILES); do \
-	  { sed -n -e '1,/\\begin{document}/p' $(TEXFILE); echo "\texpicture{$${i%%.*}}"; echo "\end{document}"; } > tmp.tex; \
-	  latex tmp.tex; \
-	  dvips tmp.dvi; \
-	  ps2eps tmp.ps; \
-	  mv tmp.eps epsfigs/$${i%%.*}.eps; \
-	  rm tmp.*; \
-	done
-
-
-# plots:
-%.tex: %.gpt whitestyles.gp
+watchslides :
+	while true; do ! make -q slides && make slides; sleep 0.5; done
+
+# python plots:
+$(PYPDFFILES) : %.pdf: %.py
+	python $<
+
+# gnuplot plots:
+$(GPTTEXFILES) : %.tex: %.gpt whitestyles.gp
 	gnuplot whitestyles.gp $<
 	epstopdf $*.eps
 
 
 clean :
-	rm -f *~
-	rmtex $(BASENAME)
-	rm -f $(GPTTEXFILES)
-
-cleanup :
-	rm -f *~
-	rmtex $(BASENAME)
-	rm -f $(PSFILE) $(PDFFILE) $(FOILSFILE) $(THUMBNAILSFILE)
-	rm -f $(GPTTEXFILES)
-	rm -f -r $(HTMLDIR)
-
-
-cleanplots :
-	sed -n -e '/\\begin{document}/,/\\end{document}/p' $(TEXFILE) | fgrep '\input{' | grep -v '^%' | sed 's/.*input{\(.*\).tex}.*/\1.gpt/' > plot.fls
-	mkdir -p unusedplots
-	for i in *.gp*; do \
-	  grep -q $$i plot.fls || { grep -q $$i $$(<plot.fls) && echo $$i || mv $$i unusedplots; }; \
-	done >> plot.fls
-	for i in $$(<plot.fls); do \
-	  sed "s/\([^'\" ]*\.dat\)/\n\1\n/g;" $$i | fgrep .dat; \
-	done | sort | uniq > dat.fls
-	mkdir -p unuseddata 
-	for i in *.dat; do \
-	  grep -q $$i dat.fls || mv $$i unuseddata; \
-	done
-	rm dat.fls plot.fls
+	rm -f *~ 
+	rm -f $(BASENAME).aux $(BASENAME).log
+	rm -f $(BASENAME)-chapter.aux $(BASENAME)-chapter.log $(BASENAME)-chapter.out
+	rm -f $(BASENAME)-slides.aux $(BASENAME)-slides.log $(BASENAME)-slides.out $(BASENAME)-slides.toc $(BASENAME)-slides.nav $(BASENAME)-slides.snm $(BASENAME)-slides.vrb
+	rm -f $(PYPDFFILES) $(GPTTEXFILES)
+
+cleanall : clean
+	rm -f $(BASENAME)-chapter.pdf $(BASENAME)-slides.pdf $(BASENAME)-handout.pdf
 
 
 help : 
 	@echo -e \
-	"make pdf:    make the pdf file of the talk.\n"\
-	"make foils:  make black&white postscript foils of the talk.\n"\
-	"make thumbs: make color thumbnails of the talk.\n"\
-	"make again: run latex and make the pdf file of the talk,\n"\
-        "            no matter whether you changed the .tex file or not.\n\n"\
-	"make watchpdf:   make the pdf file of the talk\n"\
+	"make pdf:        make the pdf file of the script.\n"\
+	"make slides:     make the pdf file of the slides.\n"\
+	"make thumbs:     make color thumbnails of the talk.\n"\
+	"make watchpdf:   make the pdf file of the script\n"\
+        "                 whenever the tex file is modified.\n"\
+	"make watchpdf:   make the pdf file of the slides\n"\
         "                 whenever the tex file is modified.\n"\
-	"make html:       make a html version of the paper (in $(HTMLDIR)).\n\n"\
 	"make clean:      remove all intermediate files,\n"\
-        "                 just leave the source files and the final .ps and .pdf files.\n"\
+        "                 just leave the source files and the final .pdf files.\n"\
 	"make cleanup:    remove all intermediate files as well as\n"\
-        "                 the final .ps and .pdf files.\n"\
-	"make cleanplots: move all unused .gpt and .dat files\n"\
-        "                 into unusedplots/ and unuseddata/, respectively."
+        "                 the final .pdf files.\n"\
diff --git a/pointprocesses/lecture/pointprocesses-slides.tex b/pointprocesses/lecture/pointprocesses-slides.tex
new file mode 100644
index 0000000..ff49cb2
--- /dev/null
+++ b/pointprocesses/lecture/pointprocesses-slides.tex
@@ -0,0 +1,412 @@
+\documentclass{beamer}
+
+%%%%% title %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title[]{Scientific Computing --- Point Processes}
+\author[]{Jan Benda}
+\institute[]{Neuroethology}
+\date[]{WS 14/15}
+\titlegraphic{\includegraphics[width=0.3\textwidth]{UT_WBMW_Rot_RGB}}
+
+%%%%% beamer %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\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}
+%  \end{frame}
+%}
+
+\setbeamertemplate{blocks}[rounded][shadow=true]
+\setcounter{tocdepth}{1}
+
+%%%%% packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage[english]{babel}
+\usepackage{amsmath}
+\usepackage{bm} 
+\usepackage{pslatex}   % nice font for pdf file
+%\usepackage{multimedia}
+
+\usepackage{dsfont}
+\newcommand{\naZ}{\mathds{N}}
+\newcommand{\gaZ}{\mathds{Z}}
+\newcommand{\raZ}{\mathds{Q}}
+\newcommand{\reZ}{\mathds{R}}
+\newcommand{\reZp}{\mathds{R^+}}
+\newcommand{\reZpN}{\mathds{R^+_0}}
+\newcommand{\koZ}{\mathds{C}}
+
+%%%% graphics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage{graphicx}
+\newcommand{\texpicture}[1]{{\sffamily\small\input{#1.tex}}}
+
+%%%%% listings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage{listings}
+\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
+ }
+
+ 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{document} 
+
+\begin{frame}[plain]
+  \frametitle{}
+  \vspace{-1cm}
+  \titlepage % erzeugt Titelseite
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}
+  \frametitle{Content}
+  \tableofcontents
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Point processes}
+
+\begin{frame}
+  \frametitle{Point process}
+  \vspace{-3ex}
+  \texpicture{pointprocessscetchA}
+
+  A point process is a stochastic (or random) process that generates a sequence of events
+  at times $\{t_i\}$, $t_i \in \reZ$.
+
+  For each point process there is an underlying continuous-valued
+  process evolving in time. The associated point process occurs when
+  the underlying continuous process crosses a threshold.
+  Examples:
+  \begin{itemize}
+  \item Spikes/heartbeat: generated by the dynamics of the membrane potential of neurons/heart cells.
+  \item Earth quakes: generated by the pressure dynamics between the tectonic plates on either side of a geological fault line.
+  \item Onset of cricket/frogs/birds/... songs: generated by the dynamics of the state of a nervous system.
+  \end{itemize}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Point process}
+  \texpicture{pointprocessscetchB}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Homogeneous Poisson process}
+
+\begin{frame}
+  \frametitle{Homogeneous Poisson process}
+  The probability $p(t)\delta t$ of an event occuring at time $t$
+  is independent of $t$ and independent of any previous event
+  (independent of event history).
+
+  The probability $P$ for an event occuring within a time bin of width $\Delta t$
+  is
+  \[ P=\lambda \cdot \Delta t \]
+  for a Poisson process with rate $\lambda$.
+  \includegraphics[width=1\textwidth]{poissonraster100hz}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Interval statistics}
+
+\begin{frame}
+  \frametitle{Rate}
+  Rate of events $r$ (``spikes per time'') measured in Hertz.
+  \begin{itemize}
+  \item Number of events $N$ per observation time $W$: $r = \frac{N}{W}$
+  \item Without boundary effects: $r = \frac{N-1}{t_N-t_1}$
+  \item Inverse interval: $r = \frac{1}{\mu_{ISI}}$
+  \end{itemize}
+\end{frame}
+
+\begin{frame}
+  \frametitle{(Interspike) interval statistics}
+  \begin{itemize}
+  \item Histogram $p(T)$ of intervals $T$. Normalized to $\int_0^{\infty} p(T) \; dT = 1$
+  \item Mean interval $\mu_{ISI} = \langle T \rangle = \frac{1}{n}\sum\limits_{i=1}^n T_i$
+  \item Variance of intervals $\sigma_{ISI}^2 = \langle (T - \langle T \rangle)^2 \rangle$\vspace{1ex}
+  \item Coefficient of variation $CV_{ISI} = \frac{\sigma_{ISI}}{\mu_{ISI}}$
+  \item Diffusion coefficient $D_{ISI} = \frac{\sigma_{ISI}^2}{2\mu_{ISI}^3}$
+  \vfill
+  \end{itemize}
+  \includegraphics[width=0.45\textwidth]{poissonisih100hz}\hfill
+  \includegraphics[width=0.45\textwidth]{lifisih16}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Interval statistics of homogeneous Poisson process}
+  \begin{itemize}
+  \item Exponential distribution of intervals $T$: $p(T) = \lambda e^{-\lambda T}$
+  \item Mean interval $\mu_{ISI} = \frac{1}{\lambda}$
+  \item Variance of intervals $\sigma_{ISI}^2 = \frac{1}{\lambda^2}$
+  \item Coefficient of variation $CV_{ISI} = 1$
+  \end{itemize}
+  \vfill
+  \includegraphics[width=0.45\textwidth]{poissonisihexp20hz}\hfill
+  \includegraphics[width=0.45\textwidth]{poissonisihexp100hz}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Interval return maps}
+  Scatter plot between succeeding intervals separated by lag $k$.
+  \vfill
+  Poisson process $\lambda=100$\,Hz:
+  \includegraphics[width=1\textwidth]{poissonreturnmap100hz}\hfill
+\end{frame}
+
+\begin{frame}
+  \frametitle{Serial interval correlations}
+  Correlation coefficients between succeeding intervals separated by lag $k$:
+  \[ \rho_k = \frac{\langle (T_{i+k} - \langle T \rangle)(T_i - \langle T \rangle) \rangle}{\langle (T_i - \langle T \rangle)^2\rangle} = \frac{{\rm cov}(T_{i+k}, T_i)}{{\rm var}(T_i)} \]
+  \begin{itemize}
+  \item $\rho_0=1$ (correlation of each interval with itself).
+  \item Poisson process: $\rho_k =0$ for $k>0$ (renewal process!) 
+  \end{itemize}
+  \vfill
+  \includegraphics[width=0.7\textwidth]{poissonserial100hz}
+\end{frame}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Count statistics}
+
+\begin{frame}
+  \frametitle{Count statistics}
+  Histogram of number of events $N$ (counts) within observation window of duration $W$.
+
+  \vfill
+  \includegraphics[width=0.48\textwidth]{poissoncounthist100hz10ms}\hfill
+  \includegraphics[width=0.48\textwidth]{poissoncounthist100hz100ms}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Count statistics of Poisson process}
+  Poisson distribution:
+  \[ P(k) = \frac{(\lambda W)^ke^{\lambda W}}{k!} \]
+
+  \vfill
+  \includegraphics[width=0.48\textwidth]{poissoncounthistdist100hz10ms}\hfill
+  \includegraphics[width=0.48\textwidth]{poissoncounthistdist100hz100ms}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Count statistics --- Fano factor}
+  Statistics of number of events $N$ within observation window of duration $W$.
+  \begin{itemize}
+  \item Mean count: $\mu_N = \langle N \rangle$
+  \item Count variance: $\sigma_N^2 = \langle (N - \langle N \rangle)^2 \rangle$
+  \item Fano factor (variance divided by mean): $F = \frac{\sigma_N^2}{\mu_N}$
+  \item Poisson process: $F=1$
+  \end{itemize}
+  \vfill
+  Poisson process $\lambda=100$\,Hz:
+  \includegraphics[width=1\textwidth]{poissonfano100hz}
+\end{frame}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Integrate-and-fire models}
+
+\begin{frame}
+  \frametitle{Integrate-and-fire models}
+  Leaky integrate-and-fire model (LIF):
+  \[ \tau \frac{dV}{dt} = -V + RI + D\xi \]
+  Whenever membrane potential $V(t)$ crosses the firing threshold $\theta$, a spike is emitted and
+  $V(t)$ is reset to $V_{reset}$.
+  \begin{itemize}
+  \item $\tau$: membrane time constant (typically 10\,ms)
+  \item $R$: input resistance (here 1\,mV (!))
+  \item $D\xi$: additive Gaussian white noise of strength $D$
+  \item $\theta$: firing threshold (here 10\,mV)
+  \item $V_{reset}$: reset potential (here 0\,mV)
+  \end{itemize}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Integrate-and-fire models}
+  Discretization with time step $\Delta t$: $V(t) \rightarrow V_i,\;t_i = i \Delta t$.\\
+  Euler integration:
+  \begin{eqnarray*}
+    \frac{dV}{dt} & \approx & \frac{V_{i+1} - V_i}{\Delta t} \\
+    \Rightarrow \quad V_{i+1} & = & V_i + \Delta t \frac{-V_i+RI_i+\sqrt{2D\Delta t}N_i}{\tau}
+  \end{eqnarray*}
+  $N_i$ are normally distributed random numbers (Gaussian with zero mean and unit variance)
+  --- the $\sqrt{\Delta t}$ is for white noise.
+
+  \includegraphics[width=0.82\textwidth]{lifraster16}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Interval statistics of LIF}
+  Interval distribution approaches Inverse Gaussian for large $I$:
+  \[ p(T) = \frac{1}{\sqrt{4\pi D T^3}}\exp\left[-\frac{(T-\langle T \rangle)^2}{4DT\langle T \rangle^2}\right] \]
+  where $\langle T \rangle$ is the mean interspike interval and $D$
+  is the diffusion coefficient.
+  \vfill
+  \includegraphics[width=0.45\textwidth]{lifisihdistr08}\hfill
+  \includegraphics[width=0.45\textwidth]{lifisihdistr16}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Interval statistics of PIF}
+  For the perfect integrate-and-fire (PIF)
+  \[ \tau \frac{dV}{dt} =  RI + D\xi \]
+  (the canonical model or supra-threshold firing on a limit cycle)\\
+  the Inverse Gaussian describes exactly the interspike interval distribution.
+  \vfill
+  \includegraphics[width=0.45\textwidth]{pifisihdistr01}\hfill
+  \includegraphics[width=0.45\textwidth]{pifisihdistr10}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Interval return map of LIF}
+  LIF $I=15.7$:
+  \includegraphics[width=1\textwidth]{lifreturnmap16}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Serial correlations of LIF}
+  LIF $I=15.7$:
+  \includegraphics[width=1\textwidth]{lifserial16}\\
+  Integrate-and-fire driven with white noise are still renewal processes!
+\end{frame}
+
+\begin{frame}
+  \frametitle{Count statistics of LIF}
+  LIF $I=15.7$:
+  \includegraphics[width=1\textwidth]{liffano16}\\
+  Fano factor is not one!
+\end{frame}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}
+  \frametitle{Interval statistics of LIF with OU noise}
+  \begin{eqnarray*}
+    \tau \frac{dV}{dt} & = & -V + RI + U \\
+    \tau_{OU} \frac{dU}{dt} & = & - U + D\xi
+  \end{eqnarray*}
+  Ohrnstein-Uhlenbeck noise is lowpass filtered white noise.
+  \includegraphics[width=0.45\textwidth]{lifouisihdistr08-100ms}\hfill
+  \includegraphics[width=0.45\textwidth]{lifouisihdistr16-100ms}\\
+  More peaky than the inverse Gaussian!
+\end{frame}
+
+\begin{frame}
+  \frametitle{Interval return map of LIF with OU noise}
+  LIF $I=15.7$, $\tau_{OU}=100$\,ms:
+  \includegraphics[width=1\textwidth]{lifoureturnmap16-100ms}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Serial correlations of LIF with OU noise}
+  LIF $I=15.7$, $\tau_{OU}=100$\,ms:
+  \includegraphics[width=1\textwidth]{lifouserial16-100ms}\\
+  OU-noise introduces positive interval correlations!
+\end{frame}
+
+\begin{frame}
+  \frametitle{Count statistics of LIF with OU noise}
+  LIF $I=15.7$, $\tau_{OU}=100$\,ms:
+  \includegraphics[width=1\textwidth]{lifoufano16-100ms}\\
+  Fano factor increases with count window duration.
+\end{frame}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}
+  \frametitle{Interval statistics of LIF with adaptation}
+  \begin{eqnarray*}
+    \tau \frac{dV}{dt} & = & -V - A + RI + D\xi \\
+    \tau_{adapt} \frac{dA}{dt} & = & - A
+  \end{eqnarray*}
+  Adaptation $A$ with time constant $\tau_{adapt}$ and increment $\Delta A$ at spike.
+  \includegraphics[width=0.45\textwidth]{lifadaptisihdistr08-100ms}\hfill
+  \includegraphics[width=0.45\textwidth]{lifadaptisihdistr65-100ms}\\
+  Similar to LIF with white noise.
+\end{frame}
+
+\begin{frame}
+  \frametitle{Interval return map of LIF with adaptation}
+  LIF $I=10$, $\tau_{adapt}=100$\,ms:
+  \includegraphics[width=1\textwidth]{lifadaptreturnmap10-100ms}\\
+  Negative correlation at lag one.
+\end{frame}
+
+\begin{frame}
+  \frametitle{Serial correlations of LIF with adaptation}
+  LIF $I=10$, $\tau_{adapt}=100$\,ms:
+  \includegraphics[width=1\textwidth]{lifadaptserial10-100ms}\\
+  Adaptation with white noise introduces negative interval correlations!
+\end{frame}
+
+\begin{frame}
+  \frametitle{Count statistics of LIF with adaptation}
+  LIF $I=10$, $\tau_{adapt}=100$\,ms:
+  \includegraphics[width=1\textwidth]{lifadaptfano10-100ms}\\
+  Fano factor decreases with count window duration.
+\end{frame}
+
+
+\end{document}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Non stationary}
+\subsection{Inhomogeneous Poisson process}
+\subsection{Firing rate}
+\subsection{Instantaneous rate}
+\subsection{Autocorrelation}
+\subsection{Crosscorrelation}
+\subsection{Joint PSTH}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Renewal process}
+\subsection{Superthreshold firing}
+\subsection{Subthreshold firing}
+\section{Non-renewal processes}
+\subsection{Bursting}
+\subsection{Resonator}
+
+
+\subsection{Standard distributions}
+\subsubsection{Gamma}
+\subsubsection{How to read ISI histograms}
+refractoriness, poisson tail, sub-, supra-threshold, missed spikes
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{Correlation with stimulus}
+\subsection{Tuning curve}
+\subsection{Linear filter}
+\subsection{Spatiotemporal receptive field}
+\subsection{Generalized linear model}
+
+\begin{frame}
+\end{frame}
diff --git a/pointprocesses/lecture/pointprocesses.tex b/pointprocesses/lecture/pointprocesses.tex
index ff49cb2..58f3cd1 100644
--- a/pointprocesses/lecture/pointprocesses.tex
+++ b/pointprocesses/lecture/pointprocesses.tex
@@ -1,412 +1,168 @@
-\documentclass{beamer}
-
-%%%%% title %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\title[]{Scientific Computing --- Point Processes}
-\author[]{Jan Benda}
-\institute[]{Neuroethology}
-\date[]{WS 14/15}
-\titlegraphic{\includegraphics[width=0.3\textwidth]{UT_WBMW_Rot_RGB}}
-
-%%%%% beamer %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\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}
-%  \end{frame}
-%}
-
-\setbeamertemplate{blocks}[rounded][shadow=true]
-\setcounter{tocdepth}{1}
-
-%%%%% packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\usepackage[english]{babel}
-\usepackage{amsmath}
-\usepackage{bm} 
-\usepackage{pslatex}   % nice font for pdf file
-%\usepackage{multimedia}
-
-\usepackage{dsfont}
-\newcommand{\naZ}{\mathds{N}}
-\newcommand{\gaZ}{\mathds{Z}}
-\newcommand{\raZ}{\mathds{Q}}
-\newcommand{\reZ}{\mathds{R}}
-\newcommand{\reZp}{\mathds{R^+}}
-\newcommand{\reZpN}{\mathds{R^+_0}}
-\newcommand{\koZ}{\mathds{C}}
-
-%%%% graphics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\usepackage{graphicx}
-\newcommand{\texpicture}[1]{{\sffamily\small\input{#1.tex}}}
-
-%%%%% listings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\usepackage{listings}
-\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
- }
-
- 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{document} 
-
-\begin{frame}[plain]
-  \frametitle{}
-  \vspace{-1cm}
-  \titlepage % erzeugt Titelseite
-\end{frame}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{frame}
-  \frametitle{Content}
-  \tableofcontents
-\end{frame}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Point processes}
-
-\begin{frame}
-  \frametitle{Point process}
-  \vspace{-3ex}
-  \texpicture{pointprocessscetchA}
-
-  A point process is a stochastic (or random) process that generates a sequence of events
-  at times $\{t_i\}$, $t_i \in \reZ$.
-
-  For each point process there is an underlying continuous-valued
-  process evolving in time. The associated point process occurs when
-  the underlying continuous process crosses a threshold.
-  Examples:
-  \begin{itemize}
-  \item Spikes/heartbeat: generated by the dynamics of the membrane potential of neurons/heart cells.
-  \item Earth quakes: generated by the pressure dynamics between the tectonic plates on either side of a geological fault line.
-  \item Onset of cricket/frogs/birds/... songs: generated by the dynamics of the state of a nervous system.
-  \end{itemize}
-\end{frame}
+\chapter{\tr{Point processes}{Punktprozesse}}
 
-\begin{frame}
-  \frametitle{Point process}
+\begin{figure}[t]
   \texpicture{pointprocessscetchB}
-\end{frame}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Homogeneous Poisson process}
-
-\begin{frame}
-  \frametitle{Homogeneous Poisson process}
-  The probability $p(t)\delta t$ of an event occuring at time $t$
-  is independent of $t$ and independent of any previous event
-  (independent of event history).
-
-  The probability $P$ for an event occuring within a time bin of width $\Delta t$
-  is
-  \[ P=\lambda \cdot \Delta t \]
-  for a Poisson process with rate $\lambda$.
-  \includegraphics[width=1\textwidth]{poissonraster100hz}
-\end{frame}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Interval statistics}
-
-\begin{frame}
-  \frametitle{Rate}
-  Rate of events $r$ (``spikes per time'') measured in Hertz.
-  \begin{itemize}
-  \item Number of events $N$ per observation time $W$: $r = \frac{N}{W}$
-  \item Without boundary effects: $r = \frac{N-1}{t_N-t_1}$
-  \item Inverse interval: $r = \frac{1}{\mu_{ISI}}$
-  \end{itemize}
-\end{frame}
-
-\begin{frame}
-  \frametitle{(Interspike) interval statistics}
-  \begin{itemize}
-  \item Histogram $p(T)$ of intervals $T$. Normalized to $\int_0^{\infty} p(T) \; dT = 1$
-  \item Mean interval $\mu_{ISI} = \langle T \rangle = \frac{1}{n}\sum\limits_{i=1}^n T_i$
-  \item Variance of intervals $\sigma_{ISI}^2 = \langle (T - \langle T \rangle)^2 \rangle$\vspace{1ex}
-  \item Coefficient of variation $CV_{ISI} = \frac{\sigma_{ISI}}{\mu_{ISI}}$
-  \item Diffusion coefficient $D_{ISI} = \frac{\sigma_{ISI}^2}{2\mu_{ISI}^3}$
-  \vfill
-  \end{itemize}
+  \caption{\label{pointprocessscetchfig}Ein Punktprozess ist eine
+    Abfolge von Zeitpunkten $t_i$ die auch durch die Intervalle
+    $T_i=t_{i+1}-t_i$ oder die Anzahl der Ereignisse $n_i$ beschrieben
+    werden kann. }
+\end{figure}
+
+Ein zeitlicher Punktprozess ist ein stochastischer Prozess der eine Abfolge von Ereignissen zu den Zeiten $\{t_i\}$, $t_i \in \reZ$ generiert.
+
+Jeder Punktprozess wird durch einen sich in der Zeit kontinuierlichen
+entwickelnden Prozess generiert. Wann immer dieser Prozess eine Schwelle \"uberschreitet
+wird ein Ereigniss des Punktprozesses erzeugt. Zum Beispiel:
+\begin{itemize}
+\item Aktionspotentiale/Herzschlag: wird durch die Dynamik des
+  Membranpotentials eines Neurons/Herzzelle erzeugt.
+\item Erdbeben: wird durch die Dynamik des Druckes zwischen
+  tektonischen Platten auf beiden Seiten einer geologischen Verwerfung
+  erzeugt.
+\item Zeitpunkt eines Grillen/Frosch/Vogelgesangs: wird durch die
+  Dynamic des Nervensystems und des Muskelapparates erzeugt.
+\end{itemize}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+\section{Rate eines Punktprozesses}
+Rate of events $r$ (``spikes per time'') measured in Hertz.
+\begin{itemize}
+\item Number of events $N$ per observation time $W$: $r = \frac{N}{W}$
+\item Without boundary effects: $r = \frac{N-1}{t_N-t_1}$
+\item Inverse interval: $r = \frac{1}{\mu_{ISI}}$
+\end{itemize}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
+\section{Intervall Statistiken}
+
+\begin{figure}[t]
   \includegraphics[width=0.45\textwidth]{poissonisih100hz}\hfill
   \includegraphics[width=0.45\textwidth]{lifisih16}
-\end{frame}
-
-\begin{frame}
-  \frametitle{Interval statistics of homogeneous Poisson process}
-  \begin{itemize}
-  \item Exponential distribution of intervals $T$: $p(T) = \lambda e^{-\lambda T}$
-  \item Mean interval $\mu_{ISI} = \frac{1}{\lambda}$
-  \item Variance of intervals $\sigma_{ISI}^2 = \frac{1}{\lambda^2}$
-  \item Coefficient of variation $CV_{ISI} = 1$
-  \end{itemize}
-  \vfill
-  \includegraphics[width=0.45\textwidth]{poissonisihexp20hz}\hfill
-  \includegraphics[width=0.45\textwidth]{poissonisihexp100hz}
-\end{frame}
-
-\begin{frame}
-  \frametitle{Interval return maps}
-  Scatter plot between succeeding intervals separated by lag $k$.
-  \vfill
-  Poisson process $\lambda=100$\,Hz:
-  \includegraphics[width=1\textwidth]{poissonreturnmap100hz}\hfill
-\end{frame}
-
-\begin{frame}
-  \frametitle{Serial interval correlations}
-  Correlation coefficients between succeeding intervals separated by lag $k$:
-  \[ \rho_k = \frac{\langle (T_{i+k} - \langle T \rangle)(T_i - \langle T \rangle) \rangle}{\langle (T_i - \langle T \rangle)^2\rangle} = \frac{{\rm cov}(T_{i+k}, T_i)}{{\rm var}(T_i)} \]
-  \begin{itemize}
-  \item $\rho_0=1$ (correlation of each interval with itself).
-  \item Poisson process: $\rho_k =0$ for $k>0$ (renewal process!) 
-  \end{itemize}
-  \vfill
-  \includegraphics[width=0.7\textwidth]{poissonserial100hz}
-\end{frame}
+  \caption{\label{isihfig}Interspike-Intervall Histogramme von einem Poisson Prozess (links)
+    und einem Integrate-and-Fire Neuron (rechts).}
+\end{figure}
+
+\subsection{First order (Interspike) interval statistics}
+\begin{itemize}
+\item Histogram $p(T)$ of intervals $T$. Normalized to $\int_0^{\infty} p(T) \; dT = 1$
+\item Mean interval $\mu_{ISI} = \langle T \rangle = \frac{1}{n}\sum\limits_{i=1}^n T_i$
+\item Variance of intervals $\sigma_{ISI}^2 = \langle (T - \langle T \rangle)^2 \rangle$\vspace{1ex}
+\item Coefficient of variation $CV_{ISI} = \frac{\sigma_{ISI}}{\mu_{ISI}}$
+\item Diffusion coefficient $D_{ISI} = \frac{\sigma_{ISI}^2}{2\mu_{ISI}^3}$
+\end{itemize}
+
+\subsection{Interval return maps}
+Scatter plot between succeeding intervals separated by lag $k$.
+
+\begin{figure}[t]
+  \begin{minipage}[t]{0.49\textwidth}
+    LIF $I=10$, $\tau_{adapt}=100$\,ms:\\
+    \includegraphics[width=1\textwidth]{lifadaptreturnmap10-100ms}
+  \end{minipage}
+  \hfill
+  \begin{minipage}[t]{0.49\textwidth}
+    LIF $I=15.7$, $\tau_{OU}=100$\,ms:\\
+    \includegraphics[width=1\textwidth]{lifoureturnmap16-100ms}
+  \end{minipage}
+  \caption{\label{returnmapfig}Interspike-Intervall return maps.}
+\end{figure}
+
+\subsection{Serial correlations of the intervals}
+Correlation coefficients between succeeding intervals separated by lag $k$:
+\[ \rho_k = \frac{\langle (T_{i+k} - \langle T \rangle)(T_i - \langle T \rangle) \rangle}{\langle (T_i - \langle T \rangle)^2\rangle} = \frac{{\rm cov}(T_{i+k}, T_i)}{{\rm var}(T_i)} \]
+$\rho_0=1$ (correlation of each interval with itself).
+
+\begin{figure}[t]
+  \begin{minipage}[t]{0.49\textwidth}
+    LIF $I=10$, $\tau_{adapt}=100$\,ms:\\
+    \includegraphics[width=1\textwidth]{lifadaptserial10-100ms}
+  \end{minipage}
+  \hfill
+  \begin{minipage}[t]{0.49\textwidth}
+    LIF $I=15.7$, $\tau_{OU}=100$\,ms:\\
+    \includegraphics[width=1\textwidth]{lifouserial16-100ms}
+  \end{minipage}
+  \caption{\label{serialcorrfig}Serial correlations.}
+\end{figure}
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{Count statistics}
 
-\begin{frame}
-  \frametitle{Count statistics}
-  Histogram of number of events $N$ (counts) within observation window of duration $W$.
-
-  \vfill
+\begin{figure}[t]
   \includegraphics[width=0.48\textwidth]{poissoncounthist100hz10ms}\hfill
   \includegraphics[width=0.48\textwidth]{poissoncounthist100hz100ms}
-\end{frame}
-
-\begin{frame}
-  \frametitle{Count statistics of Poisson process}
-  Poisson distribution:
-  \[ P(k) = \frac{(\lambda W)^ke^{\lambda W}}{k!} \]
-
-  \vfill
-  \includegraphics[width=0.48\textwidth]{poissoncounthistdist100hz10ms}\hfill
-  \includegraphics[width=0.48\textwidth]{poissoncounthistdist100hz100ms}
-\end{frame}
-
-\begin{frame}
-  \frametitle{Count statistics --- Fano factor}
-  Statistics of number of events $N$ within observation window of duration $W$.
-  \begin{itemize}
-  \item Mean count: $\mu_N = \langle N \rangle$
-  \item Count variance: $\sigma_N^2 = \langle (N - \langle N \rangle)^2 \rangle$
-  \item Fano factor (variance divided by mean): $F = \frac{\sigma_N^2}{\mu_N}$
-  \item Poisson process: $F=1$
-  \end{itemize}
-  \vfill
-  Poisson process $\lambda=100$\,Hz:
-  \includegraphics[width=1\textwidth]{poissonfano100hz}
-\end{frame}
+  \caption{\label{countstatsfig}Count Statistik.}
+\end{figure}
+
+Histogram of number of events $N$ (counts) within observation window of duration $W$.
+
+\subsection{Fano factor}
+
+\begin{figure}[t]
+  \begin{minipage}[t]{0.49\textwidth}
+    Poisson process $\lambda=100$\,Hz:\\
+    \includegraphics[width=1\textwidth]{poissonfano100hz}
+  \end{minipage}
+  \hfill
+  \begin{minipage}[t]{0.49\textwidth}
+    LIF $I=10$, $\tau_{adapt}=100$\,ms:\\
+    \includegraphics[width=1\textwidth]{lifadaptfano10-100ms}
+  \end{minipage}
+  \caption{\label{fanofig}Fano factor.}
+\end{figure}
+
+Statistics of number of events $N$ within observation window of duration $W$.
+\begin{itemize}
+\item Mean count: $\mu_N = \langle N \rangle$
+\item Count variance: $\sigma_N^2 = \langle (N - \langle N \rangle)^2 \rangle$
+\item Fano factor (variance divided by mean): $F = \frac{\sigma_N^2}{\mu_N}$
+\end{itemize}
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Integrate-and-fire models}
-
-\begin{frame}
-  \frametitle{Integrate-and-fire models}
-  Leaky integrate-and-fire model (LIF):
-  \[ \tau \frac{dV}{dt} = -V + RI + D\xi \]
-  Whenever membrane potential $V(t)$ crosses the firing threshold $\theta$, a spike is emitted and
-  $V(t)$ is reset to $V_{reset}$.
-  \begin{itemize}
-  \item $\tau$: membrane time constant (typically 10\,ms)
-  \item $R$: input resistance (here 1\,mV (!))
-  \item $D\xi$: additive Gaussian white noise of strength $D$
-  \item $\theta$: firing threshold (here 10\,mV)
-  \item $V_{reset}$: reset potential (here 0\,mV)
-  \end{itemize}
-\end{frame}
-
-\begin{frame}
-  \frametitle{Integrate-and-fire models}
-  Discretization with time step $\Delta t$: $V(t) \rightarrow V_i,\;t_i = i \Delta t$.\\
-  Euler integration:
-  \begin{eqnarray*}
-    \frac{dV}{dt} & \approx & \frac{V_{i+1} - V_i}{\Delta t} \\
-    \Rightarrow \quad V_{i+1} & = & V_i + \Delta t \frac{-V_i+RI_i+\sqrt{2D\Delta t}N_i}{\tau}
-  \end{eqnarray*}
-  $N_i$ are normally distributed random numbers (Gaussian with zero mean and unit variance)
-  --- the $\sqrt{\Delta t}$ is for white noise.
-
-  \includegraphics[width=0.82\textwidth]{lifraster16}
-\end{frame}
-
-\begin{frame}
-  \frametitle{Interval statistics of LIF}
-  Interval distribution approaches Inverse Gaussian for large $I$:
-  \[ p(T) = \frac{1}{\sqrt{4\pi D T^3}}\exp\left[-\frac{(T-\langle T \rangle)^2}{4DT\langle T \rangle^2}\right] \]
-  where $\langle T \rangle$ is the mean interspike interval and $D$
-  is the diffusion coefficient.
-  \vfill
-  \includegraphics[width=0.45\textwidth]{lifisihdistr08}\hfill
-  \includegraphics[width=0.45\textwidth]{lifisihdistr16}
-\end{frame}
-
-\begin{frame}
-  \frametitle{Interval statistics of PIF}
-  For the perfect integrate-and-fire (PIF)
-  \[ \tau \frac{dV}{dt} =  RI + D\xi \]
-  (the canonical model or supra-threshold firing on a limit cycle)\\
-  the Inverse Gaussian describes exactly the interspike interval distribution.
-  \vfill
-  \includegraphics[width=0.45\textwidth]{pifisihdistr01}\hfill
-  \includegraphics[width=0.45\textwidth]{pifisihdistr10}
-\end{frame}
-
-\begin{frame}
-  \frametitle{Interval return map of LIF}
-  LIF $I=15.7$:
-  \includegraphics[width=1\textwidth]{lifreturnmap16}
-\end{frame}
-
-\begin{frame}
-  \frametitle{Serial correlations of LIF}
-  LIF $I=15.7$:
-  \includegraphics[width=1\textwidth]{lifserial16}\\
-  Integrate-and-fire driven with white noise are still renewal processes!
-\end{frame}
-
-\begin{frame}
-  \frametitle{Count statistics of LIF}
-  LIF $I=15.7$:
-  \includegraphics[width=1\textwidth]{liffano16}\\
-  Fano factor is not one!
-\end{frame}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{frame}
-  \frametitle{Interval statistics of LIF with OU noise}
-  \begin{eqnarray*}
-    \tau \frac{dV}{dt} & = & -V + RI + U \\
-    \tau_{OU} \frac{dU}{dt} & = & - U + D\xi
-  \end{eqnarray*}
-  Ohrnstein-Uhlenbeck noise is lowpass filtered white noise.
-  \includegraphics[width=0.45\textwidth]{lifouisihdistr08-100ms}\hfill
-  \includegraphics[width=0.45\textwidth]{lifouisihdistr16-100ms}\\
-  More peaky than the inverse Gaussian!
-\end{frame}
-
-\begin{frame}
-  \frametitle{Interval return map of LIF with OU noise}
-  LIF $I=15.7$, $\tau_{OU}=100$\,ms:
-  \includegraphics[width=1\textwidth]{lifoureturnmap16-100ms}
-\end{frame}
-
-\begin{frame}
-  \frametitle{Serial correlations of LIF with OU noise}
-  LIF $I=15.7$, $\tau_{OU}=100$\,ms:
-  \includegraphics[width=1\textwidth]{lifouserial16-100ms}\\
-  OU-noise introduces positive interval correlations!
-\end{frame}
+\section{\tr{Homogeneous Poisson process}{Homogener Poisson Prozess}}
 
-\begin{frame}
-  \frametitle{Count statistics of LIF with OU noise}
-  LIF $I=15.7$, $\tau_{OU}=100$\,ms:
-  \includegraphics[width=1\textwidth]{lifoufano16-100ms}\\
-  Fano factor increases with count window duration.
-\end{frame}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{frame}
-  \frametitle{Interval statistics of LIF with adaptation}
-  \begin{eqnarray*}
-    \tau \frac{dV}{dt} & = & -V - A + RI + D\xi \\
-    \tau_{adapt} \frac{dA}{dt} & = & - A
-  \end{eqnarray*}
-  Adaptation $A$ with time constant $\tau_{adapt}$ and increment $\Delta A$ at spike.
-  \includegraphics[width=0.45\textwidth]{lifadaptisihdistr08-100ms}\hfill
-  \includegraphics[width=0.45\textwidth]{lifadaptisihdistr65-100ms}\\
-  Similar to LIF with white noise.
-\end{frame}
-
-\begin{frame}
-  \frametitle{Interval return map of LIF with adaptation}
-  LIF $I=10$, $\tau_{adapt}=100$\,ms:
-  \includegraphics[width=1\textwidth]{lifadaptreturnmap10-100ms}\\
-  Negative correlation at lag one.
-\end{frame}
-
-\begin{frame}
-  \frametitle{Serial correlations of LIF with adaptation}
-  LIF $I=10$, $\tau_{adapt}=100$\,ms:
-  \includegraphics[width=1\textwidth]{lifadaptserial10-100ms}\\
-  Adaptation with white noise introduces negative interval correlations!
-\end{frame}
-
-\begin{frame}
-  \frametitle{Count statistics of LIF with adaptation}
-  LIF $I=10$, $\tau_{adapt}=100$\,ms:
-  \includegraphics[width=1\textwidth]{lifadaptfano10-100ms}\\
-  Fano factor decreases with count window duration.
-\end{frame}
-
-
-\end{document}
+\begin{figure}[t]
+  \includegraphics[width=1\textwidth]{poissonraster100hz}
+  \caption{\label{hompoissonfig}Rasterplot von Poisson-Spikes.}
+\end{figure}
 
+The probability $p(t)\delta t$ of an event occuring at time $t$
+is independent of $t$ and independent of any previous event
+(independent of event history).
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Non stationary}
-\subsection{Inhomogeneous Poisson process}
-\subsection{Firing rate}
-\subsection{Instantaneous rate}
-\subsection{Autocorrelation}
-\subsection{Crosscorrelation}
-\subsection{Joint PSTH}
+The probability $P$ for an event occuring within a time bin of width $\Delta t$
+is
+\[ P=\lambda \cdot \Delta t \]
+for a Poisson process with rate $\lambda$.
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Renewal process}
-\subsection{Superthreshold firing}
-\subsection{Subthreshold firing}
-\section{Non-renewal processes}
-\subsection{Bursting}
-\subsection{Resonator}
+\subsection{Statistics of homogeneous Poisson process}
 
+\begin{figure}[t]
+  \includegraphics[width=0.45\textwidth]{poissonisihexp20hz}\hfill
+  \includegraphics[width=0.45\textwidth]{poissonisihexp100hz}
+  \caption{\label{hompoissonisihfig}Interspike interval histograms of poisson spike train.}
+\end{figure}
 
-\subsection{Standard distributions}
-\subsubsection{Gamma}
-\subsubsection{How to read ISI histograms}
-refractoriness, poisson tail, sub-, supra-threshold, missed spikes
+\begin{itemize}
+\item Exponential distribution of intervals $T$: $p(T) = \lambda e^{-\lambda T}$
+\item Mean interval $\mu_{ISI} = \frac{1}{\lambda}$
+\item Variance of intervals $\sigma_{ISI}^2 = \frac{1}{\lambda^2}$
+\item Coefficient of variation $CV_{ISI} = 1$
+\item Serial correlation $\rho_k =0$ for $k>0$ (renewal process!)   
+\item Fano factor $F=1$
+\end{itemize}
 
+\subsection{Count statistics of Poisson process}
 
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Correlation with stimulus}
-\subsection{Tuning curve}
-\subsection{Linear filter}
-\subsection{Spatiotemporal receptive field}
-\subsection{Generalized linear model}
+\begin{figure}[t]
+  \includegraphics[width=0.48\textwidth]{poissoncounthistdist100hz10ms}\hfill
+  \includegraphics[width=0.48\textwidth]{poissoncounthistdist100hz100ms}
+  \caption{\label{hompoissoncountfig}Count statistics of poisson spike train.}
+\end{figure}
 
-\begin{frame}
-\end{frame}
+Poisson distribution:
+\[ P(k) = \frac{(\lambda W)^ke^{\lambda W}}{k!} \]
\ No newline at end of file
diff --git a/pointprocesses/lecture/pointprocessscetchA.eps b/pointprocesses/lecture/pointprocessscetchA.eps
index 95a12ae..83dc344 100644
--- a/pointprocesses/lecture/pointprocessscetchA.eps
+++ b/pointprocesses/lecture/pointprocessscetchA.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0 EPSF-2.0
 %%Title: pointprocessscetchA.tex
 %%Creator: gnuplot 4.6 patchlevel 4
-%%CreationDate: Sun Oct 26 14:09:12 2014
+%%CreationDate: Sun Oct 25 21:47:09 2015
 %%DocumentFonts: 
 %%BoundingBox: 50 50 373 135
 %%EndComments
@@ -433,7 +433,7 @@ SDict begin [
   /Author (jan)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sun Oct 26 14:09:12 2014)
+  /CreationDate (Sun Oct 25 21:47:09 2015)
   /DOCINFO pdfmark
 end
 } ifelse
diff --git a/pointprocesses/lecture/pointprocessscetchA.pdf b/pointprocesses/lecture/pointprocessscetchA.pdf
index dcc5228f9b0ab322ff4b83108752d0299349e24b..145657e0e5209c6af815f746b030223f1ebdb5a1 100644
GIT binary patch
delta 319
zcmX>rdRBD9QDz~-q|{_1Lz86PBx7?kT|>h(gUJh7r6zx5&cZGwJ-LI$RKQf%&_LJ7
zG{nfz%Ea8tz;g0g784#*D+MDfuz;22WM0-L>;^<)7Z#o@&!&Q1N@{aHTQrlFsRGP4
z1tSAPQ%x>?-~1Gp#FA7E7b}o}p@ESp&?n{wmYctD)G)?6n_IZKIU5-}xwsk|7`T}k
yTN)UcSh^TES-LqpIlGwJ*$`9_%VlTBRa}x-R8motn#N^hVrayrs_N?R#svUu*;0xC

delta 319
zcmX>rdRBD9QD&hO<1~wuBx6fmOH-p1T|>jvw8;xur6zx5&cZGwJ-LI$RKP^n&_LJ7
zEX2^n%D~df&}i~m784#bD+NO<uz;1(WM0-L>;^<)7Z#o@&!&Q1N@{aHTQrlFnF7o<
z1tSAP6HP9C-~1Gp#FA7E7b}o}p@ET^p^1T|q0#0q95sxw7RFAdMn-OC#+K$rZWd;4
zrWO_!2BsD+CI*f!MkdCFb~Xf6#B$l$aTS*&7L`;KrKWKinHU;zsj9mAyKw;kX4z8(

diff --git a/pointprocesses/lecture/pointprocessscetchB.eps b/pointprocesses/lecture/pointprocessscetchB.eps
index d204109..a1e7442 100644
--- a/pointprocesses/lecture/pointprocessscetchB.eps
+++ b/pointprocesses/lecture/pointprocessscetchB.eps
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0 EPSF-2.0
 %%Title: pointprocessscetchB.tex
 %%Creator: gnuplot 4.6 patchlevel 4
-%%CreationDate: Sun Oct 26 17:34:18 2014
+%%CreationDate: Sun Oct 25 21:47:09 2015
 %%DocumentFonts: 
 %%BoundingBox: 50 50 373 237
 %%EndComments
@@ -433,7 +433,7 @@ SDict begin [
   /Author (jan)
 %  /Producer (gnuplot)
 %  /Keywords ()
-  /CreationDate (Sun Oct 26 17:34:18 2014)
+  /CreationDate (Sun Oct 25 21:47:09 2015)
   /DOCINFO pdfmark
 end
 } ifelse
diff --git a/pointprocesses/lecture/pointprocessscetchB.pdf b/pointprocesses/lecture/pointprocessscetchB.pdf
index a4c7e8c9a013f825448132645579fa4706741d3a..ce8a1f1c16c0af87f4fb3dcc65b4fde642f7a9e9 100644
GIT binary patch
delta 317
zcmX@8a!_T1CAW}aQfji1p-HlClCim&uAyO?!Q_YBQj=4;v#?7A@SExy8t59Ch8P)I
znV4G{Om^Tg<uSEVFtP&ktt=-u@-$)BD?QnO*ABas@Z`z7D%ho@Hb3T#X3{iOfLds&
zU}Ruus>!AAo1fy6SdyyYVg(W~G%zv+dc@pdbGkq+W2~8xshg{*xrL#DnSq(Pfs?VZ
wv#EibrK!22k*l$*laZYbK^3uFc6MCFC5c5P6-B9OTqedw23)GDuKsRZ0I70O%m4rY

delta 317
zcmX@8a!_T1CAW}yl7)$Zxv`0^rKw4xuAyOS+T@4aQj=4;v#?7A@SErw8t59Cg&3M!
z8Jk!cPIlli<uS8TFth^mtt=)t@-$)BD?QnO*ABas@Z`z7D%ho@Hb3T#X3{iMfLdsw
zU}RuuqRFN2o1fy6SdyyYVg(W~G%zwV1bW19bGkq+W2}LTk%f!7i=~;Rvzd#Fxw)mY
vxsi({P}<ni#mULc(9VXSidZf?JFeoA#G;alqSQ1l6JsL-E>%@me>W}wX8Tae

diff --git a/scientificcomputing-script.tex b/scientificcomputing-script.tex
index 306a84a..8cbde10 100644
--- a/scientificcomputing-script.tex
+++ b/scientificcomputing-script.tex
@@ -59,7 +59,8 @@
 
 % figures:
 \setlength{\fboxsep}{0pt}
-\newcommand{\texpicture}[1]{{\sffamily\footnotesize\input{#1.tex}}}
+\newcommand{\texinputpath}{}
+\newcommand{\texpicture}[1]{{\sffamily\footnotesize\input{\texinputpath#1.tex}}}
 %\newcommand{\texpicture}[1]{\fbox{\sffamily\footnotesize\input{#1.tex}}}
 %\newcommand{\texpicture}[1]{\setlength{\fboxsep}{2mm}\fbox{#1}}
 %\newcommand{\texpicture}[1]{}
@@ -213,7 +214,7 @@
   \arabic{theexercise}:}\newline \newcommand{\exercisesource}{#1}}%
   {\ifthenelse{\equal{\exercisesource}{}}{}{\ifthenelse{\value{theexercise}>\value{maxexercise}}{}{\medskip\lstinputlisting{\codepath\exercisesource}}}\medskip\stepcounter{theexercise}}
 
-\graphicspath{{statistics/lecture/}{statistics/lecture/figures/}{bootstrap/lecture/}{bootstrap/lecture/figures/}{likelihood/lecture/}{likelihood/lecture/figures/}}
+\graphicspath{{statistics/lecture/}{statistics/lecture/figures/}{bootstrap/lecture/}{bootstrap/lecture/figures/}{likelihood/lecture/}{likelihood/lecture/figures/}{pointprocesses/lecture/}{pointprocesses/lecture/figures/}}
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -233,4 +234,8 @@
 \renewcommand{\codepath}{likelihood/code/}
 \include{likelihood/lecture/likelihood}
 
+\renewcommand{\codepath}{pointprocesses/code/}
+\renewcommand{\texinputpath}{pointprocesses/lecture/}
+\include{pointprocesses/lecture/pointprocesses}
+
 \end{document}
diff --git a/statistics/lecture/Makefile b/statistics/lecture/Makefile
index 445913e..ec84405 100644
--- a/statistics/lecture/Makefile
+++ b/statistics/lecture/Makefile
@@ -1,22 +1,29 @@
 BASENAME=statistics
+
 PYFILES=$(wildcard *.py)
 PYPDFFILES=$(PYFILES:.py=.pdf)
 
-pdf : $(BASENAME)-chapter.pdf $(PYPDFFILES)
+all : pdf 
+
+# script:
+pdf : $(BASENAME)-chapter.pdf
 
-$(BASENAME)-chapter.pdf : $(BASENAME)-chapter.tex $(BASENAME).tex
+$(BASENAME)-chapter.pdf : $(BASENAME)-chapter.tex $(BASENAME).tex $(PYPDFFILES)
 	pdflatex -interaction=scrollmode $< | tee /dev/stderr | fgrep -q "Rerun to get cross-references right" && pdflatex -interaction=scrollmode $< || true
 
 $(PYPDFFILES) : %.pdf : %.py
 	python $<
 
 clean :
-	rm -f *~ $(BASENAME)-chapter.aux $(BASENAME)-chapter.log $(BASENAME)-chapter.out $(BASENAME).aux $(BASENAME).log
+	rm -f *~ 
+	rm -f $(BASENAME).aux $(BASENAME).log
+	rm -f $(BASENAME)-chapter.aux $(BASENAME)-chapter.log $(BASENAME)-chapter.out
+	rm -f $(PYPDFFILES) $(GPTTEXFILES)
 
 cleanall : clean
 	rm -f $(BASENAME)-chapter.pdf
 
-watch :
+watchpdf :
 	while true; do ! make -q pdf && make pdf; sleep 0.5; done
 
 
diff --git a/statistics/lecture/boxwhisker.py b/statistics/lecture/boxwhisker.py
index 1209f7e..38a0dcb 100644
--- a/statistics/lecture/boxwhisker.py
+++ b/statistics/lecture/boxwhisker.py
@@ -43,5 +43,5 @@ ax.annotate('maximum',
 ax.boxplot( x, whis=100.0 )
 plt.tight_layout()
 plt.savefig('boxwhisker.pdf')
-plt.show()
+#plt.show()
 
diff --git a/statistics/lecture/correlation.py b/statistics/lecture/correlation.py
index db317c7..2fa85d4 100644
--- a/statistics/lecture/correlation.py
+++ b/statistics/lecture/correlation.py
@@ -5,7 +5,6 @@ plt.xkcd()
 fig = plt.figure( figsize=(6,5) )
 n = 200
 for k, r  in enumerate( [ 1.0, 0.6, 0.0, -0.9 ] ) :
-    print r
     x = np.random.randn( n )
     y = r*x + np.sqrt(1.0-r*r)*np.random.randn( n )
     ax = fig.add_subplot( 2, 2, k+1 )
@@ -30,5 +29,4 @@ for k, r  in enumerate( [ 1.0, 0.6, 0.0, -0.9 ] ) :
 
 plt.tight_layout()
 plt.savefig('correlation.pdf')
-plt.show()
-
+#plt.show()
diff --git a/statistics/lecture/diehistograms.py b/statistics/lecture/diehistograms.py
index d5e0380..a8832e0 100644
--- a/statistics/lecture/diehistograms.py
+++ b/statistics/lecture/diehistograms.py
@@ -28,5 +28,4 @@ ax.set_ylabel( 'Probability' )
 ax.hist([x2, x1], bins, normed=True, color=['#FFCC00', '#FFFF66' ])
 plt.tight_layout()
 fig.savefig( 'diehistograms.pdf' )
-plt.show()
-
+#plt.show()
diff --git a/statistics/lecture/median.py b/statistics/lecture/median.py
index 2bf420c..a1231f9 100644
--- a/statistics/lecture/median.py
+++ b/statistics/lecture/median.py
@@ -29,5 +29,4 @@ ax.plot(x,g, 'b', lw=4)
 ax.plot([0.0, 0.0], [0.0, 0.45], 'k', lw=2 )
 plt.tight_layout()
 fig.savefig( 'median.pdf' )
-plt.show()
-
+#plt.show()
diff --git a/statistics/lecture/nonlincorrelation.py b/statistics/lecture/nonlincorrelation.py
index c0ca723..498d985 100644
--- a/statistics/lecture/nonlincorrelation.py
+++ b/statistics/lecture/nonlincorrelation.py
@@ -39,4 +39,4 @@ ax.scatter( x, z )
 
 plt.tight_layout()
 plt.savefig('nonlincorrelation.pdf')
-plt.show()
+#plt.show()
diff --git a/statistics/lecture/pdfhistogram.py b/statistics/lecture/pdfhistogram.py
index 039b524..a61460e 100644
--- a/statistics/lecture/pdfhistogram.py
+++ b/statistics/lecture/pdfhistogram.py
@@ -35,5 +35,5 @@ ax.hist(r, 20, normed=True, color='#FFCC00')
 
 plt.tight_layout()
 fig.savefig( 'pdfhistogram.pdf' )
-plt.show()
+#plt.show()
 
diff --git a/statistics/lecture/pdfprobabilities.py b/statistics/lecture/pdfprobabilities.py
index 6481da1..bcbaa09 100644
--- a/statistics/lecture/pdfprobabilities.py
+++ b/statistics/lecture/pdfprobabilities.py
@@ -32,5 +32,4 @@ ax.fill_between( x[(x>x1)&(x<x2)], 0.0, g[(x>x1)&(x<x2)], color='#cc0000' )
 ax.plot(x,g, 'b', lw=4)
 plt.tight_layout()
 fig.savefig( 'pdfprobabilities.pdf' )
-plt.show()
-
+#plt.show()
diff --git a/statistics/lecture/quartile.py b/statistics/lecture/quartile.py
index 34b9960..dbdd202 100644
--- a/statistics/lecture/quartile.py
+++ b/statistics/lecture/quartile.py
@@ -46,5 +46,4 @@ ax.plot([q[0], q[0]], [0.0, 0.4], 'k', lw=2 )
 ax.plot([q[2], q[2]], [0.0, 0.4], 'k', lw=2 )
 plt.tight_layout()
 fig.savefig( 'quartile.pdf' )
-plt.show()
-
+#plt.show()