[Numpy-discussion] Numpy/Scipy and the Python African Tour
Thu Jul 23 09:17:37 CDT 2009
Dear users of Numpy and Scipy,
here is an informal report on the last event of the Python African Tour,
which took place in Dakar (Senegal) on July 6-10th. It might interest
only a fraction of the lists, so I apologize for the spamming.
What is the Python African Tour?
It is a recent initiative to promote the use of Python in African
countries, that we owe to Kamon Ayeva (http://kayeva.wordpress.com/).
Born a Togolese, Kamon now lives in Paris (France) where he works as a
web developer and a trainer in web technologies. It occurred to him that
but a few African developers (Hi, Stefan! :D) participate in
Python-related development or conferences. IT-related technologies and
web development can contribute to economic growth in developing
countries, and, because of the clarity and flexibility of the language,
Python-trained developers may have a competitive advantage to develop
The Python African Tour sends a few volunteers to places in Africa where
a small core of Python users or developers already exists. These deliver
a training over a few days, about Python and some of its applications.
The goal is to create a small but dynamical community of users that will
keep on growing after the volunteers have left.
A first event was held in Morocco last December. Whereas the emphasis had
been put on an introduction to the Python language and to the Django web
framework, I proposed to give this time an additional course about the
use of Python in scientific computing, which was nicknamed "Scientific
Python". Numpy/Scipy is an opportunity to present the language as
attractive for not only geeks, but also academic staff -- the people who
may precisely teach the language in the universities and engineering
Organization of the Dakar event
This year, three European trainers flew to Dakar for the event: Kamon
Ayeva, Daniel Nouri and myself. For all courses we worked in pairs with
three local organizers and Python experts: Thomas Noël, Ousmane Wilane
and Sergiu Mihai. The course was organized as follows:
* 1.5 day for a general introduction to Python
* 1 day of specialization, either on the Django web framework (Kamon and
Daniel) or on Python for scientific computing (Emmanuelle)
* 1 day of barcamp, or informal talks showing how we would use Python in
our daily work.
* 1.5 day of "sprint", I should rather say practical work.
The hosting organizations were the AUF (Agence universitaire de la
Francophonie), the Dakar Linux User Group (DakarLUG) and the ESP (Ecole
Supérieure Polytechnique, a master-level engineer school).
The local team did a great job on announcing the event, rounding up
potential attendees (and sponsors!), and selecting people. The course was
free of charge, but there were only a limited number of positions.
Finally, about 50 people showed up at the course (20 having chosen the
Scientific Python course). Facilities at AUF were excellent: three rooms
with a total of 70 PCs running the latest Ubuntu.
The course on "Scientific Python"
Whereas we reused the slides of the Moroccan event on the introduction to
Python, I wrote the slides for the 3-4 hour course about Scientific
Python. The slides were written in French, English being an issue for a
part of the students. They can be found on
http://www.dakarlug.org/pat/scientifique/html/ for French-reading people
(my apologies to the others! I'm considering translating the slides to
English but I will do it more rapidly if I'm given the incentive to do
so, so tell me if you may be interested by an English version!).
Given the duration of the course and the fact that the trainees had
already been introduced to Python, I chose to concentrate mostly on
Numpy, and on Scipy to a lesser extent. However, I tried to explain as
soon as possible how to use numpy and scipy in a "real life" scientific
workflow: plotting data with matplotlib or mayavi, opening data files,
finding documentation, etc.
How it went
Together with Thomas Noël, we followed the same group of 20 people during
the training week. The group was composed of both students (master and
PhD), and a few senior academic staff, professors and researchers. I'm
glad to say that the course was a real success, insofar as everybody was
convinced he or she could use Python with some benefit for his or her
research. Most people were already using either Matlab (with some license
issues...), R or Java for scientific computing. They were attracted by
the following features of Python:
* Python is a free software, so there are no license problems
* with its wide range of scientific modules, almost *everything* can be
done with Python
Also, people were encouraged when they saw at the end of the week that
they could work on their own data using their usual algorithms in Python,
without too many difficulties.
Speaking about difficulties, one may say that there was some disparity in
the level of experience inside the group, some being very well at ease
with array programming while others were obviously discovering
programming. It was therefore difficult to meet everybody's needs, but
well, I hope everybody learned something!
Some pictures of the event are on http://dakarlug.org/pat/galerie/.
What's next: outlook on the PAT
The Dakar event was a very encouraging one, and some other countries
(Togo or Zambia) are already considered for the next stop of the PAT. Of
course, before keeping moving towards the next event, we first would
like to see what happens in Dakar after the PAT has left. Some
pedagogical staff decided there would be a course on Python next academic
year, and this is a very positive decision: the one-week course was
definitely too short for the students. Now the big question is who is
going to teach the course, as all professors were beginners in Python. A
new mailing-list has also been created to gather the trainees together
after the event.
If you are interested by the PAT and you want to know more about past and
future events, you may write to the dedicated mailing-list
firstname.lastname@example.org, or take a look at the
Thanks a lot for your patience if you have read so far!
More information about the NumPy-Discussion