Modern C++ Course For CV (2020)

Tools

  • GNU/Linux [Tutorial]
    • Filesystem
    • Terminal
    • standard input/output
  • Text Editor
    • Configuring
    • Terminal
    • Compile
    • Debug
  • Build systems
    • #include statements
    • headers/sources 
    • Libraries
    • Compilation flags
    • CMake
    • 3rd party libraries
  • Git [Tutorial]
  • Homework submissions [Tutorial]
  • Gdb [Tutorial]
  • Web-based tools
    • Quick Bench
    • Compiler Explorer
    • Cpp insights
    • Cppreference.com
  • Clang-tools [Tutorial]
    • Clang-format
    • Clang-tidy
    • Clangd
    • Cppcheck
  • Google test [tutorial]
  • OpenCV [tutorial]

Core C++

  • C++ basic syntax
  • Variables
  • Operators
  • Scopes
  • Built-in types
  • Control structures (if, for, while)
  • streams
  • Input parameters
  • C++ strings
  • Functions
  • Function overloading
  • Pass by value / Pass by reference
  • Namespaces
  • Containers
  • Iterators
  • STL Algorithms
  • Exceptions
  • Utilities
  • filesystem
  • I/O Files
  • Classes introduction

Modern C++

  • enum classes
  • Operator overloading
  • Const correctness
  • typedef/using
  • static variables /methods
  • Move Semantics
  • Special Functions
  • Inheritance
  • Function Overriding
  • Abstract classes
  • Interfaces
  • Strategy Pattern
  • Singleton Pattern
  • Polymorphism
  • Typecasting
  • Memory management
  • Stack vs Heap
  • Pointers
  • new/delete
  • this pointer
  • Memory issues
  • RAII
  • Smart pointers
  • Generic programming
  • Template functions
  • Template classes
  • Template argument deduction
  • Template partial specialization
  • Template parameters
  • constexpr
  • Static code generation