Episodes

  • 5/10 Classes and Design
    Feb 19 2025

    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 OOP
    • https://medium.com/@ryan_forrester_/struct-inheritance-in-c-comprehensive-guide-2027689d10ed structs and classes
    • https://www.enterpriseintegrationpatterns.com/index.html Enterprise Integration Patterns by Gregory Hohpe
    • https://martinfowler.com Martin Fowler author of so many books, including one on enterprise patterns
      • https://martinfowler.com/bliki/GangOfFour.html Martin F's write-up of the Gang of Four book
    • https://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_Patterns
    • https://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

    Show more Show less
    34 mins
  • 4/10 On Polymorphism
    Feb 12 2025

    Inheritance, templates, function overloading - they all fall into the category of polymorphism in programming. My guest Klaus Iglberger and I discuss the different aspects of how this could be done with C++.

    Links

    • https://www.stroustrup.com/glossary.html#Gpolymorphism Glossary provided by Bjarne Stroustrup
    • https://cplusplus.com/doc/tutorial/polymorphism/
    • https://ics.uci.edu/~jajones/INF102-S18/readings/05_stratchey_1967.pdf Christian Strachey's article where he introduces polymorphism
    • https://dl.acm.org/doi/pdf/10.1145/6041.6042 Article by Cardelli and Wegner On Understanding Type, Data Abstraction and Polymorphism
    • https://en.wikipedia.org/wiki/Virtual_method_table virtual tables (vtables)
    • https://pabloariasal.github.io/2017/06/10/understanding-virtual-tables/
    • https://www.geeksforgeeks.org/vtable-and-vptr-in-cpp/
    • https://belaycpp.com/2021/10/01/history-of-c-templates-from-c-style-macros-to-concepts/ A history of templates
    • https://www.stroustrup.com/dne.html Bjarne Stroustrup: the Design and Evolution of C++

    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

    Show more Show less
    27 mins
  • 3/10 Throw, try, catch...test
    Feb 5 2025

    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 manual
    • https://en.wikipedia.org/wiki/Errno.h the macro
    • https://www.gnu.org/software/libc/manual/html_node/Error-Codes.html
    • https://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/ Undo
    • https://github.com/catchorg/Catch2 Catch2
    • https://google.github.io/googletest/ Google tests
    • https://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

    Show more Show less
    32 mins
  • 2/10 Data Types and the world of (smart) pointers
    Jan 29 2025

    In the beginnings were...data and data types. Which is where we begin our journey through C++. The language provides for a range of interesting, fundamental, complex and custom types - one of which is a set of pointer types.
    My guest in this episode is Marc Hartung from Dive in Berlin, Germany.

    Links:

    • https://en.wikipedia.org/wiki/Pointer_(computer_programming) summary of what pointers are
    • https://en.wikipedia.org/wiki/Address_(programming_language) one of the early uses of pointers in the APL language
    • https://en.wikipedia.org/wiki/Memory_management article on memory management
    • https://learn.microsoft.com/en-us/cpp/cpp/type-conversions-and-type-safety-modern-cpp an article on type conversion
    • https://gcc.gnu.org/onlinedocs/gcc/_005f_005fint128.html GCC compiler and support for 128bit integers
    • https://en.wikipedia.org/wiki/C%2B%2B_Standard_Library C++ Standard Library
    • https://dl.acm.org/doi/pdf/10.1145/242604.242613 Ań article on how the C++ Standard Library emerged
    • https://en.wikipedia.org/wiki/Standard_Template_Library the Standard Template Library (not to be confused with the C++ Standard Lib)

    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

    Show more Show less
    35 mins
  • 1/10 C++ - An Introduction
    Jan 22 2025

    This first episode is about introducing C++, where it started, how it evolved. You will hear from 2 practitioners: Klaus Iglberger (C++ coach/trainer) and Marc Hartung (tech lead at Dive in Berlin).

    Here are a few links for you to follow up on:

    • https://www.stroustrup.com The Home Page of Bjarne Stroustrup who created C++. There are plenty of links for you to follow
    • https://isocpp.org/std/the-standard The C++ standard homepage
    • https://www.mn.uio.no/tjenester/it/hjelp/programvare/simula/versions/simula-1967/commonbasedefinition1967.pdf the specs of Simula 67, still available online. Simula inspired B Stroustrup for C++
    • https://www.divecae.com Dive the company Marc Hartungs works at who produce simulation software (hydrodynamics)
    • https://github.com/igl42 Klaus Iglberger's GitHub

    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

    Show more Show less
    38 mins
  • TEASER: Research Computing with C++
    Dec 14 2024

    Welcome to the new podcast from the Advanced Research Computing Centre of the University College London, UK. A companion podcast for courses on Research Computing at UCL.

    In this first season we'll be presenting the course on Research Computing with C++. And this short teaser explains how it all works. Have fun!

    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

    Show more Show less
    17 mins