Modern C++

Learn advanced object programming paradigms in C++ variants 11, 14 and 17.

Course teaches the participant to use the advanced object programming paradigms in C++ variants 11, 14 and 17. The course builds on basic C++ knowledge to enable the participants utilize constructs such as move semantics, lambdas, templates etc. in their C++ software solutions. Thanks to these high level OOP, C++ is great to model complex systems, such as autonomous driving systems in vehicles.

Course topics:

  • C++ language extensions (C++11, C++14, C++17), nullptr, auto, scoped enumerations, compile-time assertions, string literals

  • C++ better class design: override, final, implicitly-declared operations, =delete, =default, delegating constructors, explicit, user-defined literals (UDL)

  • Move semantics: move constructor, move assignment, the rule of five, rvalue references, perfect forwarding, forwarding references

  • Lambdas: function objects, lambda expressions, variable capturing, generic lambdas, return type deduction, usage with STL algorithms

  • Multithreading: threads, passing parameters to threads, thread joining, mutexes, locking, condition variables, semaphores

  • Templates: function templates, variadic templates, tuples, template specializations, type traits, if constexpr

Hardware (required): Computer with Internet connection, working speakers and microphone.

Software: Chrome browser.

Course Typically Offered: Live Online in Fall quarter (mid June - August), Winter quarter (mid January - March), Spring quarter (April - mid June) or Summer quarter (mid June - August).

Prerequisites: Students should have basic programming knowledge in C++.

Next Step: To gain additional knowledge in specific domains where C++ language is heavily utilized, consider taking the courses from the Automotive engineering catalog (NIT-AU-XX) or Consumer electronics catalog (NIT-CE-XX).

Course Number: NIT-CE-03

Duration: 2.00 units (~20 live teaching hours, ~40 hours of individual practice and preparation work)

Offered next: Contact us!

Class type: Live Online Intensive (according to the schedule published at the beginning of the course, approximately 3x2 live classes per week)

Instructor: To be announced

How to join: Google Meet (link will be available upon enrollment ), NIT Canvas

How to apply: Please apply by filling up the form here and we will get in touch with you as soon as possible.

Customized schedule for your company or team (call for price)

Class type: Live Online (Regular or Intensive), Live Bootcamp (Company premises)

Instructor: To be announced

For groups and organizations: please contact us directly to arrange this course according to your scheduling, needs and participant lists - via the contact form here.