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. 18 DE FEV.

    5/10 Classes and Design [2026]

    Here we touch on some ways to build classes in C++ and how class design such as class hierarchies can help to make code more readable, more maintainable and less error prone (amongst other things). Klaus Iglberger and I also touch on design patterns and briefly what other programming paradigms exist apart from object oriented programming (OOP). Links https://medium.com/javascript-scene/the-forgotten-history-of-oop-88d71b9b2d9f The forgotten history of OOPhttps://medium.com/@ryan_forrester_/struct-inheritance-in-c-comprehensive-guide-2027689d10ed structs and classeshttps://www.enterpriseintegrationpatterns.com/index.html Enterprise Integration Patterns by Gregory Hohpehttps://martinfowler.com Martin Fowler author of so many books, including one on enterprise patternshttps://martinfowler.com/bliki/GangOfFour.html Martin F's write-up of the Gang of Four bookhttps://en.wikipedia.org/wiki/Design_Patterns Wiki page on the book 'Design Patterns - Elements of Reusable Object Oriented Software' written by E Gamma, R Helm, R Johnson and J Vlissides. https://openlibrary.org/books/OL7408317M/Design_Patternshttps://www.amazon.co.uk/Software-Design-Principles-Patterns-High-Quality/dp/1098113160 book by Klaus Iglberger: "C++ Software Design: Design Principles and Patterns for High-Quality Software"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

    34 min
  2. 4 DE FEV.

    3/10 Throw, try, catch...test [2026]

    Exceptions are essentials, as are error codes. Writes Bjarnes Stroustrup. And so on our 3rd stop through C++ I talk about what you could do when things go wrong. And what you can do to prevent errors - with testing. My guest is, again Klaus Iglberger. The sounds you're hearing are from the excellent https://sound-effects.bbcrewind.co.uk BBC sound library - free of use for non-commercial purposes.  Links: https://en.wikipedia.org/wiki/Exception_handling_(programming)https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1947r0.pdf B Stroustrup's article 'C++ exceptions and alternatives'https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_exceptions.html GNU exception manualhttps://en.wikipedia.org/wiki/Errno.h the macrohttps://www.gnu.org/software/libc/manual/html_node/Error-Codes.htmlhttps://archive.org/details/working-effectively-with-legacy-code/ Michael Feathers "Working Effectively with Legacy Code"https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0003r0.html#2.0 what went on with C++98 exceptions? https://devblogs.microsoft.com/oldnewthing/20180928-00/?p=99855 another discussion on the "old" exception handling in C++Tools: https://undo.io/products/undo-c-plusplus/ Undohttps://github.com/catchorg/Catch2 Catch2https://google.github.io/googletest/ Google testshttps://github.com/emil-e/rapidcheck RapidCheck property based testing 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

    32 min
  3. 11/12/2025

    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
  4. 04/12/2025

    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

Sobre

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