A 5-day intensive course on the foundations of Python was delivered by Dr Jacek Generowicz from 28 September to 2 October 2015, as joint training activity for the Centres for Doctoral Training in Complex Systems Simulations and Next Generation Computational Modelling
A naive reading of the list of topics could easily fool one into thinking that the course was merely a rehash of Python's basics. However, Jacek's deep understanding of the language's history and fundamental principles routinely uncovered new perspectives. Furthermore, that understanding was brought to bear on questions from the doctoral training centre's wide diversity of programmers. Not only did Jacek weave the responses to the varied queries into a coherent whole, he often accentuated the point by comparison with contrasting paradigms in other languages. In this way a more considered view of Python's pro and cons was constructed.
Broadly, the course struck me as a Python analogue of Herb Sutter's or Scott Meyers's well regarded intermediate C++ textbooks but with a nod to a more theoretical understanding of programming languages. This was greatly appreciated by myself given the multi-paradigm approach of a language like Python. In particular it was notable how profoundly abstract issues were grounded via well posed problems that served to highlight the relevance of the concepts to everyday software engineering.
Quite simply, one the best learning experiences I have ever had in my career as a programmer.
(Summary by Garvin Haslett).