Repository

Scipy-Bordeaux-2017

Course taught at the University of Bordeaux in the academic year 2017 for PhD students.

Day 1
Monday February 6th, 2017
09:00
Installation & Welcome
09:15
Introduction
10:30
Coffee break

Specs

  • Day 1Monday February 6th, 2017
  • 09:00Installation & Welcome
  • 09:15Introduction
  • 10:30Coffee break
  • 10:45Introduction
  • 12:00Lunch break
  • 14:00Programmation
  • 15:30Coffee break & questions
  • 15:45Programmation
  • 17:00Wrap-up
  • Day 2Tuesday February 7th, 2017
  • 09:15Computation I
  • 10:30Coffee break
  • 10:45Computation I
  • 12:00Lunch break
  • 14:00Visualization I
  • 15:30Coffee break & questions
  • 15:45Visualization I
  • 17:00Wrap-up
  • Day 3Monday February 9th, 2017
  • 09:00Computation II
  • 10:30Coffee break
  • 10:45Computation II
  • 12:00Lunch break
  • 14:00Version control
  • 15:30Coffee break & questions
  • 15:45Version control
  • 17:00Wrap-up
  • Day 4Tuesday February 10th, 2017
  • 09:15C/Python integration
  • 10:30Coffee break
  • 10:45C/Python integration
  • 12:00Lunch break
  • 14:00Visualization II
  • 15:30Coffee break & questions
  • 15:45Visualization II
  • 17:00Wrap-up

README

Scientific Python course

Introduction <a name="introduction"></a>

Lecture notes from the course taught at the University of Bordeaux in the
academic year 2017 for PhD students. Each student needs to come with a
notebook computer running either Linux, OSX or Windows.

Adapted from https://xkcd.com/353/

|

The scientific Python ecosystem is made of several modules that constitute
together the scientific stack. There are hundreds of [Python scientific
packages] and most of them are built on top of numpy, scipy, matplotib, pandas,
cython and/or sympy. We won't cover everything in this short course, but you
should get enough information to decide if your research can benefit from
Python. And I bet it will likely do.

This course is mostly based on the teaching material kindly provided by:

Beginner course <a name="beginner-course"></a>

Schedule <a name="beginner-schedule"></a>

Day 1 Monday February 6th, 2017
09:00 Installation & Welcome
09:15 Introduction
10:30 Coffee break
10:45 Introduction
12:00 Lunch break
14:00 Programmation
15:30 Coffee break & questions
15:45 Programmation
17:00 Wrap-up
Day 2 Tuesday February 7th, 2017
09:15 Computation I
10:30 Coffee break
10:45 Computation I
12:00 Lunch break
14:00 Visualization I
15:30 Coffee break & questions
15:45 Visualization I
17:00 Wrap-up

Content <a name="beginner-content"></a>

Introduction

This gentle introduction to Python explains how to install
Python and introduces some very simple concepts related to numerical
expressions and other data types.

Programming with Python

[Scipy Lecture
Notes]. This
lecture
does not attempt to be comprehensive and cover every single feature, or even
every commonly used feature. Instead, it introduces many of Python's most
noteworthy features, and will give you a good idea of the language’s flavor and
style.

See also:

Computation I

Scipy Lecture Notes. The primary goal of
this lesson is to
introduce the numpy (numerical python) module which is de facto the standard
module for numerical computing with Python. It is essential for you to become
familiar with this module since it will be used everywhere in the next lessons.

See also:

Scientific visualization I

This tutorial gives an
overview of Matplotlib, the core tool for 2D & 2.5D plotting that produces
publication quality figures as well as interactive environments across
platforms.

See also:

Advanced course <a name="advanced-course"></a>

Schedule <a name="advanced-schedule"></a>

Day 3 Monday February 9th, 2017
09:00 Computation II
10:30 Coffee break
10:45 Computation II
12:00 Lunch break
14:00 Version control
15:30 Coffee break & questions
15:45 Version control
17:00 Wrap-up
Day 4 Tuesday February 10th, 2017
09:15 C/Python integration
10:30 Coffee break
10:45 C/Python integration
12:00 Lunch break
14:00 Visualization II
15:30 Coffee break & questions
15:45 Visualization II
17:00 Wrap-up

Content <a name="advanced-content"></a>

Scientific computation II

Scipy Lecture Notes. This
lesson introduces the scipy
package that contains various toolboxes dedicated to common issues in
scientific computing. Its different submodules correspond to different
applications, such as interpolation, integration, optimization, image
processing, statistics, special functions, etc.

See also:

Version control

Software Carpentry. This lesson introduces
version control using git. Version
control is the lab notebook of the digital world: it's what professionals use
to keep track of what they’ve done and to collaborate with other people. And it
isn't just for software: books, papers, small data sets, and anything that
changes over time or needs to be shared can and should be stored in a version
control system.

See also:

C/Python integration

Scipy Lecture Notes. This
chapter
contains an introduction to the many different routes for making your native
code (primarily C/C++) available from Python, a process commonly referred to
wrapping. The goal of this chapter is to give you a flavour of what
technologies exist and what their respective merits and shortcomings are, so
that you can select the appropriate one for your specific needs.

Scientific visualization II

This lesson
introduces the (modern) OpenGL API through the use of glumpy which a python
library for scientific visualization that is both fast, scalable and
beautiful. Glumpy offers an intuitive interface between numpy and modern
OpenGL.

|


|

Schedule <a name="beginner-schedule"></a>

8

Content <a name="beginner-content"></a>

2

Schedule <a name="advanced-schedule"></a>

8

Content <a name="advanced-content"></a>

3