Last week Alex Viana and I taught two Software Carpentry workshops at the Universidade São Paulo, the biggest public university in Brazil. In both workshops we took them through Bash, Git and Python over the course of two days.

First Workshop

We had 18 people subscribe and 27 names on the waitlist. Because of that we were waiting for a full room but only 10 students showed up (we still trying to figure out why this happened) with different previous programming experience but all from bioinformatics fields.

The first day started with Alex teaching the Unix shell. Most of the students used it before but from the feedback they liked discovering some new commands and that you can write your own shell scripts.

In the afternoon I taught Python. This wasn't the best session because I got the wrong impression from the students: the ones asking the most questions during the session were already programming in Perl and were asking questions to figure out the differences between Python and Perl. Moreover, looks like our lesson has a small time issue.

The second day started with Alex teaching Git. This was the best presentation of Git I've ever seen: Alex was very calm presenting exactly the lessons available at our website (except for the fact that for the collaborating and conflict lesson students worked in pairs like Thomas Kluyver's proposal that I plan to review soon) and students followed it up without problems. At the end of the Git session students wanted answers for advanced questions and we extended the session for more one hour.

In the afternoon, we changed our original plans and split the class into two groups. The first group, with more advanced programming skills, had a demo session of Pandas with Alex, while the second group had an exercise session on the concepts learned at the previous day (functions, loops, etc.).

Second Workshop

18 people subscribed, with 23 names on the waitlist. Unlike the first workshop we had around 18 students (full room), most from bioinformatics without previous programming experience.

The first day started with Alex teaching the Unix shell. Some students liked this first section but most of them still asked themselves, "Why am I learning this?". In the afternoon I taught Python and for the first time I got feedback saying that I was too slow. I had purposely reduced the speed of the lesson but also had to interrupt it a few times before the break because many students were having troubles with Anaconda and IPython Notebook.

The second day started with Alex teaching Git. Again some students had troubles with the installation (all the cases of students using Mac OS X) but after some time we solved the problems. As in the first round, Alex's lesson was great but this time students didn't asked advanced questions at the end. In the afternoon, I finished the Python lesson (I didn't taught the loop lesson in the first day) and gave a quick example of matplotlib and Pandas.