Functional Programming with C++ Training Course
Functional programming is the evaluation of mathematical functions for computational solutions. Together with C++, functional programming allows users to create complex elements and structures for web applications that are not susceptible to side effects and mutations.
This instructor-led, live training (online or onsite) is aimed at web developers who wish to functional program with C++
By the end of this training, participants will be able to:
- Use functional programming solutions to improve the performance of web applications.
- Avoid data mutation and side effects with functional programming.
- Create web applications in a functional programming style.
Format of the Course
- Interactive lecture and discussion.
- Lots of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Course Outline
Introduction
Functional Programming in Depth
- Object-oriented programming vs functional programming
- First class functions and higher-order functions
Functional Programming in C++
- Writing code in a functional style
- Creating Lambda functions
- Capturing objects
- Merging functions
Metaprogramming and Functional Reactive Programming
- Applying factorials
- Using C++ template libraries and functional programming libraries
- Working with Reactive extensions and RxCpp library
Functional C++ Development
- Building applications
- Using higher-order functions
- Working with error handling
- Implementing functors and monads
- Refactoring code
- Writing unit tests
- Profiling performance
- Multithreading applications
Summary and Conclusion
Requirements
Prerequisites
- An understanding of procedural/object-oriented programming
- Basic experience with C++
Audience
- Web Developers
Open Training Courses require 5+ participants.
Functional Programming with C++ Training Course - Booking
Functional Programming with C++ Training Course - Enquiry
Testimonials (5)
Enjoyed the flexibility and variety of topics, the combination of trainings and exercises meant that I could apply what I'd learnt straight away. I also enjoyed the projects on the last day to bring everything together.
Luca Ricagni - Rockwell Collins UK Limited
Course - Advanced C++
Scope of knowledge covered. Not everything was explained in depth, but that is probably a matter of time. The training lasts 3 days. During these 3 days, various topics were covered, which can be explored further after the training. The training was definitely beneficial. A lot of knowledge and topics were presented in an engaging way.
Pawel Sitarz - Icotera sp. z o.o.
Course - C/C++ Secure Coding
Machine Translated
I liked being submerged into the C++ language for 5 days - not interrupted by regular work - in a row a lot ... Personally not as experienced in C++ as my colleagues, I decided to join this course to take a deep dive. The dive triggered me hugely to learn more ... which is exactly what I wanted to achieve. I appreciated the expertise knowledge of the trainer - and that of my colleagues. The fact that topics were very quickly touched and not addressed in detail, is what I expect from an advanced course. Sometimes too quick for me to follow (but that's a known and accepted drawback from my joining this course :-)) ... but on the other hand provided me with a fairly complete overview of the subtleties of the language. Thanks a lot for presenting a course in this way! Most appreciated!!!
Jan Grauwen - Septentrio N.V.
Course - Advanced C++ Software Design
The details on how compiler behaves depending on to the syntax usage. The "Quiz" sections are very stimulating
Andrea Pomatto
Course - Using C++ in Embedded Systems - Applying C++11/C++14
Good examples, focus on most useful material
Piotr Sowinski - Intel Technology Poland
Course - Object Oriented Programming with C++
Provisional Courses
Related Courses
Advanced C++
35 HoursThis instructor-led, live training in Poland (online or onsite) is aimed at developers who wish to use advanced C++ programming techniques to develop complex, secure, and high-performance systems and applications.
By the end of this training, participants will be able to:
- Set up a development environment that includes all C++ libraries, packages and frameworks.
- Understand the features, components, and basic elements of C++.
- Create complex C++ applications using advanced programming techniques.
- Learn how to write readable, fast, and secure code in C++.
- Know the common security pitfalls in C++ language and how to mitigate them.
- Implement test strategies for code quality and security control.
- Use the diagnostics and debugging tools in C++ development.
C++ for Modeling Quantitative Finance
49 HoursDeep C++ training to cover quantitative methods modeling and introduce a huge project for the trainees to have real hands-on experience with C++ for Quants
C/C++ Secure Coding
21 HoursThis three day course covers the basics of securing the C/C++ code against the malicious users who may exploit many vulnerabilities in the code with memory management and input handling, the course cover the principals of writing secure code.
C++ for Embedded Systems
21 HoursIs C++ suitable for embedded systems such as microcontrollers and real-time-operating-systems?
Should object-oriented-programming be used in microcontrollers?
Is C++ too far removed from the hardware to be efficient?
This instructor-led, live training addresses these questions and demonstrates through discussion and practice how C++ can be used to develop embedded systems with code that is accurate, readable, and efficient. Participants put theory into practice through the creation of a sample embedded application in C++.
By the end of this training, participants will be able to:
- Understand the principles of object-oriented modelling, embedded software programming and real-time programming
- Produce code for embedded systems that is small, fast and safe
- Avoid code bloat from templates, exceptions, and other language features
- Understand the issues related to using C++ in safety-critical and real-time systems
- Debug a C++ program on a target device
Audience
- Developers
- Designers
Format of the course
- Part lecture, part discussion, exercises and heavy hands-on practice
C++ 11 Programming
14 HoursThis is a 2 day course aimed at C++ programmers who are interested in applying the new C++11 standard in their industry. It is particularly useful for financial applications developers covering all new features with coding examples to be executed within the lab
Programowanie wielowątkowe w języku C++
28 HoursThe "Multithreaded programming in C++" training is intended for advanced and intermediate programmers working with the C++ language. The course covers theoretical and practical issues related to multithreaded programming, focusing on challenges, concurrency issues, as well as the implementation of standard and Boost libraries. Participants will acquire skills in thread management, process synchronization, error handling, testing and debugging of multi-threaded applications. The training also covers issues related to multithreading design patterns, such as thread pool, active object and secure multithreaded queue.
C++17 – a new language standard
14 HoursCourse C++17 presents new features of the language, such as structured bindings, conditional statements with initial variables, constexpr if, static inline components, aggregations, inheritance and classes std::string_view, std::optional, std::variant, std:: any, std::byte. Concurrent algorithms and announcements of changes in C++20 are also discussed.
C++, QT, ZeroMQ and Protocol Buffers
35 HoursThis instructor-led, live training in Poland (online or onsite) provides introductory coverage of C++, the Qt GUI framework, and various communication technologies such as ZeroMQ and Protocol Buffers that can be used for writing distributed applications.
By the end of this training, participants will have the necessary knowledge and practice to write and compile an application using C++, Qt and gcc on Linux Centos 6/7. Participants will also integrate asynchronous messaging capabilities using Zero MQ and Protocol Buffers.
Using C++ in Embedded Systems - Applying C++11/C++14
21 HoursThis training intends to introduce C++ as the common extension of C when applying object-oriented embedded system development. Since C++ encloses C, this training takes us from C to C++ in a natural way, and looks under the hood of how C++ is implemented. This is especially valuable to comprehend when applying C++ in an embedded resource limited environment. The C++ standard has recently been undergoing a major revision, a.k.a. as C++11, and a new one is on its way, C++14. This course addresses subjects brought in with these revisions that are especially useful like high performance memory management, concurrency making use of a multicore environment, and bare-metal close to the hardware programming.
GOAL/BENEFITS
The major objective of this class is that you shall be able to use C++ in a “correct way”.
- Introduce C++ as an object oriented language alternative in an embedded system context
- Show the similarities ‑ and differences ‑ with the C language
- Comprehend different memory management strategies – especially the move semantics introduced with C++11
- Look under the hood and understand what different paradigms in C++ leads to in machine code
- Use templates to achieve type safe high order abstractions for bare-metal close to the hardware programming – memory mapped I/O as well as interrupts – especially the variadic templates introduced with C++11
- Provide some useful design patterns especially applicable in an embedded context
- A few exercises in order to practice some concepts
AUDIENCE/PARTICIPANTS
This training is aimed C++- programmers who intend to start using C++ in an embedded system context.
PREVIOUS KNOWLEDGE
The course requires basic knowledge in C++ programming, corresponding to our trainings ”C++ – Level 1” and ”C++ Level 2 – Introducing C++11”.
PRACTICAL EXERCISES
During the training you will practice the presented concepts in a number of exercises. We will use the open and free integrated development environment from Eclipse
HMI Development for Automotive Infotainment Systems
14 HoursThis is a specialized HMI Development course designed for automotive professionals who are involved in the development of advanced automotive infotainment system
Advanced C++ Software Design
35 HoursThis is an advanced C++ training course focusing on object-oriented (OO) software development and design with the C++ programming language.
Object Oriented Programming with C++
7 HoursIn this course, participants will learn C++ concepts and programming skills.
Programming in C++
35 HoursThe course presents a comprehensive object-oriented language C++ and its use of simple examples. These are the standard mechanisms and library
Qt Programming
21 HoursThis instructor-led, live training in Poland provides in-depth coverage of Qt and its modules.
By the end of this training, participants will have the necessary knowledge and practice to develop their own C++ application using Qt.