Last Sunday, Tommy Guy and Katy Huff flew to Trieste, a small city in northeastern Italy, to assist in teaching an Advanced School on Scientific Software Development at the International Center for Theoretical Physics (ICTP).
Stefano Cozzini, Graziano Giuliani, and Antun Balaz invited us to help them teach this two week workshop which is one in a series of workshops focused on high performance computing for scientific applications. The ICTP mission is to extend access to advanced scientific tools and education to scientists from developing countries. Undergraduate students, graduate students, and post-graduate scientists gathered in Italy from nations all over South America, Asia, the Middle East, and Africa.
An intense first day introduced version control and the unix shell in less than four hours, but students stayed alert.
Approximately 50 students followed along, performing exercises on the Linux machines in the ICTP computer lab.
Reviews of the workshop were written up nightly in student blogs. For good reason, students found that these "afternoon exercises were a bit hard to follow due to fast pace and great amount of information." However, most found that the exercise-driven lecture style we used was an effective way to introduce such a density of information. One student explained that the hands on instruction helped him "to better understand backend story of the git functions/commands with an example." We even convinced some students to take the plunge with version control, some who bravely admitted that "the only version control I had was to regularly send an email to myself with the latest version..."
The students were increasingly able to keep up during the following days as Tommy and Katy covered the Python programming language, focusing on data structures and packages useful for science. Some students have found themselves enamored with Python as a result and a number have even decided to re-impliment their research codes in the language.
Today, Steve Crouch from the Software Sustainability Institute in the UK gave a series of excellent talks on software development practices that further motivated the version control, testing, and debugging exercises that the students performed over this week.