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 FÉVR.

    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 FÉVR.

    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

À propos

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