\documentclass[14pt,compress]{beamer}
%\documentclass[draft]{beamer}
%\documentclass[compress,handout]{beamer}
%\usepackage{pgfpages}
%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm]

% Modified from: generic-ornate-15min-45min.de.tex
\mode<presentation>
{
  \usetheme{Warsaw}
  \useoutertheme{infolines}
  \setbeamercovered{transparent}
}

\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
%\usepackage{times}
\usepackage[T1]{fontenc}
\usepackage{pgf}

% Taken from Fernando's slides.
\usepackage{ae,aecompl}
\usepackage{mathpazo,courier,euler}
\usepackage[scaled=.95]{helvet}
\usepackage{amsmath}

\definecolor{darkgreen}{rgb}{0,0.5,0}

\usepackage{listings}
\lstset{language=Python,
    basicstyle=\ttfamily\bfseries,
    commentstyle=\color{red}\itshape,
  stringstyle=\color{darkgreen},
  showstringspaces=false,
  keywordstyle=\color{blue}\bfseries}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Macros
\setbeamercolor{emphbar}{bg=blue!20, fg=black}
\newcommand{\emphbar}[1]
{\begin{beamercolorbox}[rounded=true]{emphbar}
      {#1}
 \end{beamercolorbox}
}

\newcommand{\myemph}[1]{\structure{\emph{#1}}}
\newcommand{\PythonCode}[1]{\lstinline{#1}}

\newcounter{time}
\setcounter{time}{0}
\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}}

\newcommand{\typ}[1]{\lstinline{#1}}

\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}}  }


\newcommand\BackgroundPicture[1]{%
  \setbeamertemplate{background}{%
      \parbox[c][\paperheight]{\paperwidth}{%
      \vfill \hfill
        \pgfimage[width=1.0\paperwidth,height=1.0\paperheight]{#1}
 \hfill \vfill
}}}

% For non-wide pictures, set the width so that the height scales
% appropriately.
\newcommand\BackgroundPictureWidth[1]{%
  \setbeamertemplate{background}{%
      \parbox[c][\paperheight]{\paperwidth}{%
      \vfill \hfill
        \pgfimage[width=1.0\paperwidth]{#1}
 \hfill \vfill
}}}

% For shorter pictures, set the height so that the width scales
% appropriately.
\newcommand\BackgroundPictureHeight[1]{%
  \setbeamertemplate{background}{%
      \parbox[c][\paperheight]{\paperwidth}{%
        \vfill \hfill
        \pgfimage[height=1.0\paperheight]{#1}
 \hfill \vfill
}}}

%%% This is from Fernando's setup.
% \usepackage{color}
% \definecolor{orange}{cmyk}{0,0.4,0.8,0.2}
% % Use and configure listings package for nicely formatted code
% \usepackage{listings}
% \lstset{
%    language=Python,
%    basicstyle=\small\ttfamily,
%    commentstyle=\ttfamily\color{blue},
%    stringstyle=\ttfamily\color{orange},
%    showstringspaces=false,
%    breaklines=true,
%    postbreak = \space\dots
% }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Title page
\title[IPython notebooks]{Introductory Scientific Computing with
Python}
\subtitle{IPython notebooks}

\author{FOSSEE}

\institute[FOSSEE -- IITB] {Department of Aerospace Engineering\\IIT Bombay}
\date[] {
Mumbai, India
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%\pgfdeclareimage[height=0.75cm]{iitmlogo}{iitmlogo}
%\logo{\pgfuseimage{iitmlogo}}


%% Delete this, if you do not want the table of contents to pop up at
%% the beginning of each subsection:
\AtBeginSubsection[]
{
  \begin{frame}<beamer>
    \frametitle{Outline}
    \tableofcontents[currentsection,currentsubsection]
  \end{frame}
}

\AtBeginSection[]
{
  \begin{frame}<beamer>
    \frametitle{Outline}
    \tableofcontents[currentsection,currentsubsection]
  \end{frame}
}

% If you wish to uncover everything in a step-wise fashion, uncomment
% the following command:
%\beamerdefaultoverlayspecification{<+->}

%\includeonlyframes{current,current1,current2,current3,current4,current5,current6}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% DOCUMENT STARTS
\begin{document}

\begin{frame}
  \maketitle
\end{frame}

\begin{frame}[fragile]
  \frametitle{Introduction}
  \begin{itemize}
  \item Have used the IPython console so far
    \begin{itemize}
    \item Terminal: \typ{ipython}
    \item GUI: \typ{qtconsole}
    \end{itemize}
  \item Powerful and convenient
  \item Must be installed as a package
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{IPython notebook}
  \begin{itemize}
  \item Create and share documents containing
    \begin{itemize}
    \item live code
    \item equations
    \item visualizations
    \item interactive widgets
    \item explanatory text
    \end{itemize}
  \item A web application
  \end{itemize}
\end{frame}


\BackgroundPicture{data/notebook/jupyter-interface}
\begin{frame}[plain]
\end{frame}
\BackgroundPicture{data/intro/blank}

\begin{frame}
  \frametitle{Jupyter}
  \begin{itemize}
  \item Open source, interactive data science and computing
  \item Brings IPython-like features to other languages
  \item Console
  \item Notebooks
  \item Other tools: jupyterhub, nbviewer, etc.
  \end{itemize}
\end{frame}

\BackgroundPictureWidth{data/notebook/jupyter_logo}
\begin{frame}[plain]
\end{frame}
\BackgroundPicture{data/intro/blank}

\begin{frame}
  \frametitle{IPython and Jupyter}
  \begin{itemize}
  \item IPython provides Python specific functionality
  \item Python \textbf{kernel}
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Getting started: IPython}
Console
  \begin{lstlisting}
$ ipython
\end{lstlisting} %$
\vspace*{0.25in}
The notebook:
  \begin{lstlisting}
$ ipython notebook
\end{lstlisting} %$
\end{frame}

\begin{frame}[fragile]
  \frametitle{Getting started: Jupyter}
  \begin{lstlisting}
$ jupyter console
\end{lstlisting} %$
\vspace*{0.25in}
The notebook:
  \begin{lstlisting}
$ jupyter notebook
\end{lstlisting} %$
\end{frame}

\begin{frame}[fragile]
  \frametitle{IPython notebooks and Canopy}
  \begin{itemize}
  \item Can directly open \typ{*.ipynb} files from Canopy
  \item Or create a new notebook using the File menu
  \end{itemize}
\end{frame}


\begin{frame}[fragile]
  \frametitle{Pylab mode}
  \begin{lstlisting}
In []: %pylab
  \end{lstlisting} %$
Or:
  \begin{lstlisting}
In []: %matplotlib
  \end{lstlisting} %$
\end{frame}

\begin{frame}[fragile]
  \frametitle{Using matplotlib}
  \small
  \begin{lstlisting}
In []: %matplotlib
In []: from matplotlib import pyplot as plt
In []: from numpy import linspace, sin
In []: x = linspace(0, 2*pi)
In []: plt.plot(x, sin(x))
  \end{lstlisting}
\end{frame}

\begin{frame}[fragile]
  \frametitle{What is the difference?}
  \begin{itemize}
  \item \typ{\%pylab}: imports pylab
  \item \typ{\%matplotlib}: just sets up the plotting, no imports
  \item Using explicit imports is cleaner
  \item \typ{pyplot} provides the useful functionality
  \item Could also just import \typ{pylab}
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Using the IPython notebook}

  \begin{itemize}
  \item Start the notebook
  \item Try:
    \typ{jupyter notebook}
  \item If that doesn't work use \typ{ipython notebook}
  \item Create a new Python 2 or Python 3 notebook
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Basic Notebook Demo}
  \begin{center}
    Open the \typ{sample.ipynb} file provided
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Exercise}
  \begin{itemize}
  \item Start the notebook
  \item Create a new notebook
  \item Try the interface tour (Help->Interface tour)
  \item Add some markdown text, an image, and a simple equation
  \item Write some simple code in multiple cells
  \item Add code from \typ{four_plot.py} and run it
  \end{itemize}
\end{frame}

\begin{frame}[fragile]
  \frametitle{More resources}
  \begin{itemize}
  \item \href{https://daringfireball.net/projects/markdown/syntax}{Markdown syntax}
  \item \href{http://ipython.org}{IPython website}
  \item \href{http://ipython.org/documentation.html}{IPython documentation}
  \item \href{http://jupyter.org}{Jupyter website}
  \item \href{https://jupyter.readthedocs.io/en/latest/index.html}{Jupyter documentation}
  \item
    \href{https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/}{Jupyter
    notebook tips and tricks}
  \item \href{https://nbviewer.jupyter.org}{Example notebooks}
  \item \href{http://tbc-python.fossee.in}{Python textbook companions}
  \end{itemize}
\end{frame}


\end{document}