Intro to C++ Programming
Enums
Learn about Enums and how they offer an efficient way to handle predefined values in your code
Managing C++ Projects Using CMake
Source Control with Git
An introduction to Git, the version control system that underpins modern collaborative software development and automated build pipelines.
Managing C++ Projects Using CMake
Build Servers and Continuous Integration
Learn how to automate your build and test process with Continuous Integration (CI) and a build server. This lesson provides a guide to creating a GitHub Actions workflow for a CMake project.
Managing C++ Projects Using CMake
Packaging with CPack
Learn to package your C++ projects using CMake's CPack. This lesson covers creating developer ZIP archives and professional Windows MSI installers with components.
Managing C++ Projects Using CMake
Packaging with GitHub Actions
Learn to automate the packaging process by integrating CPack with a multi-platform GitHub Actions workflow
Managing C++ Projects Using CMake
Deployment with GitHub Releases
Learn to automate the release process using a GitHub Actions workflow that builds, packages, and publishes artifacts to a GitHub Release
Practical Algorithm Analysis
Data Structures & Algorithms
An introduction to data structures and algorithms from a practical, hardware-first perspective. Learn how the physical layout of your data in memory impacts performance.
Practical Algorithm Analysis
CPUs, Memory, and Locality
Understand how our code interacts with physical hardware. Learn about virtual memory, the stack vs. heap, cache lines, and prefetching.
Practical Algorithm Analysis
Polynomial Algorithms
Learn how input size affects execution speed and the most common class of algorithms.
Practical Algorithm Analysis
NP-Hard and Approximations
Learn why some problems are impossible to solve exactly and how we can use approximations like Monte Carlo simulations to cheat.