Created by Dr. Daniel Duffy, an internationally known C++ trainer, book author and software designer, the Advanced C++ and Modern Design course is designed for experienced C++ developers who want to learn cutting edge C++11/C++14/C++17/C++20 features such as multithreading, advanced STL/Boost libraries, and design techniques to bring their skills the next level.
Each student is assigned a personal Teaching Assistant (alumni of the Baruch MFE Program) who will provide timely personalized feedback on homework as well as input on coding improvement.
A dedicated forum is available to discuss homework problems where fellow students and instructors are actively helping one another with questions.
Intuitive, Comprehensive Structure
This 20-week course consists of 8 levels where students build their cohesive knowledge upon previously mastered material. Access to each level is granted upon successful completion of the previous level's homework and quiz.
Our graduates overwhelmingly recommend this course for its values, experience and services. If you are not happy for any reason, full tuition refund is granted upon request within 14 days of payment.
Thousands of students all over the world have graduated from our Online Programming Courses and have subsequently been accepted to selective quantitative finance programs or employed at financial institutions.
We introduce some of the most important and far-reaching functionality that C++11 offers, in particular the multi-paradigm approach to modeling functions. We also introduce functionality that improves the robustness and efficiency of C++ code. Lambda functions’ essential functionality, comparing lambda functions with function objects, improving classes in C++11 (avoiding generation of special functions, move semantics, explicit constructors, no except), variadic’ fundamentals and polymorphic behavior, universal function wrappers and C++11 Bind, function wrappers with Inheritance and Composition, Tuples A-Z, sealed classes, other class improvements (alias template, explicit override).
Advanced C++11 and C++14
We introduce advanced syntax and functionality in C++11 and C++14. The main focus is on functionality that promotes the reliability and robustness of C++ code.Introduction to type traits and Template Metaprogramming (TMP), advanced type traits (for example, creating type-independent code), advanced lambda programming (for example, init captures and functional programming in C++), smart pointers in Boost and C++11, IEEE 754 and C++ Floating Point Classification, platform-dependent and platform-independent error codes and error conditions, STL Bitset, Boost dynamic Bitset and mini-applications, STL Function Objects and Lambdas, Variadic Template Programming, Multiparadigm Programming in C++.
Modern Design with C++17 and C++20
We seamlessly incorporate powerful, cutting-edge C++17/20 improvements to syntax, data types, features, and libraries throughout the course. This includes enhancements to auto deduction, new types such as variant and span, ranges, coroutines, modules, and parallel STL. We also introduce Concepts, which are the potential driving force for next-generation design paradigms in C++.
Concurrent programming is an essential building block of any high-performance computing application in finance, engineering, and other areas. We discuss how C++ supports multi-threading and parallel programming: Boost and C++11 threading, advanced C++11 concurrency, and Tasks. Additionally, new data structures and types in C++11, STL algorithms, and random numbers/statistical distributions are introduced -- all of which can be building blocks of a high-performance Monte Carlo system.
Boost C++ Libraries
We give a thorough overview of the Boost C++ libraries in order to acquaint the student with their potential and functionality. Boost Libraries Overview, String Algorithm Library, Regular expressions and Regex, Hash and Unordered, bitmap, heap, matrix libraries (Boost uBLAS), signals and slots (Boost signals2).
System and Design Patterns
We discuss the popular design and system patterns that are based on the object-orient model. We concentrate on approximately 20% of the patterns that account for 80% of the effectiveness in software development. We also show how to create next-generation patterns using the multiparadigm programming models that C++11 supports. Class and Component diagrams in UML, Whole-Part pattern, Object-Oriented Metrics,creational patterns, structural patterns, behavioral Patterns, next Generation Design Patterns, examples and applications.
We present a defined process (based on a combination of Structured Analysis, System patterns and C++11) to architecting, design and implementation of complex software systems.Locating and bounding the Software System, System Decomposition, Presentation Abstraction Control model, Policy-Based Design (PBD) in C++, example and applications, principles of Parallel Programming and Libraries.
The final exam will be an optional coding project, chosen from a list of topics relevant to the students area of interest. Upon successful completion of the course, the Baruch MFE program will issue a Certificate of Completion to students who pass the final exam and obtain a 70% or higher average. A Certificate of Completion with Distinction will be awarded to students with 90% or higher average.
We created this course for experienced software developers who wish to experience the full power of C++ for application development. Unless you have recent, professional C++ coding experience (and have knowledge of all the C++ prerequisite topics) or have taken the first C++ course, you should enroll in the "C++ Programming for Financial Engineering Certificate" course. Please contact us to inquire about exception/your qualification for this course.
"Thank you so much for making very interesting and practical course in C++ with up-to-date content. I think acquired knowledge during the course will be very useful at my work and in my personal life. Among other things I would like to point out that tutor's assistance during the course are always prompt and helpful." - Vladimir Tonkov
"The Advanced C++ and Modern Design online course is an excellent opportunity to dive in the new features of C++11 and C++14, to get a deep understanding of them, and to advance your programming skills to a whole different level. The quality, intensity, and volume of the homework, ensure the continuous improvement of the students, and I seriously doubt that someone who completes this certificate won't be able to compete in real life and be considered an advanced, master-level programmer." - Pavlos Sakoglou
"This is such a great course! I learned a lot from it and really enjoyed the C++ learning experience. The class is very well organized and structured. The learning materials are very interesting and useful. The TAs are extremely helpful and always answer the students' questions on the forum. It is definitely worth taken for anyone who wants to learn more C++ or love programming in general." - Gong Chen
"It is a great course. Teaching assistant is so helpful that every time I got my grades within one day of submission and the comments were solid and constructive. I would definitely suggest this course to someone who is willing to learn more and in depth about C++ features and applications and it is surely worth the money." - Gongshun Yin