Hi,

As promised, I'll report on teaching some "advanced numpy" material,
which was a first for me.  The workshop organizer said the
participants would be grad students experienced with Matlab but new to
Python.

I tried rushing through the basics of Python, which still took about
1h15: I condensed an older version of
http://swcarpentry.github.io/python-novice-inflammation/03-lists.html
to introduce lists and be able to touch on indexing, writing for
loops, defining functions (showing the syntax along the way, plus
showing strings, which can also be sequenced but are immutable).

I got the feeling (while in the classroom) that this crash intro to
Python worked for more than half of the audience but definitely not
for all (some were actually novice programmers, despite what the host
had to say).  We would go through the challenges relatively fast.

Then, for the other ~1h45 (iirc), I covered 1., 2., 3. from
http://paris-swc.github.io/advanced-numpy-lesson/  I feel I didn't go
fast at all, I could feel it was my first time doing this material.  I
skipped the first "View or copy" challenge from
http://paris-swc.github.io/advanced-numpy-lesson/02-indexing.html
because nothing would happen... (? numpy==1.11.0) and focused on the
second "View or copy?" challenge, to highlight that applying a boolean
mask amounts to fancy (advanced) indexing, in the sense that a copy is
created.

Co-instructor was Tom Wright, who followed with a parallel computing
lesson inspired by
http://swcarpentry.github.io/python-intermediate-mosquitoes/04-multiprocessing.html.
According to the feedback the organizers gave us, the material was
very well received and proved useful (students were participating in a
hackathon meanwhile).  At this point, I'm not sure and I didn't follow
closely, since the overall context for this workshop was far from
ideal (as I reported during the June 14th 8pm EST debrief session).

One last thing, I confess that I asked students to work in a
virtualenv, which obviously added to the cognitive load and the usual
setup issues (I emailed instructions in advance, of course).  Luckily,
Tricia Campbell was there to help.  I motivated the good practice and
tried exposing these proprietary-leaning research people to some open
source and industry-style approaches of software development.  It was
painful sometimes, but we're on the right track (after all, they're
switching from Matlab to Python).

Best,
Marianne

On Mon, May 23, 2016 at 11:21 PM, Marianne Corvellec
<[email protected]> wrote:
> Hi Marcel,
>
> Thanks for sharing.
>
> We've been asked to cover some intermediate and advanced Python at an
> upcoming workshop (http://mkcor.github.io/2016-06-01-mcgill/), so I'll
> definitely draw from the materials that you and Bartosz are pointing
> to.  I knew of the stuff Juan, Gaël, and others had put together, but
> it's super helpful and convenient to have an *up-to-date* {list,
> reference, aggregation} the way you are sharing it.  I'll give you
> folks some feedback afterwards.
>
> Thanks again,
> Marianne
>
> On Mon, May 23, 2016 at 11:46 AM, Marcel Stimberg
> <[email protected]> wrote:
>> Dear all,
>>
>> following up on Bartosz's recent email about his "advanced numpy"
>> material[1], here is some additional material from the same "SWC-inspired"
>> advanced Python workshop[2]: I had the pleasure to present a lesson on
>> "testing, debugging, profiling"[3], rendered here to HTML with the standard
>> SWC template[4].
>>
>> As for Bartosz, the workshop was the first and so far only time that I
>> presented this content. In about 2h45 I covered most of it, but was running
>> out of time in the end so that the participants unfortunately did not have
>> the time to do the exercises for the profiling part. The general feedback
>> for the lesson was positive and the content considered useful -- comments,
>> pull requests, etc. are more than welcome!
>>
>> The first part on testing is heavily based on Katy Huff's "python-testing"
>> lesson[5] (using pytest instead of nose and numpy arrays instead of lists),
>> although considerably shorter and therefore not covering as many
>> testing-related topics. The sections on debugging and profiling drew
>> inspiration from the corresponding sections in the scipy lecture notes[6],
>> written by Gaël Varoquaux.
>>
>> Best,
>>   Marcel
>>
>>
>> [1]
>> http://lists.software-carpentry.org/pipermail/discuss/2016-May/004441.html
>> [2] http://telecom-python.telenczuk.pl/
>> [3] https://github.com/paris-swc/python-testing-debugging-profiling
>> [4] http://paris-swc.github.io/python-testing-debugging-profiling/
>> [5] http://katyhuff.github.io/python-testing/
>> [6] http://www.scipy-lectures.org
>>
>> _______________________________________________
>> Discuss mailing list
>> [email protected]
>> http://lists.software-carpentry.org/listinfo/discuss
_______________________________________________
Discuss mailing list
[email protected]
http://lists.software-carpentry.org/listinfo/discuss

Reply via email to