Monday

Room 3

09:00 - 17:00 (UTC+02)

2 Days

Mod(C++) Fundamentals

Introduction to C++

C++
Programming Languages

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.

Course Description

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

Prerequisites

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.

Software needed

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

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.

Corentin Jabot

Corentin Jabot is a freelance developer and member of the C++ committee where he participates in the Unicode and library evolution working groups.