Course Materials
Download PDFs for current and past course sessions.
Computer Programming II: C++
This course was originally designed for the Computer Science and AI program at IE University in Madrid. I taught it for the first time in the Fall semester of the 2024-2025 academic year. The course is an introduction to programming in C++ and covers most of the fundamental features of the language, including object-oriented programming, templates, and the Standard Template Library (STL).
Missing in these materials are the solutions to the exercises, some slides and many class code examples.
I did also not include a lesson specifically dedicated to tooling, which I have done in future iterations of my programming courses. You may find some of the notes for tooling in other courses.
Good Software Engineering Practices for Software-writing Scientists
I have been teaching this course in several forms all around for some years now. It is an introduction to software engineering for scientists, with a focus on good practices and tools that can help scientists write better software. The course covers topics such as version control, testing, documentation, and code review.
Besides the slides and a tutorial article I published in JCP, I also include here specific materials for spins of this course that I tailored for Python and C (although they will work just fine for C++ too).