General Syllabuses

Basic C++ Course:

  • Introduction to basic language syntax – types, arrays, values, functions & overloads.

  • Introduction to tooling, development environments and compilation process.

  • Introduction to pointers and references.

  • Module test.

  • Introduction to custom types – structs/enums/unions, constructors, destructor and member functions.

  • Introduction to basic standard library containers – brief info on template usage.

  • How not to write C++ – critical bugs, gotchas and pitfalls.

  • Module Test.

  • Practical Exam – Final Grade.

Intermediate C++ Course:

  • OOP – inheritance, multiple inheritance, pure virtual, virtual destructor.

  • Introduction to copy & move semantics.

  • Introduction to common use-case operator overloading – equality, assignment, arithmetic.

  • Introduction to object lifetime and allocation types (automatic, static, dynamic, etc)

  • Introduction to exceptions.

  • Introduction to writing templated code.

  • Introduction to smart pointers.

  • Intermediate STL containers & computational complexity.

  • Final Project.

Advanced C++ Course:

  • Value categories – lvalues, xvalues, prvalues & ref qualifiers.

  • Advanced templating – SFINAE, parameter packs, perfect forwarding.

  • Compile-time programming – constexpr and template metaprogramming.

  • Advanced operator overloading and lambdas.

  • Paradigms for scalable, robust software engineering – TDD/BDD, state-of-the-art

  • frameworks and design.

  • Multithreading, thread safety, atomic types, mutexes, async, promises and futures.

  • Modern/Advanced STL library usage (algorithm, chrono, random, etc)

  • C++17 language features crash course.