Overview
Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Updated in May 2025.
This course now features Coursera Coach!
A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course.
This course offers an in-depth introduction to modern C++ programming, focusing on features from C++11, C++14, and C++17. You'll master key techniques like memory management, object-oriented programming, operator overloading, and lambda expressions, while gaining hands-on experience through practical examples and projects.
The course begins with C++ basics, including variables, functions, and debugging, before progressing to advanced topics like move semantics, memory management with smart pointers, and exception handling. You'll also explore C++17 features such as structured bindings, parallel algorithms, and advanced template programming. As you advance, you'll work on projects that reinforce concepts like inheritance, composition, file I/O, concurrency, and threading, equipping you with the tools to handle complex tasks efficiently.
This course is perfect for intermediate programmers who want to master modern C++ features. Prior knowledge of basic C++ and object-oriented programming is recommended, though the course is structured to guide you step by step through each concept and feature. By the end, you'll be equipped with the skills to excel in C++ development and the job market.
Syllabus
- Course 1: Foundations of Modern C++
- Course 2: Advanced Object-Oriented & Generic Programming in C++
- Course 3: Modern C++ Features & Concurrency
Courses
-
Updated in May 2025. This course now features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. This advanced course focuses on object-oriented and generic programming in C++, emphasizing the core principles and techniques that every experienced developer should master. The course will guide you through advanced inheritance, exception handling, file input/output operations, and template programming, equipping you with the knowledge to write clean, efficient, and reusable C++ code. You’ll also explore C++11/14/17 features such as lambda expressions, type traits, and advanced STL usage. The course starts by enhancing your object-oriented programming skills with in-depth discussions on inheritance, composition, and polymorphism, along with practical examples and real-world applications. You will also explore advanced topics like virtual functions, dynamic casting, and multiple inheritance, ensuring a solid understanding of complex object hierarchies. Exception handling will be tackled next, where you will learn advanced techniques such as stack unwinding, nested exceptions, and using the noexcept keyword for performance improvements. As you progress, the course introduces the power of generic programming through templates, exploring topics like template argument deduction, perfect forwarding, variadic templates, and class template specialization. You will learn how to optimize code and improve flexibility with these tools, enabling you to build robust, reusable components. The course then dives into C++'s powerful Standard Template Library (STL), where you'll master containers such as std::vector, std::map, and std::unordered_map, and learn the performance nuances with Big-O notation. This course is designed for intermediate to advanced programmers who want to refine their C++ skills and gain expertise in complex C++ features. A basic understanding of C++ syntax and object-oriented programming is recommended, and the course will be most beneficial to those aiming to develop high-performance applications or work with large, complex systems.
-
Updated in May 2025. This course now features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. The course begins with setting up your development environment across different platforms, including Visual Studio, Code::Blocks, Cevelop, and XCode. You will then dive into the basic language facilities of C++, starting with variables, primitive types, functions, and debugging in Visual Studio. Later, you'll explore more advanced concepts such as dynamic memory allocation, object-oriented programming, classes, and constructors. As the course progresses, you will work with more complex features of C++ like move semantics, operator overloading, and memory management. You’ll gain practical experience in working with smart pointers (std::unique_ptr, std::shared_ptr, and std::weak_ptr), as well as learn how to handle type conversions and operator overloading in C++ to write more efficient and maintainable code. The course is designed for developers who want to deepen their knowledge of C++ and build powerful, efficient applications. It is ideal for students or professionals with basic programming knowledge looking to take their C++ skills to the next level. No prior experience in C++ is required, but understanding basic programming concepts will be helpful.
-
Updated in May 2025. This course now features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. This course delves into the latest features of Modern C++, with a primary focus on concurrency, C++17 language updates, and powerful tools that enhance code performance and reliability. You will explore the capabilities of C++17, including the introduction of advanced concurrency techniques, templates, and functional programming tools. This comprehensive guide equips you with the knowledge to build efficient, concurrent programs while utilizing the most current features of C++ for maximum performance. The course starts with concurrency basics, introducing the importance of multi-threading and how to implement it using std::thread. You will dive deeper into thread synchronization with std::mutex and learn how to pass arguments to threads. You'll then explore task-based concurrency with std::async, std::future, and std::promise, and learn how to propagate exceptions between threads seamlessly. This will provide you with the tools needed to write scalable, thread-safe applications. As you move into the C++17 core language features, you'll examine the new features, such as inline variables, noexcept, and structured bindings. C++17 also brought mandatory copy elision, and this course will clarify its benefits. You'll gain an understanding of how to leverage these new features to make your code more efficient and readable. The final sections cover advanced template features like Compiled Time Argument Deduction (CTAD), if constexpr, and folding expressions, as well as C++17 standard library additions like std::optional, std::variant, and parallel algorithms. These components empower you to write more flexible, error-free, and high-performance C++ code.
Taught by
Packt - Course Instructors