Mod(C++) Fundamentals: Introduction to C++
Mod(C++) Fundamentals is a two day training course. It is ideal for new hires that have little to no experience in C++, but are proficient in an Object Oriented Programming language, like Java or C#.
Mod(C++) Fundamentals should ideally be taken before Mod(C++) Intermediate, another two day course which expands on the topics in Mod(C++) Fundamentals. Taken together these two courses will give a good foundation for a modern C++ programmer.
The Fundamentals course gives the students an understanding of how one should think and program in “Modern C++” (C++11/14/17/20). The exercises will all be based around a 2D graphics game inspired by PacMan. Topics covered in the course include:
Variable and function use, including auto, const, overloading and function templates
Namespaces, classes and structs, when and how to use them
Standard library containers and algorithms usage
How to efficiently use values and references
Memory theory, including understanding allocation on the heap and stack
RAII and lifetime management, including Rule of Zero
Lambda functions and using them with standard algorithms
An introduction to the C++ compilation model and advice to make the best use of compilers and build systems
Students are assumed to be proficient in anObject Oriented Programming language like Java or C#. They should be working in (or looking to work in) a C++ project.
The exercises will be done in a CMake based project. The students will need a development environment, a rich IDE is recommended, for example Jetbrains CLion, QtCreator or Visual Studio. A GitHub account will be useful.
Patricia Aas is an international speaker and has spoken at CppCon, ACCU, C++OnSea, NDC Security, NDC Oslo and many other conferences on subjects ranging from Sandboxing in Chromium to Vulnerabilities in C++. She has taught a range of subjects in Computer Science at the University of Oslo.
Patricia has a masters degree in Computer Science and 13 years professional experience as a programmer, most of that time programming in C++. During that time she has worked in codebases with a high focus on security: two browsers (Opera and Vivaldi) and embedded Cisco telepresence systems.