UCL for Code in Research

Peter Schmidt

The companion podcast for courses on programming from the Advanced Research Computing Centre of the University College of London, UK. 

  1. DEC 11

    9/9 Research Software Engineering with Python (COMP233) - Performance

    In this last episode of this course, I talk to Itamar Turner-Trauring who created the website PythonSpeed and spent a considerable time on finding ways to make Python code faster and more efficient. Python and its ecosystem also have great tools how you can measure performance. Links: https://pythonspeed.com a set of articles and recommendations on how to improve your performancehttps://blog.sentry.io/python-performance-testing-a-comprehensive-guide/ a general blog post on performance testinghttps://uwpce-pythoncert.github.io/SystemDevelopment/profiling.html https://uwpce-pythoncert.github.io/SystemDevelopment/index.htmlhttps://en.wikipedia.org/wiki/Computer_performancehttps://python-102.readthedocs.io/en/latest/performance.htmlhttps://docs.python.org/3/tutorial/datastructures.htmlhttps://www.green-algorithms.orghttps://doi.org/10.1145/356635.356640 Donald Knuth's paper on over optimisationhttps://wiki.python.org/moin/TimeComplexityhttps://blog.jetbrains.com/dataspell/2023/08/polars-vs-pandas-what-s-the-difference/ comparing Polars with PandaProfiling tools https://pyinstrument.readthedocs.io/en/latest/https://docs.python.org/3/library/profile.htmlhttps://docs.python.org/3/library/time.html the time function in Pythonhttps://docs.python.org/3/library/timeit.html another function to measure time in Pythonhttps://jiffyclub.github.io/snakeviz/ a graphic profile viewerhttps://bloomberg.github.io/memray/ flexible memory profilerhttps://github.com/benfred/py-spyhttps://www.wrighters.io/profiling-python-code-with-py-spy/https://github.com/P403n1x87/austin-python The Python wrapper for the Austin profiler Don't be shy - say Hi This podcast is brought to you by the Advanced Research Computing Centre of the University College London, UK. Producer and Host: Peter Schmidt

    23 min
  2. DEC 4

    8/9 Research Software Engineering with Python (COMP233) - Design and Patterns

    In this episode I talk to Jeremiah Miller - a software engineer - and Max Albert - a research software engineer in the research software group at the University of Southampton about refactoring and design patterns. https://en.wikipedia.org/wiki/Design_Patternshttps://en.wikipedia.org/wiki/Spaghetti_codehttps://www.distributed-systems.net/index.php/books/ds4/ book by A Tanenbaumhttps://refactoring.com The Refactoring book by Martin Fowlerhttps://martinfowler.com/architecture/https://martinfowler.com/eaaDev/https://martinfowler.comhttps://www.patternlanguage.com the original book by Christopher Alexander on design patterns in architecture - for towns, cities etc. This book inspired software engineers to define a set of design patterns on how to structure codehttps://refactoring.guru/design-patterns Max recommended Sandi and her tips and recommendations on codinghttps://sandimetz.com/99bottles the idea of making things as identical as possible to sniff out design breaks or changeshttps://refactoring.guru/design-patterns another website on design patterns and refactoringSome books: Design Patterns - Elements of Reusable Object-Oriented Software Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison-Wesley, 1995, ISBN 0-201-63361-2Enterprise Integration Patterns Gregor Hohpe, Bobby Woole, Addison-Wesley, 2004, ISBN 0-321-20068-3Don't be shy - say Hi This podcast is brought to you by the Advanced Research Computing Centre of the University College London, UK. Producer and Host: Peter Schmidt

    28 min

About

The companion podcast for courses on programming from the Advanced Research Computing Centre of the University College of London, UK.